Hi,
I'm just testing/porting some of my stuff on pharo 4 (congrats again for
the release!) and I see something strange. When I run the examples of
agile visualization on a playground I don't get all the tabs that I get
on Pharo 3.0 and Moose 5.0 and 5.1, only the "Raw" and "Meta". Tabs like
"View" and "Elements" are lost, which are particulary needed when you
explore a visualization.
To repeat this behaviour, just run any example of agile visualization
book on a fresh image of Pharo 4.
I'm running Pharo4.0 Latest update: #40611 on an Arch Linux system.
Hope it helps,
Offray
Hi!
I am not quite sure how name cloud works. In particular the method #symbolsUsedInName. For example:
m := MooseGroup new.
m add: (FAMIXClass new name: 'Hello').
m add: (FAMIXClass new name: 'World').
self assert: m symbolsUsedInName size equals: 1.
I would expect to have #(#Hello #World) as the result of #symbolsUsedInName.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi everyone !
I'm currently working on Pillar !
It's been a little while now so I wanted to share what's new.
--> First of all, with Stephane we created a new project, Cocoon,
based on the configuration system of Pillar. And now Pillar uses
Cocoon for his configurations.
http://smalltalkhub.com/#!/~PharoExtras/Cocoon
--> Pillar unit tests weren't working on Windows before
--> With Damien we also added two new abstractions:
--> The transformers: They take the Pillar tree and modify it. For
exemple we have a transformer which evaluates the scripts with a
"eval=true" parameter.
--> The annotations: They let the writer specify many different
things in their document using just 1 syntax (see below for an
example)
--> We now have our first annotation tag: the inclusion tag !
If you add this:
${inputFile:test.pillar}$ or ${inputFile:folder/test.pillar}$
into your Pillar file, that will include the content of test.pillar.
I recommend for now to use it at the root of the pillar file and not
inside a paragraph. That still needs some improvement.
--> We now have a transformer which adds an anchor after each title.
The anchor will have the text of the title.
This still needs some improvement, it's really simple for now. For
exemple we need to consider the case where we have 2 titles with the
same text (like 'introduction').
--> Now you can add 'lineNumber=true' as parameter for a Script. This
will add a numerotation at your script, usefull if we want to explain
a long code.
--> I did some refactorisation on the parameters used by pillar to
clean the code.
--> I did some refactorisation of the template system, the old one was
really ugly and changed the baseDirectory. Now template are managed by
a stream and not a file.
--> I improved a little the configuration
--> Now if you want to change the baseDirectory you can pass a
FileReference, a relative path or an absolute path.
--> Now we look for the inputFiles from the baseDirectory and not
the working directory like before. You can also pass a FileReference,
a relative path or an absolute path.
--> I added some tests to Pillar.
--> I added some doc to EnterprisePharo
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessf…
--> To help the users I improved the error reports. Before we had
really few errors specific to Pillar.
For this one you can help me ! If you found a weird error or something
really not easy to deal with, send me your problem !
--
Cheers
Cyril Ferlicot
Hi!
Just to share a bit our progresses about Grapher.
***** Box plots *****
A box and whisker plot is a diagram showing statistical distribution of a data set. This is highly important as soon as you need to understand the distribution of some data.
Here is an example:
b := RTGrapher new.
b extent: 50 @ 300.
ds := RTBoxPlotDataSet new.
ds points: #(4.3 5.1 3.9 4.5 4.4 4.9 5.0 4.7 4.1 4.6 4.4 4.3 4.8 4.4 4.2 4.5 4.4).
b add: ds.
b axisX noLabel; noTick.
b
Another example with outliers:
b := RTGrapher new.
b extent: 50 @ 300.
ds := RTBoxPlotDataSet new.
ds points: #(14 15 16 16 17 17 17 17 17 18 18 18 18 18 18 19 19 19 20 20 20 20 20 20 21 21 22 23 24 24 29).
b add: ds.
b axisX noLabel; noTick.
b
Slightly more elaborated example:
b := RTGrapher new.
b extent: 400 @ 200.
RTShape withAllSubclasses do: [ :cls |
ds := RTBoxPlotDataSet new.
ds points: (cls methods collect: #numberOfLinesOfCode).
b add: ds.
].
b
***** Tick Improvement *****
Ticks are now much nicer. Consider the following script:
b := RTGrapher new.
ds := RTDataSet new.
ds dotShape color: Color red.
ds points: #(5 1 20 8).
b add: ds.
b addDecorator: (RTAverageDecorator new withLabel; labelConvertion: [ :value | ' average = ', (value round: 2) asString ]).
b build.
b
Before:
Now:
Not a big deal, but this is much nicer.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Some of you may be interesting into this.
We are currently working on a memory profiler. Our profiler snapshots a graph of objects. Visualizing them is then pretty easy. These pictures represent the graph of objects obtained by doing a system complexity (do it "RTGeneralExample new systemComplexity"). After the execution, 9070 objects are present in memory. These objects are naturally interconnected.
The visualization clearly show the interaction between different components. A is the Trachel component, a low layer graphic library. B is Roassal, a high level graphic framework. Roassal highly depends on Trachel. Statically Trachel does not depends on Roassal, however, they are during the execution. C are instances of RTGroup, which is a dedicated collection used in Roassal. The system complexity has been open in Glamour, so D are the Glamour components. E are event related objects, mainly instance of the Announcer class (each RTElement and TRShape share a unique Announcer). F are classes (i.e., instances of the Color class). G are 2d coordinates (i.e., instances of the Point class).
Thanks Alejandro Infante for this!
Likes are always appreciated: https://www.facebook.com/ObjectProfile/posts/832387470181185 <https://www.facebook.com/ObjectProfile/posts/832387470181185>
:-)
Cheers,
Alejandro & Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hello,
using #buildEdgesFromObjects:, I want to get red edges
http://ws.stfx.eu/DVAZQNX7QQOK <http://ws.stfx.eu/DVAZQNX7QQOK>
but, I'm getting the edges with grey color.
If it’s bug, can someone fix it please; if not - what am I doing wrong?
Kind regards,
Natalia
Hi everyone!
Probably most of you know, that I am developing a tool called QualityAssistant, which displays current critics about your code in SystemBrowser, Inspector and Spotter.
I’m happy to tell you that there is a new release v0.4 which does not require you to do any previous setup! Just load it from configuration browser (pharo 4 & 5) and it will start giving you feedback. More details can be found here: https://github.com/Uko/QualityAssistant#quality-assistant-beta- <https://github.com/Uko/QualityAssistant#quality-assistant-beta->. If you are upgrading from older version, it is recommended to load QualityAssistant into a fresh image, because multiple announcement and process changes may cause exceptions in old objects.
Even if you are an experienced programmer you can find QualityAssistant useful for instantly spotting typos or making sure that you didn’t forget some details about your code.
Please give me a feedback about your experience, as I want to make it even more useful. Either write me an email, or open an entry at: https://github.com/Uko/QualityAssistant/issues
Have a nice week!
Uko
Hi!
I would like to develop a small deployment process and I have trouble to
create a fully working runtime image.
I have implemented a simple Glamour browser and took the
PharolauncherDeplymentScript and adapted it to my needs.
But some how I can't tell my browser window to remove the window
decorations (become embedded) and also not to use the full world screen.
Is there an existing documentation on this?
Thank you!
Sebastian