# Project 4: Marcus Konrad, Martin Fischer - Stroposcoping for non-graphical Objects

![](https://lively-kernel.org/lively4/lively4-seminars/RE2018/project_4/motivation.png)

## Description

- Stroposcopic views allow to comprehend the *over-time behavior* of objects, but are *limited to graphical objects*
- Challenge: Arbitrary objects are n-dimensional data points
- Hypothesis: Only few properties of an object change frequently
- **Goal:** Provide a stroposcopic view for arbitrary JavaScript objects

* * *

## Readings

- Lienhard, Adrian, Stéphane Ducasse, and Tudor Gîrba. *Object flow analysis: taking an object-centric view on dynamic analysis.* Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007. ACM, 2007.
- Vasily Kirilichev, Eric Seckler, Benjamin Siegmund, Michael Perscheid, and Robert Hirschfeld. *[Stepwise Back-in-time Debugging](https://www.hpi.uni-potsdam.de/hirschfeld/publications/media/KirilichevSecklerSiegmundPerscheidHirschfeld_StepwiseBackinTimeDebugging_GI.pdf)*. In Proceedings of GI Informatiktage 2014, Potsdam, Germany, March 27-28, 2014, GI.
- Bret Victor:
  - [Inventing on Principle](https://youtu.be/PUv66718DII?t=642)
  - Der 'See across time'-Aspekt von [Seeing Spaces](https://vimeo.com/97903574) könnte auch interessant sein
- [ ] Designing the User Interface, Ben Shneiderman

## Project Scope

- Offene Zielstellung
- Design Space
  - Nur post-mortem, oder im laufenden Program?
  - Wie sieht es mit Interaktion mehrerer Objekte aus?
  - Mehrere Properties over time oder eine property auf mehreren Objekten über Zeit
  - Nested Properties?
  - ...

### Ideas

- [Gapminder](https://www.gapminder.org/) for objects
- Over-time Inspector

## Interesting Example Objects<!-- {style=background-color:red} -->

- [D3 Bundle view](browse://src/client/vivide/components/d3-bundleview.js)
  - interesting to see rendering state (path) and layout code (x, x1 etc) when not or not right displayed
  - real example: NaN in path... 
  
![](bundleview_node_with_data.png){width=500}



- Code Mirror
  - cursor and selection range, highlighting...

- container
  - url history... because of automatic redirections
  - edit vs view mode
  - hidden state like modules loaded, and caught errors

- lively editor, interesting because of automatic merges / syncs etc
  - url
  - version number
  - content 


## Initial Tasks

- [ ] Readings
- [ ] Herausfinden, was sinnvoll überhaupt ist (Inquiry Stage) 
  - [ ] Literatur zum Effekt von Stroboscoping zur Comprehension von Vorgängen finden
  - [ ] Referenzen finden 
    - [ ] [Gapminder](https://www.gapminder.org/) ausprobieren
- [ ] Next Step: Design Space öffnen