vcFlow is shown as a plugin for Atom. It enables visualization of variables as well as the time-based flow of the code.
vcFlow is inspired by programmers needing to better understand the runtime behavior of new codebases that they deal with. From a mechanistic view, vcFlow is inspired by in-situ visualization and event-sequence visualization paradigms in the data visualization field.
What it does
vcFlow annotates code to show which parts are running at runtime. It also visualizes variable values through time. A programmer can interact with their program and observe which parts of their codebase are running and how correct/wrong the variables look.
How I built it
I built vcFlow with a client-server architecture and by utilizing Python's system trace capabilities. The server-side runs in the background and sends runtime information to an editor (Atom) for visualization.
Challenges I ran into
Because vcFlow essentially runs as a remote code-tracer, debugging vcFlow itself was somewhat difficult. I decoupled different parts of the code and tested them separately.
Accomplishments that I'm proud of
Deploying vcFlow as an installable Atom plugin and the simplistic architecture are the two main things I like about this work.
What I learned
I learned working with Python's runtime objects such as frames. That was fun.
What's next for vcFlow
I plan to add a more featureful syntax for describing what visualizations the user can have for a variable. I would also like to experiment with adding support for a language other than Python.