Hi,
I have finally finished the first part of my visualization project of
political discourses on Twitter. You can see the details here:
http://mutabit.com/offray/static/blog/output/posts/visualizing-politiciansp…
(As you can see Pharo was not used to extract the data, just to scrap
it, structure it and visualize it).
The politicians tag cloud look nice if the background is white, because
the png background is transparent, but if you share it on Twitter, the
black background makes the tag cloud invisible. I could use image
editing programs to change the background from transparent to white, but
I would like to know if there is a way to make that change inside
Pharo/Roasal.
Thanks for all your support in making this ideas possible.
Cheers,
Offray
Hello guys,
I would like to present you apiwave <http://apiwave.com>, a tool to
discover and track APIs.
While it is easy to know how “popular” is a project in number of
contributors or fans, it’s quite hard to know how many clients are actually
using it.
To cover that, we performed an analysis on the most used APIs in top 500
GitHub java projects. On apiwave <http://apiwave.com/> you can dig into
this data, and explore how more than 250K frameworks/packages/APIs are
actually being used over time. You can read a bit more in this post
<https://apiwave.wordpress.com/2015/04/10/most-used-apis-in-top-500-github-j…>
.
Even if the tool is not directly related with Moose, I think it could be
interesting for some developers here :)
Feel free to provide feedback.
best regards,
--
Andre Hora
It only appears when diving starts from an inspector, not from a playground.
Will playgrounds get this button, too? It took me a while to figure out why
the button was missing in some cases. After you're a few panes deep, it
seems irrelevant how the first code was evaluated...
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/GT-Playground-Missing-Refresh-Button-tp4818761.html
Sent from the Moose mailing list archive at Nabble.com.
Hi All,
In ConfigurationOfPetitParser, there is a stable version 1.10 for Pharo 3.0
which says to load version PetitIndent.JanKurs.1.
version110: spec
<version: '1.10' imports: #('1.6-baseline' )>
spec for: #'common' do: [
..
package: 'PetitIndent' with: 'PetitIndent-JanKurs.1';
..
Yet, if I load the stable version from Pharo 3.0:
Gofer new smalltalkhubUser: 'Moose' project: 'PetitParser';
configurationOf: #PetitParser; load.
(ConfigurationOfPetitParser project version: '1.10') load.
I got PetitIndent.JanKurs.11 loaded, which is very unfortunate, since other
packages are kept old.
Does anyone knows why is this?
Cheers,
Jan
1. Go "#(1 2) asOrderedCollection"
2. In the right pane, type "firstIndex" and Go again
Either nothing happens or another pane opens on nil. "firstIndex" stays in
red, showing that it's not recognized.
Is this limitation on purpose?
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/GT-Inspector-Inst-Vars-Not-Bound-tp4818610.html
Sent from the Moose mailing list archive at Nabble.com.
Dear all,
this is a small report about the RESILIENCE team using Pharo&Roassal
for the D4D datathon challenge: http://www.d4d.orange.com/en/home
The idea was to use mobile network data from Senegal provided by
Orange company in order to solve some development problems.
The amount of data provided by Orange was really huge, something like
66 Gb: we have the number and the durations of calls between each pairs of GSM
antennas in Senegal (1666 different antennas) and also some
information about the mobility of people. You can find more
information about the data here:
http://arxiv.org/abs/1407.4885
We try to extract some data from August 2013, because we know that
some floods occurs at that time in Dakar. Our main objective was to to
be able to visualise mobility and communications patterns with ROASSAL
to see if there is any differences before and after the floods.
We had a lot of problems to solve in a short period of time :-)
At the beginning, we couldn't open huge files with Pharo. Only open a
file that is around 3.4Go is impossible. Pharo says that the file does
not exist.
Thierry tells us that us that one must compile the VM with
-D_FILE_OFFSET_BITS=64. (the Cog VMs are also built with
-D_GNU_SOURCE).
Why this is not done by default ?
After that we decide to split the files in many smaller files and we
try to use a mySQL database and various other tools but still have
many troubles because of the size of the data ... At the end, we have
done some visualisations but only on a tiny portion of the data on one
day (one day is around 100Mb of data). You could find some
visualisations done by our team here:
https://twitter.com/sergestinckwich/status/586178094215606273
Managing huge amount in Pharo and also ROASSAL is still a challenge
and we definitively need more tools in this area.
We had some problems with ROASSAL: bugs with RTEdgesBuilder (Alvaro
can you send a report to Alex about that ?), to much time to process
some viz, ...
At the end, our team receive the honorary price:
https://twitter.com/sergestinckwich/status/585866625745887232
This is a brief description of our project.
=========================================================
Project name: RESILIENCE
Team members: Clémence Douard (ENSCI), Onil Goubier (CIRELA), Alvaro
Peralta (LabU / Chile University), Aurélie Thouron (ENSCI), Serge Stinckwich
(IRD / UMMISCO)
The main concern of this project is to improve resilience after an
environmental crisis in a southern city. During the preparedness phase
before crisis, records of inhabitants habits (like patterns of
mobility or communications) are done in order to characterize the
situation before the crisis. Assessments of the improvements will then
be done by providing suitable visualizations of the resilience
dynamic. The goal is to help citizens to represent these improvements
and to take advantage of them in their daily lives.
We took as an example the city of Dakar during the flooding that
occurred in August 2013.
The data used are those of the dataset 1 (communication between
antennas) and 2 (user mobility) provided Orange. We use this
information, coupled to OSM, and other data related to floods of
August in Dakar to construct maps and indicators to show resilience.
Visualizations are made with agile visualization platform Roassal:
http://agilevisualization.com/
=========================================================
I would like to thank all the team members and also the people who
help us remotely: Alexandre Bergel (ObjectProfile/Chile University)
and Thierry Goubier (CEA)
I would like to thank also the SIMPLON team and ORANGE for organizing
such a nice event.
Regards,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
Hi,
A few days ago, I added new graph algorithms into MooseAlgos but I did not communicate about that.
I added 2 complementary algorithms:
- MalGraphReducer : it takes as input a graph and ouputs a graph without circuits. Nodes forming a circuit (or cycle if you prefer) are merged into a single node. A merge node has a reference to merged nodes. It uses the MalTarjan algorithm.
- MalTopologicalSorting : the well known graph sorting algorithm that can only be applied on graphs without circuits (cycles).
the latter could be useful for some layouting strategies of graphs for example.
Regards,
Christophe.
Hi!
Apparently something has change recently with selection and text highlight. When I select a portion of text, the highlight goes away in the selected portion. This is a regression apparently.
No idea whether this is on moose or on pharo.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Here is a small animated scale I did for the datathlon team. Some may find it interesting.
-=-=-=-=-=-=-=-=-=-=-=-=
v := RTView new.
v @ RTDraggableView.
"Linear per default"
scale := [ :x | x ].
width := 200.
doLayout := [
RTHorizontalLineLayout new gapSize: 0; on: dots.
RTMetricNormalizer new
elements: dots;
fastSmoothTranslation;
normalizeY: #numberOfMethods min: 0 max: width negated using: scale.
v signalUpdate ].
v addMenu: 'linear' callback: [ scale := [ :x | x ]. doLayout value ].
v addMenu: 'log' callback: [ scale := [ :x | (x + 1) log ] . doLayout value ].
v addMenu: 'square root' callback: [ scale := [ :x | x sqrt ] . doLayout value ].
values := RTObject withAllSubclasses.
dots := (RTEllipse new color: (Color blue alpha: 0.5)) elementsOn: values.
v addAll: dots.
doLayout value.
v
-=-=-=-=-=-=-=-=-=-=-=-=
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Please note that the deadline has been extended to the 17th April 2015 .
[Please accept our apologies if you receive multiple copies of this call]
[Please send to interested colleagues / mailing-lists]
************************************************************************************************************
CALL FOR PAPERS
IWST15 — International Workshop on Smalltalk Technologies
Brescia, Italy; July 15, 2015
http://www.esug.org/wiki/pier/Conferences/2015/International-Workshop-IWST_…
************************************************************************************************************
-------------------
Goals and scopes
-------------------
The goals of the workshop is to create a forum around advances or
experience in Smalltalk and to trigger discussions and exchanges of ideas.
The topics of your paper can be on all aspect of Smalltalk, theoretical as
well as practical. Participants are invited to submit research articles or
industrial papers. This year we want to open two different tracks: one
research track and one industrial track with less scientific constraints.
We expect papers of three kinds:
Short position papers describing emerging ideas
Long research papers with deeper description of experiments and of research
results.
Industrial papers with presentation of real and innovative Smalltalk
applications; this kind of paper should enlighten why Smalltalk is really
appropriate for your application.
We will not enforce any length restriction.
--------------------
Important Dates
--------------------
*Submission deadline: April 17th, 2015*
Notification deadline: May 20th, 2015
Workshop : July 15th, 2015
All accepted papers will be published in ACM DL
-------------------
Topics
-------------------
We welcome contributions on all aspects, theoretical as well as practical,
of Smalltalk related topics such as:
-Aspect-oriented programming,
-Design patterns,
-Experience reports,
-Frameworks,
-Implementation, new dialects or languages implemented in Smalltalk,
-Interaction with other languages,
-Meta-programming and Meta-modeling,
-Tools
-------------------
Best Paper Award
-------------------
To encourage the submission of high-quality papers, the IWST organizing
committee is very proud to announce a Best Paper Award for this edition of
IWST.
We thank the Lam Research Corporation for its financial contribution which
makes it possible for prizes for the three best papers: 1000 USD for first
place, 600 USD for second place and 400 USD for third place.
The ranking will be decided by the program committee during the review
process. The awards will be given during the ESUG conference social event.
The Best Paper Award will take place only with a minimum of six
submissions. Notice also that to be eligible, a paper must be presented at
the workshop by one of the author and that the presenting author must be
registered at the ESUG conference.
-------------------
Publication
-------------------
Both submissions and final papers must be prepared using the ACM SIGPLAN 10
point format. Templates for Word and LaTeX are available at
http://www.acm.org/sigs/sigplan/authorInformation.htm. This site also
contains links to useful informations on how to write effective submissions.
-------------------
Submission
-------------------
All submissions must be sent via easychair:
https://easychair.org/conferences/?conf=iwst2015
-------------------
Program chairs
-------------------
Anne Etien (Université de Lille 1, France)
Jannik Laval (Ecole des Mines de Douai, France)
--
~~Jannik Laval~~
École des Mines de Douai
Enseignant-chercheur
http://www.jannik-laval.euhttp://www.phratch.comhttp://www.approchealpes.infohttp://car.mines-douai.fr/
Hi!
I have just downloaded the last moose and I got an error when I open it. With the “load startup preferences” progress bar interrupted.
This may be related to the Spotter tracker?
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Several times we heard about the need to modify graphs on the fly. Johan is pushing in that direction. It would be good to hear about the community requirements.
Here is a starting point:
RTDynamicGrapher new example02
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Status: New
Owner: ----
Labels: Type-Enhancement Priority-Medium
New issue 1120 by sean.p.d...(a)gmail.com: GT Inspector: Editing Raw Values
Should Select All
https://code.google.com/p/moose-technology/issues/detail?id=1120
When double-clicking on a raw value to edit directly (an awesome feature
BTW), it would be great if the text was pre-selected so you could just
start typing.
--
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
Hello.
As we all know Force based layout is quite slow. For example if I use it for more that 200 points it takes ages and during that time I’m not even sure if it works or no.
So I wonder maybe it will be better to draw progress bar during the time it works?
Thanks.
Best regards,
Natalia
Hi!
Here is a small script I have written for a robotic application. You can use RTComposer to put several graphs next to each other. There is nothing new in that respect, but it is worth illustrating it once in a while...
Here is an example:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
force := { {'x' . 3 }. { 'y' . 4 } . { 'z' . 5 } }.
torque := { {'x' . 5 }. { 'y' . -10 } . { 'z' . 8 } }.
composer := RTComposer new.
"-------------"
"Force"
b := RTGrapher new.
b view: composer view.
ds := RTStackedDataSet new.
ds points: force.
ds y: #second.
ds barShape width: 30.
ds histogramWithBarTitle: #first rotation: 0.
b add: ds.
b axisX noLabel; noTick.
b build.
composer group: #force.
"-------------"
"Torque"
b := RTGrapher new.
b view: composer view.
ds := RTStackedDataSet new.
ds points: torque.
ds y: #second.
ds barShape width: 30.
ds histogramWithBarTitle: #first rotation: 0.
b add: ds.
b axisX noLabel; noTick.
b build.
composer group: #torque.
"-------------"
"Doing the layout of the graphs"
composer move: #force onTheLeftOf: #torque.
composer nameGroup: #force as: 'Force'.
composer nameGroup: #torque as: 'Torque'.
composer setGeneralTitle: 'Wrench'.
composer view.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
You obtain:
You need to update Roassal for this last example (I have added #setGeneralTitle:).
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi all! I want to make a little graph of a vector, with bars:
| b ds labels |
b := RTGrapher new.
b extent: 300 @ 200.
ds := RTStackedDataSet new.
ds points: { 2 . 2.3 . 1.2 }.
ds barShape width: 40.
b add: ds.
labels := #(x y z - -).
b axisX numberOfLabels:labels size-1.
b axisX numberOfTicks:labels size-1.
b axisX labelConvertion: [ :item | labels at:item +1].
b build.
^ b view
The code above writes the x 2 times. I just want an x, y and z under each
one of the bars. Also, I havo to do the 'item+1' thing because it somehow
starts at 0, and smalltalk arrays start at 1...
Thanks!
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-Roassal
New issue 1119 by alexandr...(a)gmail.com: progress bar when using the force
based layout
https://code.google.com/p/moose-technology/issues/detail?id=1119
An alternative is to have another subclass, such as
RTForceBasedWithProgressBarLayout
But this is not idea, because the progress bar should be by default Pharo.
And on VisualWorks no.
Another alternative, and the cleanest one I believe, is to have event
generated to every X steps. You can have whatever you wish as a callback,
moving the progress bar or not.
Alexandre
On Apr 8, 2015, at 9:50 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
We need a better way of modeling that :)
Doru
On Wed, Apr 8, 2015 at 2:44 PM, Alexandre Bergel <alexandre.bergel(a)me.com>
wrote:
I have cleaned a bit your code with something like:
doExecute: nodeElements
self start: nodeElements.
self isJobInstalled
ifTrue: [ self runLayoutInJob ]
ifFalse: [ self runLayoutSimply ].
alpha := 0.
nodes do: [ :e | translator translateTopLeftOf: e to: e position ]
It is in version .816 of Roassal2.
We should be able to run the layout without job. This is important for us
Thanks!
Alexandre
> On Apr 7, 2015, at 5:04 PM, Peter Uhnák <i.uhnak(a)gmail.com> wrote:
> Out of curiosity I dug a little deeper and was happy to learn about a Job
> and more about Pharo internals.
> In any case, try replacing RTForceBasedLayout>>doExecute: with this
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> doExecute: nodeElements
> self start: nodeElements.
> [ :job |
> job
> title: 'Laying out elements';
> min: 1 - alpha;
> max: 1.
> nbIterations = 0
> ifTrue: [ [ alpha := alpha * 0.99. alpha > 0.005 ]
> whileTrue: [ self step. job currentValue: 1 - alpha ] ]
> ifFalse: [ nbIterations timesRepeat: [ alpha :=
> alpha * 0.99. self step. job currentValue: 1 - alpha ] ]
> ] asJob run.
> alpha := 0.
> nodes do: [ :e | translator translateTopLeftOf: e to: e position ].
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> it's bit messy (and doesn't account for nbIterations), but its a proof of
> concept.
> I thing that it makes sense to create execution indicator without
> progress (with spinner for example)
> What can be done is to display alpha on progress bar. From current value
> to 0.005 or whatever there is.
> I was thinking more something like this
> http://www.barchart.com/shared/images/progress_bar.gif or thsi
> https://i.stack.imgur.com/gz9GK.gif
> Peter
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
--
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
Hello
I am trying to work with composite shapes, but I encountered a problem.
Let's say I need to create a circle... and in the center of it is another,
smaller, circle with label (but I need it to be centered according to both
label and smaller circle, that's why I decided to use composite shapes
instead of RTLabelled).
I am able to create it just fine, problem is when I call update on its
RTElement. I'm not sure whether I am even supposed to do it, but I think I
should be.
I start with just the inner circle with label:
| composite view |
composite := (RTLabel new
text: 'label';
yourself)
+
(RTEllipse new
size: 10;
yourself).
composite horizontal.
element := composite element.
view := RTView new.
view
add: element;
open.
element update.
Before element update, it looks fine, but when I call update, composite
layout (horizontal) gets lost.
Let's say I can ignore this problem (which I can't), and I will try the same
thing with whole shape
| composite view subcomposite |
subcomposite := (RTLabel new
text: 'label';
yourself)
+
(RTEllipse new
size: 10;
yourself).
subcomposite horizontal.
composite := (RTEllipse new
size: 50;
color: Color transparent;
borderColor: Color black;
yourself) + subcomposite.
element := composite element.
view := RTView new.
view
add: element;
open.
element update
this time I get exception MessageNotUnderstood: TRCompositeShape>>text:on:
I will appreciate any help, either by fixing something if it is broken, or
explaining how to reach my goal the correct way.
Jan
--
View this message in context: http://forum.world.st/Roassal-2-updating-CompositeShape-tp4813359.html
Sent from the Moose mailing list archive at Nabble.com.
Dear all,
As many of you know, Grapher is a über-cool charting engine, part of Roassal.
For people who do not know what Grapher is, here is a (compelling we hope) example:
Which is obtained by the following script:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| b colors points ds pts dec lb |
b := RTGrapher new.
colors := Array with: Color red with: Color blue.
points := OrderedCollection new.
colors do: [ :c |
ds := RTStackedDataSet new.
pts := ((1 to: 100) collect: [ :i | 50 atRandom - 25 ]) cumsum.
points add: pts.
ds points: pts.
dec := RTDevVarDecorator new.
dec moveBehind;
desviation: 0.5;
color: (c alpha: 0.3);
points: pts.
ds connectUsing: (RTLine new color: (c alpha: 0.5); width: 1 ).
b add: ds.
b addDecorator: dec.
].
b axisX; axisY.
b build.
lb := RTLegendBuilder new.
lb view: b view.
colors doWithIndex: [ :c :i |
lb addColor: c text: 'Series ', i printString ].
lb build.
b view @ RTZoomableView.
b view
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In our grand vision of making Roassal the best visualizing engine of the Universe (we also know to be modest time to time, but not today :-), Grapher will play a very important role. We would like to stabilize Grapher and make it sure it happily fits everybody needs. You can help on it:
- When you are tempted to look at the dark side of the planet (this is where R, JFreeChart, gnuplot, D3 and all their friends live), let us know. We will make sure to make you are happy again.
- Share your wishlist with us. We already have a long todo list, but your opinion does matter and will take it seriously
- we are open to contributions, which could be financial, bug fixe, enhancement, or simply encouragement.
I am very happy to be surrounded by very smart engineers. Your encouragement are making them happy :-)
Cheers,
Alexandre, in the name of the Object Profile Team
NB: sorry for the cross-list posting, but this email is very important for us, and for you we hope.
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hello.
The RTPolygon borders are scaled with the rest of the image. I resolved this issue.
Can someone integrate mcz file in attachment?
Best regards,
Natalia
Hey,
I usually inspect a lot with arrays and since recently, I don't see really
an array content, just number of items, eg:
#( #('a' 'b') #('b')) -> inspect
an Array [2 items]
an Array [1 item]
Instead of:
#( #('a' 'b') #('b'))
This is -- for me -- super-annoying. do you think an original functionality
can be returned back, or you have some serious reasons to have it like this?
Cheers,
Jan