Hi,
I currently use Charter which is doing nice charts for me. But I experienced some kind of bug with the scales of the chart especially if the values are negatives.
See by yourself:
[cid:image001.jpg@01CFB315.9897E410]
Here the code to draw it:
| b |
b := RTCharterBuilder new.
b extent: 400 @ 300.
b points: { 5 . 6 . 7 .-1 . -3}.
b connectDotColor: Color red.
b interaction popup.
b allY: #yourself.
b stackX.
b axisXWithNumberOfTicks: 4.
b axisYWithNumberOfTicks: 6.
b open.
b view canvas.
Did I make something wrong?
Thanks in advance !
Cheers,
Vincent
________________________________
Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? de Worldline ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
I took the notes below while going through the chapter. In summary:
- maybe RTTabTable is mis-packaged?
- it's hard to keep written examples up-to-date with the code, especially
when they are not automatically tested (of course in my dreams we only have
active essays and never run into this problem, yet I digress...)
- Code comments are key for when users want to drop into the code quickly
from an example in the documentation to adapt it to our own needs
- Nagging thought (not specific to the chapter): most of the Roassal
examples I've seen illustrate procedural scripts. It might be nice to have
more OOP examples, or if the point is to target
non-programmers/Smalltalkers, at least a disclaimer saying that they're in
script form for simplicity of copy/paste or whatever, but a real-world OOP
example can be downloaded at...
Roassal Quick Start says to visualize CSV data starting with RTTabTable, but
shows the table plotted on a map, which does not fit my use case. It seems
like I should be able to use the table not-on-a-map, but I see that it’s in
the Builder-Map package, so I’m not so sure. In the end, that works out okay
because I see that it’s reused in the Timeline example.
Just as an experiment, I adapt the timeline example. Most of it is
straightforward except the send of #normalizeSize:min:max:using: which was
hardcoded and makes my data huge. I’d like to adjust it, but neither the
method nor its class (RTMetricNormalizer) has a comment and I can’t figure
it out from the example senders. Oh, well it was just an experiment…
Next up, the charting example. First hurdle:
#axisXNoLabelledWithNumberOfTicks: does not seem to exist in the system
(fresh download from the link at the start of the chapter). I shorten it to
axisXWithNumberOfTicks:, which works but the resulting chart is overcrowded
with X axis labels. The example now works, but it’s hard to figure out
what’s going on to adapt it to my use. For example, allY: is not a
meaningful name to me and there is no method comment.
HTH.
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Quick-Start-User-Experience-tp4773949.html
Sent from the Moose mailing list archive at Nabble.com.
Roassal is sooo cool! Maybe /too/ cool?! ;-)
I'm having a hard time with RTCharterBuilder. My confusion comes from
everything appearing on the same level, kind of like Amber's html canvas
being magically changed when you enter a tag #with: block. Check out this
snippet for example:
b := RTCharterBuilder new.
...
b interaction popupText: [ :point | point someMessage ].
b points: aCollectionOfPointsOfTypeA.
b connectDotColor: Color green.
b y: [ :r | r newLikes ].
b x: [ :d | d date julianDayNumber ].
...
b interaction popupText: [ :point | point anotherMessage ].
b points: aCollectionOfPointsOfTypeB.
b connectDotColor: Color red.
b y: [ :r | r second * 50 ].
b x: [ :d | d first julianDayNumber ].
The fact that #x: and y: mean different things depending on the order of the
rest of the script is a little "too helpful" to me. I'd much rather have
things that are a property of a particular data set belong to a tangible
object. Something like:
dataSet := RTDataSet new
points: anotherCollection;
connectDotColor: Color red;
y: [ :r | r second * 50 ];
x: [ :d | d first julianDayNumber ].
b addDataSet: dataSet.
The magic confuses other not-so-magical things. Like, afterwards, I tried to
set #popupText: differently for each data set, but they all seemed to be
applied to the both data sets, and were causing errors because the type of
points were different, so I was getting DNUs. Now here was the real cost: I
wasn't sure whether #popupText: was per-chart, or there was some special
ordering necessary e.g. "#popupText: before #points:". This lead to flopping
around followed by giving up. I eventually got frustrated enough that I
hacked in an #isKindOf: in both #popupText: blocks since I couldn't delegate
the #popupText: to the point objects because it was specific to this
particular chart.
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Chart-Builder-DSL-Too-Good-tp4773990.html
Sent from the Moose mailing list archive at Nabble.com.
Hi,
I’ve just noticed an interesting thing. When I open roassal examples and then I #fork some block, it’s not being executed. But as soon as I close examples it executes. Maybe some #yield is missing somewhere?
Uko
Hi,
We will have a Moose 5.0 release soon (ideally this month). What is left to
do is:
- Integrate PP-Islands (Jan? :))
- Migrate relevant visualizations from Roassal1 to Roassal2
- Drop Roassal1 and GraphET1 from the configuration (the packages will
still be loadable, only not supported anymore)
Are there other topics we should be aware of?
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
Hi guys - excuse me if I have the terminology wrong, but are there any gtInspector tab things for visualising JSON in the inspector?
Inspired from Tudor’s ESUG talk on using moose for non-code things I thought I might explore visualising some cards a team stores in Trello (which is JSON based).
I’m building up some objects to model Trello, but they are pulling from some raw JSON and it would be handy to see it more easily in an inspector to work out what I need. I did wonder if Moose had been used on JSON data and whether it had been plugged into GTInspector?
If not - maybe there is a little side distraction for me?
Which raises an interesting side question - is there the concept of dynamic tabs in GTInspector? As in - if have a string and I think it can be rendered in JSon, can I then popup a tab for that visualisation?
Tim
Hi,
Jan has implemented a nice parser that allows us to specify easily
productions that depend on text having to be on a new line.
For example, in Pillar, a header is specified through an exclamation mark
starting on a new line. Now, you can parse this as:
#startOfLine asParser , $! asParser , #newline asParser negate star
Pretty cool!
@Jan: I think we need to enhance a bit the implementation. The
implementation looks like this right now:
isStartOfLine
(position = 0) ifTrue: [ ^ true ].
^ (collection at: position) = Character cr.
This will work when the line ending is either cr or lf+cr. However, it
won't work if the line ending is just lf.
For example, in my parsers, the newline implementation looks like:
(#cr asParser , #lf asParser optional) / #lf asParser / #cr asParser
What do you think?
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"