Dear Colleagues and Friends,
We are happy to announce we will organize a CampSmalltalk about the Roassal visualization engine, on _Sunday 12 July_.
As far as we have seen, the interests are multiple. Here is a list of topics we will happy to work on:
- Improving Grapher, our charting library
- Fixing bugs, addressing recently uncovered issues (e.g., composite shapes)
- HTML/JavaScript export
Some participants have indicated a great interest in:
- Port of Roassal on VisualWorks
- Using Roassal on Gemstone
If you wish to participate, get in touch with us. Since we will probably have a sponsoring of the event, it would be nice to know how many will attend to ease the logistic and the pizza ordering :-)
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi all!
I want to build a dynamic graph on a composer.. Is that possible?
It throws up an error on 'b add:ds', ie. when I want to add the dataset. It
throws a 'MessageNotUnderstood' error. Can't I pass the Dynamic Grapher a
RTStackedDataSet?
Thanks!
buildDynamicGraph:anObjectArray onComposer:aComposer
| b ds |
b := RTDynamicGrapher new.
b view: aComposer view.
ds := RTStackedDataSet new.
ds points: anObjectArray.
ds y: #second.
ds barShape width: 30.
ds histogramWithBarTitle: #first rotation: 0.
b add: ds.
b axisX noLabel; noTick.
b build.
^ b
Hi!
If you have an image with Roassal open, give a try:
v := RTView new.
v when: TRMouseClick do: [ :event | v clean ].
v when: TRMouseMove do: [ :event |
e := (RTBox new color: (Color red alpha: 0.2); size: 20 atRandom + 5) element.
e translateTo: event positionFromCamera.
v add: e.
v addAnimation: (RTAccelerationMove to:
event positionFromCamera + ((150 atRandom - 75) @ (150 atRandom - 75)) during: 5 on: e)
].
v
:-)
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Done!
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> On May 4, 2015, at 12:41 PM, Jigyasa Grover <grover.jigyasa1(a)gmail.com> wrote:
>
> Done !
>
> On Mon, May 4, 2015 at 9:47 PM, Yuriy Tymchuk <yuriy.tymchuk(a)me.com <mailto:yuriy.tymchuk@me.com>> wrote:
> Dear Pharo developers,
>
> I kindly ask you to participate in the Code Critics mini-survey: https://www.esurveycreator.com/s/8af18d8 <https://www.esurveycreator.com/s/8af18d8>.
> It will take only a coupe minutes of your time (or less), and will give us the better understanding of how Code Critics are currently used and how to improve them.
>
> Cheers!
> Yuriy
>
Dear Pharo developers,
I kindly ask you to participate in the Code Critics mini-survey: https://www.esurveycreator.com/s/8af18d8.
It will take only a coupe minutes of your time (or less), and will give us the better understanding of how Code Critics are currently used and how to improve them.
Cheers!
Yuriy
Hi!
I have just added a browser for the examples.
Accessible from the World menu.
We are making progresses :-)
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
When tracing the execution in GT-debugger the text selection does not always reflect the real position of the program counter. Consider the following screenshot:
I have simply pressed the step-into button, nothing more. The selection is not meaningful.
Am I the only one to have noticed this?
It would be great to have it fixed…
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi guys,
I’m not experienced in OpenGL, but I’ve noticed that both Roassal3D and Woden occupy a high level process and are not yielding Processor to anyone else. For example code highlight, spotter, and other lower priority processes are not working as soon as you open a 3D visualization. On the other hand this doesn’t happen while using CodeCity (and it also uses OpenGL). Is it very complicated to make Roassal3D and Woden to respect other processes?
Uko
Hi!
We did a number of improvements of Grapher for Thomas. I am sharing them since some of you may find it relevant.
**************************************
*** Tip: need to shift the Y-axis ***
b := RTGrapher new.
ds := RTStackedDataSet new.
ds barShape color: Color red.
ds points: #(5 1 20 8).
b add: ds.
b axisX noLabel; noTick. b axisY noDecimal.
b build.
The Y-Axis can be shifted vertically using labelConversion: and a minor translation of the value, as in:
b := RTGrapher new.
ds := RTStackedDataSet new.
ds barShape color: Color red.
ds points: #(5 1 20 8).
ds y: [ :v | v - 10 ].
b add: ds.
b axisX noLabel; noTick. b axisY noDecimal.
b axisY labelConversion: [ :v | v + 10 ].
b build.
**************************************
*** Improvement 1: Centered labels for bar charts ***
-=-=-=-=-=-=-=-=-=-=-=-=
b := RTGrapher new.
ds := RTStackedDataSet new.
ds barShape color: Color red.
ds points: #(5 1 20 8).
ds y: [ :v | v - 10 ].
ds barChartWithBarCenteredTitle: [ :value | '##', value asString ].
b add: ds.
b axisX noLabel; noTick. b axisY noDecimal.
b axisY labelConversion: [ :v | v + 10 ].
b build.
-=-=-=-=-=-=-=-=-=-=-=-=
**************************************
*** Improvement 2: Average for X values ***
b := RTGrapher new.
ds := RTDataSet new.
ds dotShape color: Color red.
ds points: #(5 1 20 8).
b add: ds.
b addDecorator: (RTHorizontalAverageDecorator new withLabel; labelConvertion: [ :aValue | 'average = ', aValue asFloat asString ]).
b build.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi, From time to time I see a bug in GLMTreeMorphNodeModel>>pathIn:
It happens like this:
1) PPSmalltalkGrammar new inspect.
2) Click to the tree view and do some clicking here and there, expanding
and collapsing nodes.
3) After some time, pharo freezes in a enldess recursion call. You can see
it in the attached screenshot.
This behaviour is there for quite a time (at least half a year, as far as I
remeber).
Cheers,
Jan
PS: Where shall I report bugs like this? GoogleCode or FogBugz?
Hi all,
Today and tomorrow, a small group of persons will be doing a
workshop/hackathon about Pharo and Agile Visualization at our local
hackerspace. Details on the event are on:
http://hackbo.co/hackboweb/eventos/evento/375
I will be sharing teaching materials, first impressions and questions
with you about the experience, while is happening and after that.
Thanks,
Offray
Hi!
We have exposed the SVG examples in the Roassal example browser.
Some of you may be interested in this
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Alex,
unfortunately changes in TRCompositeShape created a regression, because now
TRRemoveCallbacks are executed multiple times.
the commit is Trachel-AlexandreBergel.266
Interestingly there is TRCompositeShapeTest>>testCallback01 which works,
but it doesn't use RTElement.
Here's a test case:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|v e executed|
v := RTView new.
e := RTElement new.
e + (RTBox new) + (RTEllipse new).
executed := 0.
e trachelShape addCallback: (TRRemoveCallback new block: [ :shape |
executed := executed + 1 ]).
v add: e.
TestAsserter new assert: executed equals: 0.
e remove.
TestAsserter new assert: executed equals: 1.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now since you have discussed with Jan that the new behavior makes sense in
some circumstances, it would be better to have both behaviors.
So I would propose to make a distinction for RemoveCallback - to not
triggered them from TRCompositeShape, because it is not reentrant.
Thus when executed on composite shape, only non-removing callbacks would be
executed.
Additionally it seems very random that CompositeShape uses it's first
subshape for callbacks; what is so special about the first one? Why can't
composite shape hold it's own callbacks, or have an explicit way to specify
which one to use (first, second, none, ..)?
Since Composite Shape is recurring problematic theme, perhaps there should
be some wider discussion to collect all the use cases?
What do you think?
Peter
No. We only load the stable in Moose and release Moose 5.1 for Pharo 4.0
(we are overdue anyway).
Doru
On Wed, Apr 29, 2015 at 11:43 AM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
> Do we backport String>>#findAnySubstring:startingAt: to Pharo 4?
> It breaks the inspector in moose.
>
> Cheers,
> Andrei
>
> On Wed, Apr 29, 2015 at 10:57 AM, Andrei Chis <chisvasileandrei(a)gmail.com>
> wrote:
>
>> Now you also need to integrate
>> https://pharo.fogbugz.com/f/cases/15438/Update-Rubric as otherwise you
>> cannot use spotter/playground.
>> I'll also make another issue for updating the entire gtools suite.
>>
>> Cheers,
>> Andrei
>>
>> On Wed, Apr 29, 2015 at 10:43 AM, GitHub <noreply(a)github.com> wrote:
>>
>>> Branch: refs/heads/5.0
>>> Home: https://github.com/pharo-project/pharo-core
>>> Commit: 0b91cdb07971022da3f17f804d4d8a9eb355d341
>>>
>>> https://github.com/pharo-project/pharo-core/commit/0b91cdb07971022da3f17f80…
>>> Author: Jenkins Build Server <board(a)pharo-project.org>
>>> Date: 2015-04-29 (Wed, 29 Apr 2015)
>>>
>>> Changed paths:
>>> R
>>> Collections-Strings.package/String.class/instance/accessing/allRangesOfSubString_.st
>>> R
>>> Collections-Strings.package/String.class/instance/accessing/findAnySubStr_startingAt_.st
>>> A
>>> Collections-Strings.package/String.class/instance/accessing/findAnySubstring_startingAt_.st
>>> R
>>> Collections-Strings.package/String.class/instance/accessing/findBetweenSubStrs_.st
>>> A
>>> Collections-Strings.package/String.class/instance/accessing/findBetweenSubstrings_.st
>>> M
>>> Collections-Strings.package/String.class/instance/accessing/findLastOccurrenceOfString_startingAt_.st
>>> M
>>> Collections-Strings.package/String.class/instance/accessing/findString_.st
>>> M
>>> Collections-Strings.package/String.class/instance/accessing/findString_startingAt_.st
>>> M
>>> Collections-Strings.package/String.class/instance/accessing/findTokens_includes_.st
>>> M
>>> Collections-Strings.package/String.class/instance/accessing/includesSubstring_.st
>>> R
>>> Collections-Strings.package/String.class/instance/accessing/skipAnySubStr_startingAt_.st
>>> A
>>> Collections-Strings.package/String.class/instance/accessing/skipAnySubstring_startingAt_.st
>>> R
>>> Collections-Strings.package/String.class/instance/converting/subStrings_.st
>>> M
>>> Collections-Strings.package/String.class/instance/converting/substrings_.st
>>> R CollectionsTests.package/StringTest.class/instance/testing -
>>> converting/testSubStrings.st
>>> M
>>> CollectionsTests.package/TAsStringCommaAndDelimiterSequenceableTest.class/instance/tests
>>> - comma and delimiter/testAsCommaStringMore.st
>>> M
>>> CollectionsTests.package/TAsStringCommaAndDelimiterSequenceableTest.class/instance/tests
>>> - comma and delimiter/testAsStringOnDelimiterLastMore.st
>>> M
>>> CollectionsTests.package/TAsStringCommaAndDelimiterSequenceableTest.class/instance/tests
>>> - comma and delimiter/testAsStringOnDelimiterMore.st
>>> M
>>> CollectionsTests.package/TAsStringCommaAndDelimiterTest.class/instance/tests
>>> - as string comma delimiter sequenceable/testAsCommaStringMore.st
>>> M
>>> CollectionsTests.package/TAsStringCommaAndDelimiterTest.class/instance/tests
>>> - as string comma delimiter sequenceable/testAsStringOnDelimiterLastMore.st
>>> M
>>> CollectionsTests.package/TAsStringCommaAndDelimiterTest.class/instance/tests
>>> - as string comma delimiter sequenceable/testAsStringOnDelimiterMore.st
>>> M
>>> CollectionsTests.package/TPrintOnSequencedTest.class/instance/tests -
>>> printing/testPrintElementsOn.st
>>> M
>>> CollectionsTests.package/TPrintOnSequencedTest.class/instance/tests -
>>> printing/testPrintOn.st
>>> M
>>> CollectionsTests.package/TPrintOnSequencedTest.class/instance/tests -
>>> printing/testPrintOnDelimiter.st
>>> M
>>> CollectionsTests.package/TPrintOnSequencedTest.class/instance/tests -
>>> printing/testPrintOnDelimiterLast.st
>>> M CollectionsTests.package/TPrintTest.class/instance/tests -
>>> printing/testPrintElementsOn.st
>>> M CollectionsTests.package/TPrintTest.class/instance/tests -
>>> printing/testPrintOn.st
>>> M CollectionsTests.package/TPrintTest.class/instance/tests -
>>> printing/testPrintOnDelimiter.st
>>> M CollectionsTests.package/TPrintTest.class/instance/tests -
>>> printing/testPrintOnDelimiterLast.st
>>> M CollectionsTests.package/TPrintTest.class/instance/tests -
>>> printing/testStoreOn.st
>>> A
>>> Deprecated50.package/extension/String/instance/allRangesOfSubString_.st
>>> A
>>> Deprecated50.package/extension/String/instance/findAnySubStr_startingAt_.st
>>> A
>>> Deprecated50.package/extension/String/instance/findBetweenSubStrs_.st
>>> A
>>> Deprecated50.package/extension/String/instance/skipAnySubStr_startingAt_.st
>>> A Deprecated50.package/extension/String/instance/subStrings_.st
>>> M
>>> Morphic-Base.package/Paragraph.class/instance/selection/secondarySelection_.st
>>> M
>>> Morphic-Base.package/TextMorphForEditView.class/instance/find-replace/findNextString_startingAt_.st
>>> M
>>> Morphic-Base.package/TextMorphForEditView.class/instance/private/refreshExtraSelection.st
>>> M
>>> NECompletion.package/NECSymbols.class/class/query/startsWith_caseSensitive_do_.st
>>> M Network-Mail.package/MIMEHeaderValue.class/class/instance
>>> creation/fromMIMEHeader_.st
>>> M
>>> Refactoring-Critics.package/RBFutureDeprecationWarningRule.class/instance/private/plannedSelectorRenames.st
>>> A
>>> Reflectivity-Tests.package/ReflectiveMethodTest.class/instance/tests -
>>> links/testLinkWithConditionInvalidation.st
>>> A Reflectivity.package/MetaLink.class/instance/installing/
>>> invalidate.st
>>> M Reflectivity.package/MetaLink.class/instance/link api/arguments_.st
>>> M Reflectivity.package/MetaLink.class/instance/link api/condition_.st
>>> M Reflectivity.package/MetaLink.class/instance/link api/control_.st
>>> M Reflectivity.package/MetaLink.class/instance/link api/level_.st
>>> M Reflectivity.package/MetaLink.class/instance/link
>>> api/metaObject_.st
>>> M Reflectivity.package/MetaLink.class/instance/link api/selector_.st
>>> A Reflectivity.package/extension/RBProgramNode/instance/
>>> invalidate.st
>>> M
>>> SUnit-Core.package/TAssertable.class/instance/asserting/should_raise_whoseDescriptionDoesNotInclude_description_.st
>>> M
>>> SUnit-Core.package/TAssertable.class/instance/asserting/should_raise_whoseDescriptionIncludes_description_.st
>>> M
>>> SUnit-Core.package/TAssertable.class/instance/asserting/shouldnt_raise_whoseDescriptionDoesNotInclude_description_.st
>>> M
>>> SUnit-Core.package/TAssertable.class/instance/asserting/shouldnt_raise_whoseDescriptionIncludes_description_.st
>>> M
>>> ScriptLoader50.package/ScriptLoader.class/class/source/latestVersionOf_location_.st
>>> R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/
>>> script627.st
>>> A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/
>>> script628.st
>>> R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/
>>> update50018.st
>>> A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/
>>> update50019.st
>>> M
>>> ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
>>> M
>>> Text-Core.package/Text.class/instance/accessing/findString_startingAt_.st
>>> M
>>> Text-Core.package/Text.class/instance/accessing/findString_startingAt_caseSensitive_.st
>>> R
>>> Text-Edition.package/FindReplaceService.class/instance/services/findNextSubString_inTextMorph_.st
>>> M
>>> Text-Edition.package/TextEditor.class/instance/find-select/findNextString_startingAt_.st
>>> M Text-Edition.package/TextEditor.class/instance/menu
>>> messages/findAgain.st
>>> M Tool-Finder.package/MethodFinder.class/instance/initialize/
>>> initialize2.st
>>>
>>> Log Message:
>>> -----------
>>> 50019
>>> 14080 Nuke remaining subStringXyzs
>>> https://pharo.fogbugz.com/f/cases/14080
>>>
>>> 15435 MetaLink: invalidate all methods when state of link ist changed
>>> https://pharo.fogbugz.com/f/cases/15435
>>>
>>> http://files.pharo.org/image/50/50019.zip
>>>
>>>
>>>
>>
>
--
www.tudorgirba.com
"Every thing has its own flow"
Hi,
why can’t we put GLMRoassal2Presentation and related classes into roassal? For now when you load roassal into your image you cannot see roassal view in the inspector, you cannot see examples and so on. Glamour is by default now in Pharo image. Why should roassal related code be in special glamour repo and not in roassal repo?
Uko
… but it has GLMInputPresentation :)
shouldn’t we add #input to GLMCompositePresentation?
other questions: since Glamour now is part of Pharo, should glamour questions be redirected to pharo-dev?
Esteban
Hi,
I need to make horizontal scroll in tables and I don’t find the way. Is that possible?
I remember I did it a couple of years ago, but I don’t remember if is something I hacked or it was provided…
Esteban
Hi guys,
do you know, that if one loads Moose by hand in Pharo 4 by running:
Metacello new
smalltalkhubUser: 'Moose'
project: 'Moose';
configuration: 'Moose';
version: #development;
load
then you get a warning:
This package depends on the following classes:
MethodContext
You must resolve these dependencies before you will be able to load these definitions:
classOrMetaClass
messageName
and if you skip it, on any error an emergency evaluator will popup and wont go away.
Uko
Hi!
We just improved the SparkLine support in Roassal.
Consider:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
v := RTView new.
cls := RTLayout withAllSubclasses.
s := RTSparkline new
width: 50; height: 30;
values: [ :cls | (cls methods collect: #numberOfLinesOfCode) sorted ].
es := s elementsOn: cls.
v addAll: es.
es @ RTPopup @ RTDraggable.
RTFlowLayout on: es.
v
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
This is still early work, but I still wanted to share it with you.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Dear All,
There is a possibility to do a postdoc at the University of Chile. The position is competitive: 3 years, good salary, and a budget you can spend as you wish.
Get in touch with me for more info.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi all,
Glamour has been a really empowering framework for quick prototyping of
my ideas, but my browser starts to need more common user interface things:
1. A explicit menu with submenus on top of the browser windows (not
hidden behind the dots like now).
2. Better icons and a tool bar.
3. A contextual menu in each node of the tree for actions on that node.
I remember an introductory video of Tudor where he said that Moose is
not for general interface building (I can't find it right now) and If
I'm well some time ago versioner was made on Glamour.
So, my question is: If I want the features of a common interface, which
is the best approach? Rewrite the interface on Spec or mixing/extend
some parts of the browser with spec or anything else? If the last is the
case, there is any documentation or examples I can look?
Thanks,
Offray