[Pharo-dev] Bloc Feedback

Aliaksei Syrel alex.syrel at gmail.com
Wed Oct 25 03:34:42 EDT 2017


Hi Sean,

lBasicExamples
> - #exampleShapes, select the yellow shape with red border -> inspector ->
> Transformations Tab -> Click on Composition -> "ShouldNotImplement:
> #multiplyOn: should not have been implemented in BlCompositeTransformation"


I don't understand how you guys find these kind of bugs :D
Fixed, thanks!

- In BlLinearLayoutExamples class>>#exampleVerticalLeftCenterRightRTL

 - the yellow sub-element does not appear at all. Maybe it should do a `c
> vertical exact: 100.` like its siblings?

This is a bug of the default extent of the element and its geometry.
Element had default extent of 50 at 50 while geometry 1 at 1. Recently we added a
smarter change recording mechanism that collects all extent/position
changes within a frame and then merges them together in order to produce a
single notification event. Since in that example we request element's size
to be (50 at 50) there will be effectively no change in extent, so no event is
produced and geometry does not adapt itself to match element's size =>
geometry's extent stays 1 at 1 and only a tiny yellow dot is rendered :)
Wrote a test and changed default element size to be (0 at 0).

- All BlAnimationExamples lead to deprecation warnings and DNU's, but *do not
> even attempt* #exampleBallsAnim or face endlessly multplying debugger
> windows!

Indeed :) A short answer is that it is expected, taking into account a
class comment :D
[image: Inline images 1]

A bit longer answer would require to read the following document
https://drafts.csswg.org/css-transforms/#interpolation-of-transforms
<https://drafts.csswg.org/css-transforms/#interpolation-of-transforms> to
get an idea of what is going on.
The point is that animating transformations like translation, scale or
rotation is very non trivial. It requires us to decompose a resulting
transformation matrix, interpolate decomposed values at animation time "t"
and finally recompose it back as matrix :)

The only missing piece left is interpolation of matrix decomposition, so we
are not far away from having animation examples work again.
Below is a screenshot of a composite transformation consisting of
translations separated by scale and applied rotation on top of all. Note
that resulting translation is not (20, 20) as one would think, instead it
depends on scale and rotation which causes the initial problem. Also, one
can see that "scaling" matrix components on the main matrix diagonal are
not equal to (2, 2) because of rotation...
However, once done we will have a powerful transformation library!

[image: Inline images 1]

BlTextEditElement class>>#exampleText
>     - insert some characters and then press [delete] -> "Error: Illegal
> sub-sequence end index: 44"
>     - There is aBlSelectionHandler, but I can't seem to select any of the
> text


Aha, I forgot about it, thanks! At this point BlTextEditElement is only
used internally by Moldable Editor so I will probably move it away from
Bloc.

Thanks for the feedback :)

Cheers,
Alex

On 24 October 2017 at 11:01, Tudor Girba <tudor at tudorgirba.com> wrote:

> Hi,
>
> Indeed, instance variables is what we are mainly concerned with as well.
> We keep on trimming, but it still feels like too many variables.
>
> Cheers,
> Doru
>
>
> > On Oct 24, 2017, at 8:59 AM, Nicolai Hess <nicolaihess at gmail.com> wrote:
> >
> >
> >
> > 2017-10-24 2:04 GMT+02:00 Sean P. DeNigris <sean at clipperadams.com>:
> > Tudor Girba-2 wrote
> > > Thanks for the feedback!
> >
> > But of course! Thanks for pushing Bloc :) IMHO a clean low-level graphics
> > framework is the linchpin to unleash a tremendous amount of creativity in
> > the Pharo community. I have several dream projects that I placed on
> > long-term hold after getting stuck in Morphic quicksand :/
> >
> >
> > Tudor Girba-2 wrote
> > >> - How would one do e.g. a ticking clock in Bloc? The only possibly
> > >> relevant
> > >> example I see is BlAnimatedCursor. Is that a typical usage? One thing
> > >> that
> > >> I'm not sure how to translate to a BlElement is that the cursor seems
> to
> > >> be
> > >> responsible for starting and stopping the animation via #activateOn:,
> > >> which
> > >> doesn't exist for an element. How would one prevent an element's
> > >> animation
> > >> from continuing to run after a space was closed?
> > > What do you mean?
> >
> > I guess I mean what is the Bloc version of #step that would enable us to
> do
> > e.g. Squeak's mouse-eyes-tracking-the-cursor or Lively Kernel's clock:
> > <http://forum.world.st/file/t128965/Chromium5.png>
> >
> >
> > Tudor Girba-2 wrote
> > >> - BlElement has 278 instance-side methods. A frequent battle cry
> against
> > >> Morphic was the bloated Morph class with 899. Definitely an
> improvement,
> > >> but
> > >> are we "there yet”?
> > > What do you mean?
> >
> > Is there a consensus on a maximum number of instance-side methods before
> a
> > class becomes impossible to understand, and if so where does BlElement
> fall
> > on that scale?
> >
> >
> >
> >
> > I dont think this number alone is a problem. As long as the
> "responsibility" of this
> > class is well structured.
> > A problem with the Morph class is, that it acts as many things at once.
> > A structured container, a model, a view, a graphical object, a widget
> base ...
> >
> > About BlElement, I am more afraid about the number of instance variables
> >
> >
> > -----
> > Cheers,
> > Sean
> > --
> > Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.ht
> ml
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Sometimes the best solution is not the best solution."
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20171025/dd13dbd1/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2017-10-25 at 08.59.12.png
Type: image/png
Size: 213479 bytes
Desc: not available
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20171025/dd13dbd1/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2017-10-25 at 09.19.37.png
Type: image/png
Size: 206821 bytes
Desc: not available
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20171025/dd13dbd1/attachment-0001.png>


More information about the Pharo-dev mailing list