Lively Kernel canvas // this script is evaluated on world load MyConsole = WorldMorph.current().submorphs.detect(function(ea){return ea.name == "MyConsole"}); if(!MyConsole) return; MyConsole = MyConsole.component; MyConsole.setText("-- start --"); MyConsole.log = function(s) { this.setText(this.formalModel.getText() + "\n" + s); }; MyConsole.log("My Console initialized!"); MyConsole.morph.resetScrollPane = function() { var sp = this.enclosingScrollPane(); if (sp) sp.scrollToBottom(); }; // console.consumers seems to be broken... so we go the hard waz console.log = console.log.wrap(function(proceed, s) { MyConsole.log(s) proceed(s)}) console.log("wrapped console for MyConsole successfully") WebWerkstatt40 WebWerkstattisaninteractiveenvironmentforexperimentingwithdifferentapproachestoend-userprogrammingandtheirboundariestotheapplicationkernel.ItisbasedontheLivelyKernelandincorporatesLivelyWiki,LivelyFabrik,andWebCards.ForWebWerkstatt,wedevelopedthecontext-orientedlanguageextensionContextJS,toexplorenewconceptsforexpressingthisboundary.166 LivelyWiki30 ContextJS30 LivelyFabrik30 10000.004179126554387759Wikicontroltrue 10000.00206246895611863Wikicontroltrue Connectors30 WebCards30 10000.8127655988515684Wikicontroltrue 10006.286659217964764Wikicontroltrue null49