1800
start
autosave
333
reset
x SD lines
*histogram ( blend:
)
bin width
0.6
S
bin offset
0.0
S
regression guess
residuals: vertical
residuals: perpendicular
*regression: y~x
residuals: vertical
*regression: Deming
residuals: perpendicular
*smooth: y~x
smooth points
7
S
jog last
stop jog
sweep last
suppress edits
reset
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
switches: {
    // chart settings and signalsheld in a reactive set
    showXSDLines: { init: "FALSE" },
    showHistogram: { init: "FALSE" },
    showHistBlended: { init: "FALSE" },
    showGuess: { init: "FALSE" },
    showVResiduals: { init: "FALSE" },
    showPResiduals: { init: "FALSE" },
    showLM: { init: "FALSE" },
    showLMResiduals: { init: "FALSE" },
    showDeming: { init: "FALSE" },
    showDemingResiduals: { init: "FALSE" },
    showPopup: { init: "FALSE"rebuild: [ "plot3" ] },
    showDeming: { init: "FALSE" },
    showSmooth: { init: "FALSE" },
    xProp: { init: "NULL" },
    yProp: { init: "NULL" },
    suppressEdits: { init: "FALSE" },
    runProfile: { init: "FALSE" }
},
defaultSettings: {
    // user-driven variables used to control charts
    workingDataEdits: "list()",
    workingDataRanges: "list()",
    guessMList: "list()",
    binwidth: "0.5",
    binoffset: "0",
    smoothpoints: "7"
},
sweepSettings: {
    workingDataEdits: "list()",
    workingDataRanges: "list()",
    guessMList: "list()",
    binwidth: "list()",
    binoffset: "list()",
    smoothpoints: "list()"
},
statics: {
    // values from which we don't expect to be hanging reactive 
observers
    nonPlotStateSwitches: "c('showPopup', 'suppressEdits', 'runProfi
le')",
    plotStateSettings: "c('workingDataEdits', 'workingDataRanges', 
'guessMList', 'binwidth', 'binoffset', 'smoothpoints')",
    plot1Sources: "c('sweep_scatter', 'default_axisSpec', 'default_x
SDLines', 'default_rangeControls', 'default_rangeLines', 'sweep_rang
eLines', 'default_extendedGuessLine', 'sweep_extendedGuessLine', 
'default_vResiduals', 'default_pResiduals', 'default_lmLine', 
'sweep_lmLine', 'default_lmResiduals', 'default_demingLine', 
'sweep_demingLine', 'default_demingResiduals', 'default_bins', 
'sweep_bins')",
    plot2Sources: "c('default_annotatedTableData')",
    plot3Sources: "c('default_popup', 'sweep_popup')",
    invalid_build_sources: "list()",
    invalid_refresh_sources: "list()",
    waiting_for_refresh: "FALSE",  // cf reactive waiting_for_build
    chartDataQueue: "list()",
    maxX: "NA",
X
Initialise
Run
Stop
Clear
use local R
Workspace
X

Menu
LivelyR is a mashup of
 * R, with packages from RStudio:
    ggvis, shiny, evaluate, httpuv
 * Javascript, with libraries:
    Vega, d3, Lively Web
LivelyR is a work-in-progress by 
Aran Lunzer, guided and assisted by 
(among others)
  Amelia McNamara
  Dan Ingalls
  Robert Krahn
  Bret Victor
