yes, and I always said this is plain bad. how it is now it is not a contextual menu, is NextStep style and is the correct behaviour (after we can discuss if we want to keep a menu as it is now or not, but that’s another discussion) :)
Esteban > On 21 Jun 2016, at 15:54, Aliaksei Syrel <[email protected]> wrote: > > In Pharo the World menu is accessed through left-click and right-click > provides the world contents. In Bloc, right-click displays the world menu and > left-click does nothing. Is it expected / some design choice or just > convenience for debugging ? At first glance I thought Bloc didn't work > because I was left-clicking like in Pharo. > > It was like that from the very begging of Bloc development. Main developers > of Bloc prefer right click to open menu (like almost everywhere except Pharo). > > Cheers, > Alex > > On Tue, Jun 21, 2016 at 3:52 PM, Aliaksei Syrel <[email protected] > <mailto:[email protected]>> wrote: > What is Cairo-Sparta ? What is the difference with Athens ? > Sparta-Canvas is just an implementation of Athens API that uses Cairo as > backend. It is the same as Athens-Cairo, with a few small differences. > > - Sparta has different meaning of clipBy: during: In Athens clipBy: only > accepts a Rectangle, in Sparta it is an arbitrary Path. > - Sparta has some experimental api just for fun and to find out if there is > a way to render faster. > > Since Athens is used in (many?) external packages it is not possible to > redefine clipBy: . Also having a separate implementation of Athens API > (Sparta-Cairo) allows developers of Bloc to iterate faster and save time on > integration process. > > Cheers, > Alex > > On Tue, Jun 21, 2016 at 3:46 PM, Aliaksei Syrel <[email protected] > <mailto:[email protected]>> wrote: > Can we change the fonts in Bloc ? > > Bloc is not new Pharo :) It is also not Morphic. Bloc is very low level > engine that does not have theme and widgets. > Morphic apps (like Nautilus) are just running in compatibility mode and are > rendered on Athens canvas. Existing Pharo applications use fonts provided by > StandardFonts that can be changed from Menu > Settings. > > Cheers, > Alex > > On Tue, Jun 21, 2016 at 3:42 PM, Aliaksei Syrel <[email protected] > <mailto:[email protected]>> wrote: > When (in Bloc) I go to World menu>>help>>Help browser>>Bloc>>Grid Layout, I > find the following license: > > It is important to mention that Grid is more general than Table layout. It > allows developers to create complex UI with less nested elements compared to > the case when Table layout would be used instead. Reducing amount of > nested/composed elements leads to performance boost (we have less elements in > the tree) and reduces overall complexity - no need to use "hack" elements > that have no intent and not part of real UI. > > Since Grid requires more complex (compared to table) computations we should > take care about performance. General complexity of algorithm to compute > distribution of cell sizes is O(n^2) - too much. Google already invested time > (money) in this problem and developed a special case algorithm with linear > complexity. It is used in Grid layout in bloc which means that we have a > derivative work and need to ship original licence. > > Here is google's documentation: > > Bellman-Ford variant - modified to reduce typical running time from O(N^2) to > O(N) > GridLayout converts its requirements into a system of linear constraints of > the > form: > x[i] - x[j] < a[k] > > Where the x[i] are variables and the a[k] are constants. > For example, if the variables were instead labeled x, y, z we might have: > x - y < 17 > y - z < 23 > z - x < 42 > > This is a special case of the Linear Programming problem that is, in turn, > equivalent to the single-source shortest paths problem on a digraph, for > which the O(n^2) Bellman-Ford algorithm the most commonly used general > solution. > > Apache 2.0 is compatible/can be used with MIT - as far as I can tell > according to answers on Internet. Maybe a layer can answer more correctly. > > Cheers, > Alex > > > On Tue, Jun 21, 2016 at 3:06 PM, Aliaksei Syrel <[email protected] > <mailto:[email protected]>> wrote: > > > > Hello Clement > > > > restoreAfter: is not only for transformation. It also restores clipping - > > that is why we need restoreAfter. (uses push and pop state). Having that > > clipping region is an arbitrary path there is no way to avoid pop and push > > state - which costs a lot in Cairo. It is slow because Cairo and Athens are > > statefull - which is bad for rendering a composition of arbitrary elements. > > > > Right now there is a huge work going on new Sparta - it will be almost > > stateless and will support a wide variety of backends (Cairo, Skia, > > CoreGraphics and so on). > > Current Sparta-Cairo is an experiment which goal was to support clipping by > > arbitrary path. We learned that it is slow because of statefullness. > > > > In order to fill a square with color we have to perform the following ffi > > native calls: > > - set color > > - set shape > > - fill > > > > Even in the most simple case we need 3 calls. When it gets more complicated > > there are even more calls. Preparing drawing context with multiple calls to > > perform an operation is a consequence of statefullness. > > > > Modern browsers use stateless canvases to render content. Idea is simple: > > one call per drawing operation. Example above would look like: > > - fillPath(aPath, aPattern, drawOptions). > > That is it. > > Second benefit is that we don't need to care about shared state between > > drawing operations, no more push/pop state and as result huge performance > > boost. > > > > Cheers > > Alex > > > > On Jun 21, 2016 1:34 PM, "Clément Bera" <[email protected] > > <mailto:[email protected]>> wrote: > >> > >> Hi, > >> > >> Thanks Doru it now works for me ! Very exciting indeed. > >> > >> I have a few questions: > >> > >> 1. In Pharo the World menu is accessed through left-click and right-click > >> provides the world contents. In Bloc, right-click displays the world menu > >> and left-click does nothing. Is it expected / some design choice or just > >> convenience for debugging ? At first glance I thought Bloc didn't work > >> because I was left-clicking like in Pharo. > >> > >> 2. Can we change the fonts in Bloc ? > >> > >> 3. When (in Bloc) I go to World menu>>help>>Help browser>>Bloc>>Grid > >> Layout, I find the following license: > >> > >> Copyright (C) 2011 The Android Open Source Project > >> > >> Licensed under the Apache License, Version 2.0 (the "License"); > >> you may not use this file except in compliance with the License. > >> You may obtain a copy of the License at > >> > >> http://www.apache.org/licenses/LICENSE-2.0 > >> <http://www.apache.org/licenses/LICENSE-2.0> > >> > >> Unless required by applicable law or agreed to in writing, software > >> distributed under the License is distributed on an "AS IS" BASIS, > >> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > >> See the License for the specific language governing permissions and > >> limitations under the License. > >> > >> Does it mean Bloc is not under MIT ? Or is it completely unrelated ? > >> > >> 4. What is Cairo-Sparta ? What is the difference with Athens ? > >> > >> 5. It seems that the normal Pharo image in idle spends between 4 and 5% of > >> execution time in the Morphic process, while in Bloc it seems that between > >> 17 and 23% of execution time is in the main bloc loop > >> (BlBoostedMainLoopManager). Isn't that a lot ? > >> - It's interesting to see that 28% of execution time spent in Bloc is in > >> BlSpartaCanvas>>#restoreAfter:. In the 2D video games I wrote (both using > >> Cairo and Javascript canvas) I avoided using #restoreAfter: and instead in > >> method such as BlSpartaCanvas >>#transform:during: I used a reverse > >> transformation to restore the state. I am wondering if that's possible in > >> large graphic framework like Bloc, that would save a quarter of the time. > >> Maybe it's possible only in simple 2D video games. > >> - Aside from restoreAfter, there is no obvious ways on how to save time... > >> > >> Well keep up the good work. > >> > >> > >> > >> On Tue, Jun 21, 2016 at 11:36 AM, Tudor Girba <[email protected] > >> <mailto:[email protected]>> wrote: > >>> > >>> Hi, > >>> > >>> Thanks for looking at it. > >>> > >>> You have to first switch to the Bloc space: > >>> > >>> World Menu / Bloc / Switch to Bloc > >>> (I think there is a problem right now with OS-Window) > >>> > >>> Then, from Nautilus, you can pick an example and Inspect Return-Values to > >>> get the object. > >>> > >>> Cheers, > >>> Doru > >>> > >>> > >>> > >>> On Jun 21, 2016, at 10:42 AM, Clément Bera <[email protected] > >>> <mailto:[email protected]>> wrote: > >>> > >>> Hi Doru, > >>> > >>> Ok I understand I have issues keeping comments updated in my projects too > >>> :-). Do your best. > >>> > >>> I tried to run the examples from Bloc-Core-Examples but they didn't work. > >>> I downloaded the latest Pharo-Spur32 VM from files.pharo.org > >>> <http://files.pharo.org/> and retried and it still didn't work. > >>> > >>> How can I have the examples running ? > >>> > >>> Here is the errors I have for the first two examples of > >>> BlExampleElementWithBorderAndFill. > >>> > >>> <Screen Shot 2016-06-21 at 10.40.39 AM.png> > >>> > >>> Here are the examples: > >>> > >>> <Screen Shot 2016-06-21 at 10.37.49 AM.png> > >>> > >>> > >>> Best, > >>> > >>> Clement > >>> > >>> On Tue, Jun 21, 2016 at 10:09 AM, Tudor Girba <[email protected] > >>> <mailto:[email protected]>> wrote: > >>> Hi Clement, > >>> > >>> Thanks for looking at it. > >>> > >>> Indeed, there aren’t many comments. A large part of the engine got > >>> rewritten twice over the last months, and many of the previous comments > >>> were no longer up to date. > >>> > >>> And no, the policy is not to not write comments :), but right now the > >>> priority is on building examples. which you will find in the > >>> Bloc-Core-Examples classes and their subclasses. > >>> > >>> Cheers, > >>> Doru > >>> > >>> > >>> > >>> > On Jun 21, 2016, at 9:39 AM, Clément Bera <[email protected] > >>> > <mailto:[email protected]>> wrote: > >>> > > >>> > Hi Doru, > >>> > > >>> > I downloaded the image, opened Nautilus, clicked on the package named > >>> > 'Bloc-Core' and all the classes I can see have no class comments (See > >>> > screenshot below). Is there a 'No class comment' policy in Bloc ? Or > >>> > maybe the top classes shown are just non representative of the class > >>> > comments of the overall framework. > >>> > > >>> > <Screen Shot 2016-06-21 at 9.33.31 AM.png> > >>> > > >>> > On Tue, Jun 21, 2016 at 7:42 AM, Tudor Girba <[email protected] > >>> > <mailto:[email protected]>> wrote: > >>> > Hi, > >>> > > >>> > Here is a brief update on the status of Bloc. > >>> > > >>> > Several of us came together to form a team and work to see Bloc in > >>> > Pharo 6 at least as a preview. The team communication happens via Slack > >>> > in a dedicated team, and the goal is to have regular progress/feedback > >>> > communication on this mailing list. > >>> > > >>> > Just because we have a dedicated team does not mean that your feedback > >>> > is important. In fact, over the last months, Bloc was redesigned again > >>> > to include the feedback we got here. So, now we have: > >>> > - Element is responsible for drawing (no more shape) > >>> > - Interaction area and clipping area are now distinct > >>> > > >>> > You can find the current build on top of Pharo 6 here: > >>> > https://ci.inria.fr/moose/job/bloc/PHARO=alpha,VERSION=development,VM=vmLatest/ > >>> > > >>> > <https://ci.inria.fr/moose/job/bloc/PHARO=alpha,VERSION=development,VM=vmLatest/> > >>> > > >>> > The current team focus goes like this: > >>> > - Alain is looking at events, > >>> > - Glenn is playing with creating new elements in Bloc and refactoring > >>> > the way we can manage , > >>> > - Alex (Syrel) and Esteban are working on the backend to make rendering > >>> > faster, > >>> > - Doru is pretending to do something useful. > >>> > > >>> > Cheers, > >>> > Doru > >>> > > >>> > > >>> > -- > >>> > www.tudorgirba.com <http://www.tudorgirba.com/> > >>> > www.feenk.com <http://www.feenk.com/> > >>> > > >>> > "What we can governs what we wish." > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > >>> -- > >>> www.tudorgirba.com <http://www.tudorgirba.com/> > >>> www.feenk.com <http://www.feenk.com/> > >>> > >>> "Presenting is storytelling." > >>> > >>> > >>> > >>> > >>> -- > >>> www.tudorgirba.com <http://www.tudorgirba.com/> > >>> www.feenk.com <http://www.feenk.com/> > >>> > >>> "Problem solving should be focused on describing > >>> the problem in a way that makes the solution obvious." > >>> > >>> > >>> > >>> > >>> > >> > > >
