Hi I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec? Like attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right. Stef
Maybe we should check cassowary https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr... 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
Does that load as part of Bloc?
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr... <https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr...>
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com <mailto:stepharo.self@gmail.com>>: Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
Pavel I do not think that cassowary is good for us. On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <tblanchard@mac.com> wrote:
Does that load as part of Bloc?
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr...
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
On Sat, 2017-10-28 at 10:48 +0200, Stephane Ducasse wrote:
Pavel I do not think that cassowary is good for us.
Why? Jan
On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <tblanchard@mac.com> wrote:
Does that load as part of Bloc?
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail. com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/# ui-constraints
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.co m>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to  the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
Did you try? I always pay attention to things that should iterate a while and stabilise. Now I may be wrong. I have cassowary on my machine. I worked long time on constraints and I thought that apple has a better model with anchor and rubber band. Stef On Sat, Oct 28, 2017 at 12:36 PM, Jan Vrany <jan.vrany@fit.cvut.cz> wrote:
On Sat, 2017-10-28 at 10:48 +0200, Stephane Ducasse wrote:
Pavel I do not think that cassowary is good for us.
Why?
Jan
On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <tblanchard@mac.com> wrote:
Does that load as part of Bloc?
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail. com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/# ui-constraints
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.co m>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
Actually, Apple's "autolayout" is Cassowary. It is kind of inconvenient to use as is. However there are some very nice libraries. One I have used on a couple iOS projects is called PureLayout. https://github.com/PureLayout/PureLayout It has nice methods like aView autoAlignAxis: AxisHorizontal toSameAxisOfView: anotherView or aView autoCenterInSuperviewWithInsets: layoutInsets as to license: "The original implementation in OTI Smalltalk is in the public domain;" http://constraints.cs.washington.edu/cassowary/ If Thierry based his port on that version, it should be all good. I'm a fan of PureLayout - very easy to use.
On Oct 28, 2017, at 7:07 AM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Did you try? I always pay attention to things that should iterate a while and stabilise. Now I may be wrong. I have cassowary on my machine. I worked long time on constraints and I thought that apple has a better model with anchor and rubber band.
Stef
On Sat, Oct 28, 2017 at 12:36 PM, Jan Vrany <jan.vrany@fit.cvut.cz> wrote:
On Sat, 2017-10-28 at 10:48 +0200, Stephane Ducasse wrote:
Pavel I do not think that cassowary is good for us.
Why?
Jan
On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <tblanchard@mac.com> wrote:
Does that load as part of Bloc?
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail. com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/# ui-constraints
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.co m>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like... attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Maybe we should check cassowary https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui- constraints
On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Pavel I do not think that cassowary is good for us.
Do you mean Cassowary in particular, or constraint based UI in general? My naive first impression is, if Cassowary is good enough for Apple... https://news.ycombinator.com/item?id=9846992 https://www.quora.com/Should-I-use-Auto-Layout and Google (search here for "solver")... https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/ such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary." https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... then it seems worth some analysis, and discussion of better alternatives. Coincidentally, I see a Smalltalk implementation is available... http://www.squeaksource.com/Cassowary.html https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver... https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autol... https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-yo... https://cocoacasts.com/working-with-stack-views/ cheers -ben
Ok then may be we should give a try to use. Tx for the links. Stef On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <btc@openinworld.com> wrote:
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like... attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr...
On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Pavel I do not think that cassowary is good for us.
Do you mean Cassowary in particular, or constraint based UI in general?
My naive first impression is, if Cassowary is good enough for Apple... https://news.ycombinator.com/item?id=9846992 https://www.quora.com/Should-I-use-Auto-Layout
and Google (search here for "solver")... https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary." https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the...
then it seems worth some analysis, and discussion of better alternatives.
Coincidentally, I see a Smalltalk implementation is available... http://www.squeaksource.com/Cassowary.html https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver... https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autol... https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-yo... https://cocoacasts.com/working-with-stack-views/
cheers -ben
I was reading ... I will see if I can load cassowary in Pharo. On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Ok then may be we should give a try to use. Tx for the links.
Stef
On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <btc@openinworld.com> wrote:
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like... attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr...
On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Pavel I do not think that cassowary is good for us.
Do you mean Cassowary in particular, or constraint based UI in general?
My naive first impression is, if Cassowary is good enough for Apple... https://news.ycombinator.com/item?id=9846992 https://www.quora.com/Should-I-use-Auto-Layout
and Google (search here for "solver")... https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary." https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the...
then it seems worth some analysis, and discussion of better alternatives.
Coincidentally, I see a Smalltalk implementation is available... http://www.squeaksource.com/Cassowary.html https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver... https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autol... https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-yo... https://cocoacasts.com/working-with-stack-views/
cheers -ben
Le 28/10/2017 à 16:26, Stephane Ducasse a écrit :
I was reading ... I will see if I can load cassowary in Pharo.
https://github.com/ThierryGoubier/Cassowary Done two years ago. Thierry
On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Ok then may be we should give a try to use. Tx for the links.
Stef
On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <btc@openinworld.com> wrote:
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like... attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr...
On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Pavel I do not think that cassowary is good for us.
Do you mean Cassowary in particular, or constraint based UI in general?
My naive first impression is, if Cassowary is good enough for Apple... https://news.ycombinator.com/item?id=9846992 https://www.quora.com/Should-I-use-Auto-Layout
and Google (search here for "solver")... https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary." https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the...
then it seems worth some analysis, and discussion of better alternatives.
Coincidentally, I see a Smalltalk implementation is available... http://www.squeaksource.com/Cassowary.html https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver... https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autol... https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-yo... https://cocoacasts.com/working-with-stack-views/
cheers -ben
Hi Thierry, your repository mentions the MIT license but the original license of the Cassowary package was LGPL. Is is a different code? Cheers, -- Pavel 2017-10-28 21:43 GMT+02:00 Thierry Goubier <thierry.goubier@gmail.com>:
Le 28/10/2017 à 16:26, Stephane Ducasse a écrit :
I was reading ... I will see if I can load cassowary in Pharo.
https://github.com/ThierryGoubier/Cassowary
Done two years ago.
Thierry
On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Ok then may be we should give a try to use. Tx for the links.
Stef
On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <btc@openinworld.com> wrote:
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com>:
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like... attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com>
wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints- part-1/#ui-constraints
On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse < stepharo.self@gmail.com> wrote:
Pavel I do not think that cassowary is good for us.
Do you mean Cassowary in particular, or constraint based UI in general?
My naive first impression is, if Cassowary is good enough for Apple... https://news.ycombinator.com/item?id=9846992 https://www.quora.com/Should-I-use-Auto-Layout
and Google (search here for "solver")... https://academy.realm.io/posts/cool-constraintlayout-droidco n-boston-2017/
such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary." https://www.bignerdranch.com/blog/constraintlayout-vs-auto-l ayout-how-do-they-compare/
then it seems worth some analysis, and discussion of better alternatives.
Coincidentally, I see a Smalltalk implementation is available... http://www.squeaksource.com/Cassowary.html https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver... https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_ i_dont_use_autolayout/ https://www.bignerdranch.com/blog/constraintlayout-vs-auto-l ayout-how-do-they-compare/ https://makeapppie.com/2015/10/28/why-stack-views-are-your- best-friend-if-you-hate-auto-layout/ https://cocoacasts.com/working-with-stack-views/
cheers -ben
Hi Pavel, Le 28/10/2017 à 22:29, Pavel Krivanek a écrit :
Hi Thierry,
your repository mentions the MIT license but the original license of the Cassowary package was LGPL. Is is a different code?
I ported the original, public domain smalltalk implementation of Cassowary. Regards, Thierry
Cheers, -- Pavel
2017-10-28 21:43 GMT+02:00 Thierry Goubier <thierry.goubier@gmail.com <mailto:thierry.goubier@gmail.com>>:
Le 28/10/2017 à 16:26, Stephane Ducasse a écrit :
I was reading ... I will see if I can load cassowary in Pharo.
https://github.com/ThierryGoubier/Cassowary <https://github.com/ThierryGoubier/Cassowary>
Done two years ago.
Thierry
On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse <stepharo.self@gmail.com <mailto:stepharo.self@gmail.com>> wrote:
Ok then may be we should give a try to use. Tx for the links.
Stef
On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <btc@openinworld.com <mailto:btc@openinworld.com>> wrote:
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <stepharo.self@gmail.com <mailto:stepharo.self@gmail.com>>:
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like... attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr... <https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constr...>
On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <stepharo.self@gmail.com <mailto:stepharo.self@gmail.com>> wrote:
Pavel I do not think that cassowary is good for us.
Do you mean Cassowary in particular, or constraint based UI in general?
My naive first impression is, if Cassowary is good enough for Apple... https://news.ycombinator.com/item?id=9846992 <https://news.ycombinator.com/item?id=9846992> https://www.quora.com/Should-I-use-Auto-Layout <https://www.quora.com/Should-I-use-Auto-Layout>
and Google (search here for "solver")... https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/ <https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/>
such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary." https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... <https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the...>
then it seems worth some analysis, and discussion of better alternatives.
Coincidentally, I see a Smalltalk implementation is available... http://www.squeaksource.com/Cassowary.html <http://www.squeaksource.com/Cassowary.html> https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf <https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf>
For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver... https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autol... <https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autol...> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the... <https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-the...> https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-yo... <https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-yo...> https://cocoacasts.com/working-with-stack-views/ <https://cocoacasts.com/working-with-stack-views/>
cheers -ben
On 28-10-17 23:20, Thierry Goubier wrote:
Hi Pavel,
Le 28/10/2017 à 22:29, Pavel Krivanek a écrit :
Hi Thierry,
your repository mentions the MIT license but the original license of the Cassowary package was LGPL. Is is a different code?
I ported the original, public domain smalltalk implementation of Cassowary.
I also looked at the morphic port on squeaksource which is just a very thin layer of using the public domain code on top of morphic. The author of that was open to have his work relicensed (Apache style, but I never followed up on that) https://github.com/pharo-graphics/Bloc/issues/25 Just applying and adapting Thierry's code should provide us what we need Stephan
Hi stephan can you republish it with your fixes Now I was a bit disappointed by the speed of the examples. Stef On Tue, Oct 31, 2017 at 9:31 AM, stephan <stephan@stack.nl> wrote:
On 28-10-17 16:26, Stephane Ducasse wrote:
I was reading ... I will see if I can load cassowary in Pharo.
I could get the squeaksource cassowary for morphic working without a problem, just needed some extensions and fixes for changes we made in Pharo.
Stephan
On Wed, Nov 1, 2017 at 7:14 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Hi stephan
can you republish it with your fixes
Now I was a bit disappointed by the speed of the examples.
I also had some concerns. It did seem a bit to be more sluggish getting started, and not too bad once moving. On the other hand, windows aren't resized very often. Also I wonder that a linear solver *must* have some strong hotspots, and may be a good candidate for sista/scorch optimization. cheers -ben
Stef
On Tue, Oct 31, 2017 at 9:31 AM, stephan <stephan@stack.nl> wrote:
On 28-10-17 16:26, Stephane Ducasse wrote:
I was reading ... I will see if I can load cassowary in Pharo.
I could get the squeaksource cassowary for morphic working without a problem, just needed some extensions and fixes for changes we made in Pharo.
Stephan
IMO the right move is to take advantage of this technique/library in Smalltalk : "The Auckland Layout Model (ALM) is a novel technique for specifying 2D layout as it is used for arranging the controls in a GUI. The model allows the specification of constraints based on linear algebra, and an optimal layout is calculated using linear programming. Linear equalities and inequalities can be specified on horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned. The described technique supports the dynamic adaptation of a layout to changes in the environment, e.g. window size, and offers more flexibility than other layout managers. " http://aucklandlayout.sourceforge.net/ Contains various models of layouts: Border Layout Box Layout (BGroupLayout) Horizontal Layout Vertical Layout Gridbag Layout Flow Layout Constraint-Based Layout (BALMLayout) The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-Auckla... The video: https://www.youtube.com/watch?v=NPPz1OJwICA The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor Cheers, Hernán 2017-10-27 14:13 GMT-03:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
Hi Hernan, It's difficult to do an evaluation for the underlying solver, because the paper doesn't evaluate that aspect. From a small sentence, they seem to be using the same algorithm than a 1997 A. Borning work (quadratic optimization) (i.e. the one used by Cassowary). Regards, Thierry Le 29/10/2017 à 13:11, Hernán Morales Durand a écrit :
IMO the right move is to take advantage of this technique/library in Smalltalk :
"The Auckland Layout Model (ALM) is a novel technique for specifying 2D layout as it is used for arranging the controls in a GUI. The model allows the specification of constraints based on linear algebra, and an optimal layout is calculated using linear programming. Linear equalities and inequalities can be specified on horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned. The described technique supports the dynamic adaptation of a layout to changes in the environment, e.g. window size, and offers more flexibility than other layout managers. "
http://aucklandlayout.sourceforge.net/
Contains various models of layouts:
Border Layout Box Layout (BGroupLayout)
Horizontal Layout Vertical Layout
Gridbag Layout Flow Layout Constraint-Based Layout (BALMLayout)
The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-Auckla...
The video: https://www.youtube.com/watch?v=NPPz1OJwICA
The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor
Cheers,
Hernán
2017-10-27 14:13 GMT-03:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
On Sun, Oct 29, 2017 at 8:28 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Hernan,
It's difficult to do an evaluation for the underlying solver, because the paper doesn't evaluate that aspect.
The solver seems the least interesting part of ALM. There two orthogonal concerns: * Generating the constraints - which is probably what distinguishes AutoLayout, ConstraintLayout, enaml and the key to usability * Solving the constraints - while doing it right is well known, doing it efficiently is the challenge which Cassowary has covered. But ideally the solver would be pluggable so performance could be improved later substituting an FFI or GPU implemented solver. Also, if it is feasible to include a solver in the main Pharo distribution, it would be great if that could be re-used at the business application level. So the interesting aspect of ALM seems to be: * A new algorithm that automatically generates the constraints necessary to keep a layout non-overlapping. * Many other layout managers rely on a hierarchy of nested layouts to define more complex layouts. Within nested layouts, widgets typically cannot be aligned across different levels of the hierarchy * ALM constraints are specified as horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned. This last point of virtual guidelines echos some ideas that reoccur for me from time to time - something similar to how professional designer software like Adobe Illustrator operate with virtual guidelines - though they use manual placement rather than dynamic constraint based placement. There is also the Auckland Layout Editor that might provide a good template to copy. We've been missing a GUI editor for layouts. cheers -ben
Le 29/10/2017 à 13:11, Hernán Morales Durand a écrit :
IMO the right move is to take advantage of this technique/library in Smalltalk :
"The Auckland Layout Model (ALM) is a novel technique for specifying 2D layout as it is used for arranging the controls in a GUI. The model allows the specification of constraints based on linear algebra, and an optimal layout is calculated using linear programming. Linear equalities and inequalities can be specified on horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned. The described technique supports the dynamic adaptation of a layout to changes in the environment, e.g. window size, and offers more flexibility than other layout managers. "
http://aucklandlayout.sourceforge.net/
Contains various models of layouts:
Border Layout Box Layout (BGroupLayout)
Horizontal Layout Vertical Layout
Gridbag Layout Flow Layout Constraint-Based Layout (BALMLayout)
The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/Zeidle rEtAl2013-AucklandLayoutEditor.pdf
The video: https://www.youtube.com/watch?v=NPPz1OJwICA
The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckla nd_layout_editor
Cheers,
Hernán
2017-10-27 14:13 GMT-03:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
My main concerns is that right now we have limited ressources to work on this topics. Stef On Sun, Oct 29, 2017 at 5:14 PM, Ben Coman <btc@openinworld.com> wrote:
On Sun, Oct 29, 2017 at 8:28 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Hernan,
It's difficult to do an evaluation for the underlying solver, because the paper doesn't evaluate that aspect.
The solver seems the least interesting part of ALM. There two orthogonal concerns: * Generating the constraints - which is probably what distinguishes AutoLayout, ConstraintLayout, enaml and the key to usability * Solving the constraints - while doing it right is well known, doing it efficiently is the challenge which Cassowary has covered. But ideally the solver would be pluggable so performance could be improved later substituting an FFI or GPU implemented solver. Also, if it is feasible to include a solver in the main Pharo distribution, it would be great if that could be re-used at the business application level.
So the interesting aspect of ALM seems to be: * A new algorithm that automatically generates the constraints necessary to keep a layout non-overlapping. * Many other layout managers rely on a hierarchy of nested layouts to define more complex layouts. Within nested layouts, widgets typically cannot be aligned across different levels of the hierarchy * ALM constraints are specified as horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned.
This last point of virtual guidelines echos some ideas that reoccur for me from time to time - something similar to how professional designer software like Adobe Illustrator operate with virtual guidelines - though they use manual placement rather than dynamic constraint based placement.
There is also the Auckland Layout Editor that might provide a good template to copy. We've been missing a GUI editor for layouts.
cheers -ben
Le 29/10/2017 à 13:11, Hernán Morales Durand a écrit :
IMO the right move is to take advantage of this technique/library in Smalltalk :
"The Auckland Layout Model (ALM) is a novel technique for specifying 2D layout as it is used for arranging the controls in a GUI. The model allows the specification of constraints based on linear algebra, and an optimal layout is calculated using linear programming. Linear equalities and inequalities can be specified on horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned. The described technique supports the dynamic adaptation of a layout to changes in the environment, e.g. window size, and offers more flexibility than other layout managers. "
http://aucklandlayout.sourceforge.net/
Contains various models of layouts:
Border Layout Box Layout (BGroupLayout)
Horizontal Layout Vertical Layout
Gridbag Layout Flow Layout Constraint-Based Layout (BALMLayout)
The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-Auckla...
The video: https://www.youtube.com/watch?v=NPPz1OJwICA
The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor
Cheers,
Hernán
2017-10-27 14:13 GMT-03:00 Stephane Ducasse <stepharo.self@gmail.com>:
Hi
I was wondering if there is a layout that we can use to propose alternate placing layout for widgets in spec?
Like
attached to the left 10pixels rubber band box or fixed size box 10pixels attached to the right.
Stef
participants (8)
-
Ben Coman -
Hernán Morales Durand -
Jan Vrany -
Pavel Krivanek -
stephan -
Stephane Ducasse -
Thierry Goubier -
Todd Blanchard