Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Bloc / Brick (Pharo)
Last updated at 4:22 pm UTC on 6 August 2020
Bloc and Brick are a graphical framework / new widgets for Pharo which is being developed.

https://github.com/feenkcom/Bloc (Low-level UI infrastructure and framework for Pharo)
https://github.com/feenkcom/Brick (Widget library on top of Bloc for Pharo)

Has a stable beta release for Pharo 6.1 https://github.com/pharo-graphics/Bloc/releases

The Glamorous Toolkit uses Bloc and Brick (alpha stage).


Tudor Girba, September 2017, a developer notes:

Bloc is usable since half a year (the tutorial from ESUG was also given at PharoDays and works out of the box)

Caveats see below

GToolkit Layered.jpeg
Diagram taken from
alex.syrel@gmail.com> Sat, Nov 11, 2017 at 9:56 PM
To: Any question about pharo is welcome

Note: Spec (not shown in the diagram) is at the same level than GTtoolkit. On top of the available widgets.



Stephane Ducasse Tue, Sep 19, 2017 at 8:46 PM
Reply-To: Pharo Development List
To: Pharo Development List

Hi Torsten

I will let Doru present it in more detail but I think that he is in vacation.
Now here is my take from the discussion I got at ESUG.

Bloc is getting stable and people should really start to use it.
This is why we did the bloc tutorial. We need more on that front.
I plan to use it for some projects
during the lectures I will give at Prague.
...

Brick
The text editor was a really important element to build widgets.
The text editor model is basically the second iteration based on
TxText attempt.
It scales well.

As soon as we start to have widgets we should do a Spec mapping
and see how we can get rid of the middle man (the adapter should not
be used at runtime).

Bloc and Brick are not on the Pharo 70 roadmap because the process
should be fixed before.
But we would love to have bloc and brick as preview.

Esteban is currently working with Ronnie for the SDL integration,
headless image and others.

Stef


Tudor Girba Tue, Sep 19, 2017 at 10:50 PM
Reply-To: Pharo Development List
To: Pharo Development List
Reply | Reply to all | Forward | Print | Delete | Show original
Hi,

Thanks for the question :).

Indeed, the summary of Stef is quite good.

Here are some additions:
  • Indeed, Bloc gets stable. Recently, we learned that we can optimize the layouts even more and Alex Syrel will work on that in the next couple of weeks, but this will not impact users.
  • We have just finished an alpha version of the editor that is both moldable and scalable. It’s alpha because there are still things to fine tune in the area of selection, insertion and deletion.
  • Having an editor is significant step because it is the most expensive (and the riskiest) widget mechanism.
  • After the layouts and editor we will focus on the model for interaction and animation of widgets and play with various classes of applications.
  • In the meantime, Theo Mugnier worked with Alain Plantec and did a brilliant job at providing an initial version of a SVG import-export. There are still things to do, but this is really cool work.

I prefer to not go into estimations because I prefer to allow for the space to build crazy things, but we will work intensively on Bloc and Brick over the coming months, likely well into next year.

Cheers,
Doru


Tudor Girba Wed, Sep 20, 2017 at 10:12 AM
Reply-To: Pharo Development List
To: Pharo Development List
Hi,

> On Sep 20, 2017, at 9:22 AM, Norbert Hartl wrote:
>
>
>
>> Am 19.09.2017 um 22:50 schrieb Tudor Girba :

... snip ...
>
> can't this be done later? I would prefer that making Bloc and Brick usable is the first target.

I can sympathize with that. We also want to get to a usable state as soon as possible.

However, we have a different way of prioritizing and this might seem somewhat counter intuitive. I strongly believe that some things cannot be rushed and that continuously investing in the underlying infrastructure pays off in the mid-term. So, when we see an opportunity to rephrase our understanding we take it earlier rather than later. This is one of these cases.

Cheers,
Doru




Marcus Denker Wed, Sep 20, 2017 at 10:23 AM
Reply-To: Pharo Development List
To: Pharo Development List