X
poll(
X
Enter search term:
Next
regexp
Prev
Occur

X
Workspace
X

Menu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sessionInfo()
memory.profile()
getwd()
exists("ggvis")
getOption("shiny.withlively")
library(devtools)
install_github("gigvis","aranlunzer")
install_github("shiny","aranlunzer")
install_github("lively-R-evaluate","rksm")
install.packages("Rcpp")
install.packages("httpuv")
install_github("httpuv","rstudio") # as per instructions at 
https://github.com/rstudio/httpuv
X
ObjectEditor
X

Menu
// changed at Fri Apr 04 2014 18:09:23 GMT-0700 (PDT) by aran  
this.addScript(function wrapRSpec() {
    // this.wrapRSpec()
    function fillTemplate(template,data){
        return template.replace(/%(\w*)%/g,function(m,key){return data.hasOwnProperty
(key)?data[key]:"";});
    }
    var editor = this.get("CodePanel");
    var codeString = editor.getTextString();
    var rawFillers = eval("({"+codeString+"})");
    var fillers = {}
    fillers.remOp = "%%"  // hack
    fillers.intDivOp = "%/%"
    fillers.inOp = "%in%"
    fillers.gvSwitches = ($.map(rawFillers.switches, function( settings, key ) {
        return key+"="+settings.init })).join(", ");
    fillers.gvDefault = ($.map(rawFillers.defaultSettings, function( val, key ) {
        return key+"="+val })).join(", ");
    fillers.gvSweep = ($.map(rawFillers.sweepSettings, function( val, key ) {
        return key+"="+val })).join(", ");
    fillers.initStatics = ($.map(rawFillers.statics, function( val, key ) {
        return fillTemplate("update_static('%k%', %v%)", { k: key, v: val })})).join("
; ");
X
<lively.morphic.HtmlWrapperMorph#BA219... - ShinyGigvisMorph1>
Tag:
run
save
Tests

initialise
isRReady
killR
loadExpressionParser
loadOMeta
loadVegaAndShinyThenDo
onLoad
popupChartMorph
reset
resetWorldHand
runCode
runRCode
startShiny
wrapRSpec
Scripts
-
+
-
Connections
+
-- ALL --
_Rotation,AttributeConnection(<lively.morphic.HtmlWrapperMorph#BA219... - ShinyGigvisMorph1>._Rotation --> <lively.morphic.Morph#1038F...>.setRotation)
rotation,AttributeConnection(<lively.morphic.HtmlWrapperMorph#BA219... - ShinyGigvisMorph1>.rotation --> <lively.morphic.Morph#1038F...>.setRotation)
_Scale,AttributeConnection(<lively.morphic.HtmlWrapperMorph#BA219... - ShinyGigvisMorph1>._Scale --> <lively.morphic.Morph#1038F...>.setScale)
scale,AttributeConnection(<lively.morphic.HtmlWrapperMorph#BA219... - ShinyGigvisMorph1>.scale --> <lively.morphic.Morph#1038F...>.setScale)
all
// changed at Thu Apr 03 2014 23:12:28 GMT-0700 (PDT) by undefined  
this.addScript(function applyJogValue(jogSpecindextriggerFn) {
    //Shiny.livelyDataTriggers[jogSpec.triggerName] = triggerFn;
    var editFn;
    if (jogSpec.dataset) {
        var jogPoint = jogSpec.pointRange[index];
        Shiny.sendEditMessage(jogSpec.dataset, [jogSpec.xColumn, jogSpec.yColumn], 
jogSpec.row, [ 0 ], [ jogPoint ], triggerFn, "trigger2");
    } else {
        var jogValue = jogSpec.valueRange[index];
        Shiny.sendParameterMessage(jogSpec.parameter, [ 0 ], [ jogValue ], triggerFn, 
"trigger2")
    }
}).tag([]);
X
<lively.morphic.Morph#F9B76... - LivelyRHistory>
Tag:
run
save
Tests

-- ALL --
addHistoryLine
addParameterRangeItem
addPerturbationItem
addValueDragItem
applyItemStyle
applyJogValue
buildHistoryLine
clearList
createSweepButton
createTextMorph
deriveHistoryLabel
endJog
endJogThenDo
hideShowLinesForSublabel
Scripts
-
+
-
Connections
+
-- ALL --
all
ObjectEditor
X

Menu
Workspace
X

Menu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/****
this world (gigvis-expt24a) was saved from local expt24 on 4 apr 
2014, just as a snapshot.
this.world().saveWorldAs(
    URL.create("http://lively-web.org/users/AranLunzer/gigvis
-expt24a.html"),
    false,
    URL.create("http://lively-web.org/core/lively/bootstrap.js"))
****/
// lively.net.SessionTracker.closeSessions()
livelyDataTriggers
$grep("Journal")
historyManager
mm = new lively.morphic.Button().openInWorld()
Object.inspect
mm.setExtent(pt(100,100))
mm.setFill(Color.web.blue)
X