
Visualizing Concurrency in Go (2016) - velodrome
http://divan.github.io/posts/go_concurrency_visualize/
======
Dangeranger
This is very nice. Does anyone have an idea of how to extend the visualization
so that they could be rendered based on the actual runtime of a real program?

I have a theory that much complexity could be understood if humans could just
see the interactions and the data flowing.

Even if the program took 100X longer to run, if you can see the bug, you can
fix it. If you can see the complexity, you can understand it.

~~~
hacker_9
This is an oft used technique in gamedev, where instead of print statements we
will print out visualisations to the screen, such as bounding boxes,
trajectory lines, etc.

------
Groxx
I saw the video a while ago - really neat technique, I love the visual
differences between patterns. Love that it's written down - far too much great
material is locked up, unsearchable, in videos.

------
eddd
That's a really neat way of explaining concurrency model.

I did something similar for Erlang VM
[http://eddwardo.github.io/elixir/links/2015/11/04/links-
in-e...](http://eddwardo.github.io/elixir/links/2015/11/04/links-in-elixir/)
(less advanced). I'd love to see comparison of these two models.

------
opaque
> If I ask you something involving “numbers from 1 to 100” you will have your
> own image of the series in your head, even without realizing it. For
> example, I imagine it as a line going from me with numbers from 1 to 20,
> then it turns 90 degrees to the right and continues to the 1000+.

Actually no, perhaps you're not aware of this, but you have a condition called
spatial-sequence Synesthesia. It's a harmless and fascinating condition in
which the senses have arbitrary connections to each other (numbers have
colours, sounds have tastes). Many people are unaware of it. I've only heard
of it because a friend at university (and also a Synesthete) researches it.

[https://en.wikipedia.org/wiki/Synesthesia](https://en.wikipedia.org/wiki/Synesthesia)

[https://www.psychologytoday.com/blog/finding-
butterfly/20110...](https://www.psychologytoday.com/blog/finding-
butterfly/201104/are-you-synesthete)

~~~
hacker_9
Quite a leap to diagnose such a condition over the internet. To me it just
seemed like a bad example. His second example works though, if you try to
force a visualisation in your mind:

"Another common example is the visual representation of the full year with
four seasons"

~~~
opaque
True, I should say the author "may" have Synaesthesia. But the spacial
appearance of a number line is an absolutely textbook example of it. The
interesting thing about his choice of example is that's what he perceives and
he assumes everyone else also has a spacial representation of numbers.

Most Synaesthestes don't realise there's anything different about their
thinking until they hear about the condition. So, I just wanted to make the
author (and others) aware of it for their interest.

------
xg15
This looks like a useful approach to visualize the interactions​ between
different services in a SOA or microservice-based architecture. (You'd need
some way for each service to log its send and receive events without the
logging slowing everything down though)

In any case, a very cool idea. I really like the use of 3D to fit more nodes
into the diagram without it getting unreadable. I think this is an approach
that could help with visualizing large graphs in general - it would be cool if
there was more research about that.

------
mihau
This is powerful, I wish ideas like that might impact debuggers and provide
alternative ways of visualizing code, programs and even whole systems running
in production.

------
psiclops
previous discussion:
[https://news.ycombinator.com/item?id=10981616](https://news.ycombinator.com/item?id=10981616)

------
ziikutv
This is really cool.

I wonder at what point WebGL craps out. How many concurrent processes can it
handle?

------
amelius
This is nice. I'm wondering how you would use it though. Probably you'd start
analyzing the diagram at the top, then look at what will happen next, and then
the next, etc.

But this is basically the same as just looking at the log.

Am I missing something?

------
gens
Tony Hoare’s paper is one of the most amazing papers i read (not that i
understood all of it).

You can get it at [http://www.usingcsp.com/](http://www.usingcsp.com/)

------
asswhole
Great Job!

