Hi everyone,
after having access to a machine running OS X 10.10.2 I started to give
Moose 5.1 a try for some initial data analysis.
I used Pharo Launcher (build #24) and downloaded the Moose image with
buildnumber 304.
The task is to read a CSV log file containing around 130000 entries, each
containing a timestamp, a cpu usage number, and some other information.
Everything works as expected, but the responsiveness of the image drops
dramatically after executing the script in Playground with Cmd+Shift+g.
After evaluating the script it takes several seconds to get a response to
any action such as opening the world menu or switching tabs in the
playground.
Is this because I am doing something very inefficient (most probably) or
does this problem occur more often?
Here is the script I am using:
cpuReader := NeoCSVReader on: (cpuFile readStream).
cpuReader separator: $|.
cpuHeader := cpuReader readHeader.
cpuData := cpuReader upToEnd.
g := RTGrapher new.
g extent: 300@200.
ds := RTDataSet new.
ds points: (cpuData collect: [ :each |
| timestamp cpuUsage |
timestamp := (each at: 1) asNumber.
cpuUsage := (each at: 4) asNumber.
Array braceWith: timestamp with: cpuUsage]).
ds x: #first.
ds y: #second.
ds connectColor: Color blue.
g add: ds.
g addDecorator: RTHorizontalTickLineDecorator new.
g addDecorator: RTVerticalTickLineDecorator new.
g build.
g view canvas.
I also noticed that the 'Meta' representation of an object looks very
crammed since it does not use the full size available in the tab.
Should issues like this be reported somewhere else?
Thanks for taking a look at this,
Manfred
Hi!
Just to share our latest feature.
We have implemented a simple mechanism in Roassal to prevent the environment to be sluggish with many elements.
The class RTCache has the effect to remove the elements from a view, create a bitmap from them, and add the bitmap to the view. Simple and effective.
Consider the following script:
-=-=—=-=-=—=-=-=—=-=-=—=-=-=—=
v := RTView new.
v @ RTDraggableView.
colors := ColorPalette qualitative colors: 8 scheme:'Set1'.
elements := (RTEllipse new color: [ :aValue | colors atRandom alpha: 0.01 ]; size: #yourself) elementsOn: ((1 to: 500000) collect: [ :vv | 10 atRandom + 5 ]).
elements do: [ :e | e translateTo: 500 atRandom @ 500 atRandom ].
v addAll: elements.
RTCache new cacheView: v.
v
-=-=—=-=-=—=-=-=—=-=-=—=-=-=—=
Without the line "RTCache new cacheView: v.” Pharo would be completely unresponsive. 500 000 elements is quite a lot.
The drawback is that all interaction with the elements are lost. I have some idea on how to add them back. We will work on this in future work.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
I would like to create a tag cloud around an avatar taken from the
public profile of a social network (twitter). For that I would like to
know if is possible to make 3 things in Roassal:
1. Put a tag cloud with some layout/form (for example around an object).
2. Put a raster image (the avatar) in the center of that tag cloud.
3. Exclude some words from the tag cloud.
I will be making my explorations tonight and tomorrow morning, but any
pointer in the right direction will be greatly appreciated.
Cheers,
Offray
hi all,
Many test on PetitSmalltalk were failing so i tried to fix them.
someone should review the changes, there are many, and it's my
first time with petitparser.
see attached file.
Steps:
- evaluate
Gofer it
smalltalkhubUser: 'Pharo' project: 'MetaRepoForPharo40';
configurationOf: 'PetitParser';
loadBleedingEdge.
- and merge attached file
Name: PetitSmalltalk-BernardoContreras.84
Author: BernardoContreras
Time: 13 March 2015, 9:24:08.132253 pm
UUID: fc0534b1-3411-485c-87bc-0afa4eaab84d
Ancestors: PetitSmalltalk-TudorGirba.83
PPSmalltalkClassesTests>>#verifyClass:selector:
compare the keywordsPositions instead of the selectorParts
add PPSmalltalkGrammarTests>>#testPragma17
PPSmalltalkGrammarTests>>#testPragma18
PPSmalltalkParserTests>>#testPragma17
PPSmalltalkParserTests>>#testPragma18
tests pragmas with a keyword message.
add PPSmalltalkParser>>#buildSelector:
builds a selector from a array of RB tokens
for every given test add the keywordsPositions assertion.
i think it's needed because the PPSmalltalkClassesTests check the positions.
remove RBValueToken>>#inputValue (noone calls it?)
HTH,
--
Bernardo E.C.
Sent from a cheap desktop computer in South America.
Hi!
I am facing a scenario that spotter does not seem to help. Consider the following scenario:
- Consider the Moose Panel menu:
- I would like to know how to add a new entry in that menu. Best is to look for existing example. So, I would like to see the class behind the entry “import hismo model from MSE files”. I highly suspect that the class contains the word “Hismo” and “Import” in it. Well, let’s see what spotter gives me.
- I open Spotter and enter: hismo import
Instead, I open Nautilus, typed Importer, and found it:
It is MooseHismoImporter. Well, from this class, I end up in MPImportHismoCommand, which is exactly what I am looking for
Did I miss anything obvious in my reasoning?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi Again :-)
So, I compiled a fraction of the BBC News JavaScript application. And I started to visualize their JavaScript application.
Here are my two tries:
So, it seems to work well :-) Happy I am :-)
Cheers,
Alexandre
[ NB: I put the moose mailing list in copy since this may have a great interest in the community ]
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Begin forwarded message:
From: google-code-noreply(a)google.com
Subject: Google Code shutting down
Date: 13 Mar 2015 02:11:08 GMT+1
To: stephane.ducasse(a)gmail.com
Reply-To: google-code-noreply(a)google.com
Google Code
Hello,
Earlier today, Google announced we will be turning down Google Code
Project Hosting. The service started in 2006 with the goal of providing
a scalable and reliable way of hosting open source projects. Since that
time, millions of people have contributed to open source projects hosted
on the site.
But a lot has changed since 2006. In the past nine years, many other
options for hosting open source projects have popped up, along with
vibrant communities of developers. It’s time to recognize that Google
Code’s mission to provide open source projects a home has been
accomplished by others, such as GitHub and Bitbucket.
We will be shutting down Google Code over the coming months. Starting
today, the site will no longer accept new projects, but will remain
functionally unchanged until August 2015. After that, project data will
be read-only. Early next year, the site will shut down, but project data
will be available for download in an archive format.
As the owner of the following projects, you have several options for
migrating your data.
pier
google-summer-of-code-2008-squeak
google-summer-of-code-2007-squeak
bluecoral
seasidexul
moose-technology
The simplest option would be to use the Google Code Exporter, a new tool
that will allow you to export your projects directly to GitHub.
Alternatively, we have documentation on how to migrate to other services
— GitHub, Bitbucket, and SourceForge — manually.
For more information, please see the Google Open Source blog or contact
google-code-shutdown(a)google.com.
-The Google Code team
Google Inc. 1600 Amphitheatre Parkway, Mountain View, CA 94043
You have received this mandatory email service announcement to update
you about important changes to Google Code Project Hosting.
Hi!
I am building a small meta-models for c++ analysis.
I have created a class called PCPPFunction, a subclass of MooseEntity. (I know there is a FAMIXFunction, but the PCPPFunction is radically different from FAMIXFunction because if contains many information about dynamic analysis).
When I visualize instance of PCPPFunction, and I click on one, I get an error:
I guess I did not properly define the metamodel behind. But I do not see what is wrong. Here are the definitions:
PCPPObject class>>annotation
<MSEClass: #PCPPObject super: #MooseEntity>
<package: #ProfilerCPP>
^ self
PCPPFunction class>>annotation
<MSEClass: #PCPPFunction super: #PCPPObject>
<package: #ProfilerCPP>
^ self
Is this not enough? Why is there a call to mooseDescription? Help appreciated
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hello,
I found the bug in the #drawOn:.
Sometimes the camera position may be not float, as a result you get the ”red screen of death” ) .
Here is mcz with fix. Please integrate it.
Best regards,
Natalia
Hi,
I would like to apply filter only on the root items in a tree presentation
and not on all children. Computing children take a bit of time for each
node, which is acceptable for each root. However, accumulated computation
time make the filtering un-usable.
I could not find a possible way to avoid the filter computation for the
children in GLMTreeMorphNodeModel>>shouldBeDisplayedByText with the current
implementation. I can propose a fix.
Let me know what you think.
regards.
usman
I've just written a list of nice features we miss in Pillar:
http://www.smalltalkhub.com/#!/~Pier/Pillar
Please contribute by either making the list longer or, and I would prefer that, making it shorter.
Dear all,
something that might interest some of you.
There will be a datathon organized in Paris in collaboration with
the MIT about data & development in African countries from April 7th to 9th.
Some companies and NGOs will provide open data. Orange, the telecom
provider will provided some data about communication between local
antennas and also trajectories log of people.
I have the idea of having a small team using ROASSAL for participating
to the datathon and doing some nice vizualisations.
Anyone interested to made a team ?
You could find more information about this event here:
http://simplon.co/blog/2015/3/7/datathon-data-for-development-rdv-les-7-8-e…
sorry only in French.
Regards
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
Hi!
When I do a print or cmd-g on the selected expression in the back debugger, I get a new debugger. I would expect seeing the value of the expression (true or false here).
I have seen this problem many many times...
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-Roassal Maintainability
New issue 1112 by alexandr...(a)gmail.com: RTAction is not useful
https://code.google.com/p/moose-technology/issues/detail?id=1112
Describe the problem: what do you get? what do you expect?
RTAction has to be removed. RTBlink has to be an interaction instead
How to reproduce the problem: step by step if necessary
Additional information: platform, context which may impact the problem
Please fill in the labels with the following information:
* Type-Defect, Type-Enhancement, Type-Engineering, Type-Review, Type-Other
* Component-XXX
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Hi
I'm wondering how we handle the following case:
- we have a method with the same name on instance and class
- we import by merging class and metaclass.
I remember that I payed attention to that for ClassVariable but I do not see
how I handle it in the SmalltalkImporter.
Does one of you remember?
Stef
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-Roassal
New issue 1111 by alexandr...(a)gmail.com: RTExpandable does not work
https://code.google.com/p/moose-technology/issues/detail?id=1111
Describe the problem: what do you get? what do you expect?
In case that an element is expanded with edges, everything is screwed up.
How to reproduce the problem: step by step if necessary
Try this:
-=-=-=-=-=-=-=-=
v := RTView new.
v @ RTDraggableView.
"s := RTBox new width: [ :c | c numberOfVariables * 5 ]; height:
#numberOfMethods."
s := RTShapeBuilder new
rectangle;
width: [ :c | c numberOfVariables * 5 ]; height: #numberOfMethods.
es := s elementsOn: RTShape withAllSubclasses.
v add: es.
es @ RTPopup @ (RTLabelled new setAsHighlightable).
expand := (RTExpandable new
group: [ :group :element |
methods := (RTBox new color: Color red)
elementsOn: element model methods.
RTGridLayout on: methods.
methods @ RTPopup.
edges :=
RTEdgeBuilder new
elements: methods;
elementsToLookup: es;
view: v;
connectToAll: #dependentClasses.
group addAll: methods; addAll: edges ];
afterBlock: [ RTTreeLayout on: es ] ).
es @ expand.
eb := RTEdgeBuilder new.
eb shape line; verticalAttachPoint.
eb
view: v;
elements: es;
connectFrom: #superclass.
RTTreeLayout on: es.
v
-=-=-=-=-=-=-=-=
Additional information: platform, context which may impact the problem
Please fill in the labels with the following information:
* Type-Defect, Type-Enhancement, Type-Engineering, Type-Review, Type-Other
* Component-XXX
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Hi,
I find it quite confusing that there is always different shortcut for do it:
* Playground: alt + shift + g
* Inspector: alt + g
* Roassal Easel: alt + s
Can this be unified?
Peter
Hi,
I summarize below why I think fine grained configurations should be
preferred to groups.
The group is not a first class configuration, although it can be depended
on. If you depend on a group of a configuration, it's harder to understand
the consequences and it's harder to build tools for it.
Consider the graph below representing the dependencies starting from
ConfigurationOfMoose #development:
[image: Inline image 2]
It's a simple representation of dependencies, and it makes the maze of
configurations easier to grasp. The interesting thing about it is that by
showing a configuration node only once, you can see how multiple other
projects depend on it. For example, HashTable is being depended on by two
distinct configurations.
You can also see that Magritte depends on Grease, but you do not see that
it only depends on the Core group. To do that, you have to look at the
details of the edge.
We used to have groups in GT, however, after a while we moved to more fine
grained configurations. As a consequence, you can see that GlamourCore
(which used to be a group in Glamour) is being depended on by three
different configurations. Using first class configurations makes tool
building (like representation, navigation or release) easier.
You could argue that we could represent a Group as node, however, even then
you would not be able to see dependencies between groups that reside within
the same configuration because groups are not first class configurations
that can explicitly define dependencies, they are just groups.
Groups might provide an apparent ease of use for quick things, but I
strongly believe that they are an unessential construct and that if we
would not use them, tools would become cheaper and more effective.
Cheers,
Doru
On Sun, Mar 8, 2015 at 1:14 AM, Damien Cassou <damien.cassou(a)gmail.com>
wrote:
>
> On Mar 7, 2015 4:42 AM, "Tudor Girba" <tudor(a)tudorgirba.com> wrote:
> >
> > Actually, I would rather prefer to create a separate
> ConfigurationOfPillarTools that adds the Pillar-Pharo-Tools and the
> PetitParser dependency. What that be Ok?
>
> Ok for me, do as you prefer. What is your rationale?
>
--
www.tudorgirba.com
"Every thing has its own flow"
Hi!
I am forwarding Pierce’s answer to the mailing list. I think it may interest some people.
I was able to open and query a SQL database (.db file). It works nicely.
Just to let you know.
Cheers,
Alexandre
> Begin forwarded message:
>
> Date: March 7, 2015 at 3:09:37 AM EST
> From: Pierce Ng <pierce(a)samadhiweb.com>
> To: Pharo Development List <pharo-dev(a)lists.pharo.org>, Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
> Subject: Re: [Pharo-users] Reading an SQL db on OS X
> Reply-To: Any question about pharo is welcome <pharo-users(a)lists.pharo.org>
>
> On Wed, Mar 04, 2015 at 05:18:57PM -0500, Alexandre Bergel wrote:
>> I would like to read a SQL .db file. The page
>> http://smalltalkhub.com/#!/~PharoExtras/NBSQLite3 mention how to do this on
>> Windows and Linux, but not on OSX. What should I do to read a SQL file on OS
>> X? I tried google, but it did not work.
>
> Do it the same way on OSX as on Windows and Linux. On OSX you need to supply a
> full path name to the DB file. This is due to weirdness in Pharo.app; search
> this list's archives for a recent discussion.
>
> I wrote NBSQLite3 on OSX and tested on Linux. I don't use Windows. Subsequently
> Torsten moved NBSQLite3 to STH. Seems Torsten uses Linux and Windows, so now we
> have the 3 main platforms covered. :-)
>
> You may also want to check out http://www.samadhiweb.com/NBSQLite3.html.
>
> Pierce
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
There is the following method in Moose:
-=-=-=-=-=-=-=-=-=-=-=-=
MooseModel>>numberOfPackages
<MSEProperty: #numberOfPackages type: #Number>
<MSEComment: 'Total number of packages'>
^ self isSmalltalk
ifTrue: [self privateState propertyAt: #numberOfPackages ifAbsentPut: [self allPackages size].]
ifFalse: [self privateState propertyAt: #numberOfPackages ifAbsentPut: [self allNamespaces size].].
-=-=-=-=-=-=-=-=-=-=-=-=
The fact this method is defined in MooseModel seems quite wrong to me. Why should this method be in that class? #numberOfClasses is defined somewhere else.
I now have a moose model that contains profiling data, and the notion of package is meaningless in my context.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
I found this very interesting!
https://github.com/iamwilhelm/prolly
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.