> On 20 Sep 2017, at 10:12, Tudor Girba wrote:
...
>>> Here are some additions:
>>> - Indeed, Bloc gets stable. Recently, we learned that we can optimize the layouts even more and Alex Syrel will work on that in the next couple of weeks, but this will not impact users.
>>
>> can't this be done later? I would prefer that making Bloc and Brick usable is the first target.
>
> I can sympathize with that. We also want to get to a usable state as soon as possible.
>
> However, we have a different way of prioritizing and this might seem somewhat counter intuitive. I strongly believe that some things cannot be rushed and that continuously investing in the underlying infrastructure pays off in the mid-term. So, when we see an opportunity to rephrase our understanding we take it earlier rather than later. This is one of these cases.
>

But it is clear (having spend 10 years in the Squeak community…) that there is a danger in that, too… will there ever be a point were you will not
be able to do things better?

Ah, I even gave a talk about that:

https://www.slideshare.net/MarcusDenker/perfection-feedback-loops-or-why-worse-is-better-65540840


;-)

Marcus

Tudor Girba Wed, Sep 20, 2017 at 11:21 AM
To: Pharo Development List

Hi,

> On Sep 20, 2017, at 10:23 AM, Marcus Denker wrote:
....snip...

> But it is clear (having spend 10 years in the Squeak community…) that there is a danger in that, too… will there ever be a point were you will not
> be able to do things better?
>
> Ah, I even gave a talk about that:
>
> https://www.slideshare.net/MarcusDenker/perfection-feedback-loops-or-why-worse-is-better-65540840
>
>
> ;-)

I agree.

However, I see differences:
  • We choose to invest our energy in things that have a concrete outlook, often using time boxes and guided through a lot of experimentation.
  • If you get the cost of experimentation lower, you can simply perform more experiments and this increases the chances of producing surprising results.
  • The output is tangible and is constant, which means that we do not get stuck in an endless loop. It might take longer than people expect, but on the other hand, the results are consistently surprising.
  • In the meantime, Bloc is usable since half a year (the tutorial from ESUG was also given at PharoDays and works out of the box).

And perhaps another thing that is not so clear: Bloc is a team effort and we, at feenk, are part of that team effort. From feenk’s point of view, we see it as an investment and we commit to make Bloc a platform that others can use for the next 10 years. For example, Alex works exclusively on this. As we are a commercial entity, for us this is a business issue, not a hobby. This means that we have all incentives to finish things so that we can build what we actually want to build :).

Doru


> Marcus


Stephane Ducasse
Sun, Nov 12, 2017 at 1:09 PM
Reply-To: Any question about pharo is welcome
To: Any question about pharo is welcome
Reply | Reply to all | Forward | Print | Delete | Show original
Hilaire

Bloc, Brick are not in Pharo yet. So either you want to build on top
of Bloc and you use Bloc or not.
Easy.
Right now in Pharo we have
- plain Morphic (with Polymorph but this is the same)
- Spec to build user interface independent of the underlying layer (Morphic for now)
- Glamour to build browser/navigation

Now if you need vector graphics: you use Athens in Pharo.
In the future we will have Sparta which is better adapted for Bloc
(local coordinates over global coordinates) but this is the same kind
of API.

So this is not complex.
The decision tree is

Using plain Pharo or not => Morphic or Bloc


Stef

Linux installation needs a 64bit Linux.

https://github.com/syrel/Moz2D
Scripts to compile gfx part of Mozilla Firefox as single shared library


Metacello new
  baseline: 'Sparta';
  repository: 'github://syrel/sparta/src';
  load: #development



Metacello new
   baseline: 'GToolkit';
   repository: 'github://feenkcom/gtoolkit/src';
   load.



August 2020: What is the status of Bloc / Brick in Pharo?
https://github.com/feenkcom/Brick
https://github.com/feenkcom/Bloc

Now part of https://gtoolkit.com/