I mapped out a huge list of prior art for visualis...
# thinking-together
l
I mapped out a huge list of prior art for visualised LINES of memory in coding environments. I've annotated the LINEs in each example. Please check it out and let me know if it prompts any ideas/thoughts! And if you know anything I could add, please send em over! https://www.todepond.com/wikiblogarden/see-it/prior-art/
see it 9
haha where did that emoji come from see it
pixel chickadee 2
e
i gotchyou
see it 2
ivan 1
k
I don't get this, like 90% of what @Lu Wilson does 😄 But I gather that's at least partly the point? ♥️
🐸 1
🍻 3
😆 2
r
What is a LINE?
l
a visualised LINE of memory
r
Sorry, this is probably obvious but I don't know what a line of memory is
Can you help me out? 🙂
m
found a few more possibly valid lines 👀
❤️ 1
see it 1
🤯 3
p
Ok this might be a bit of a stretch (what IS a LINE??) but there's some overlap with how tables work (the free form ones that you can draw on a paper or a spreadsheet). Tables are basically a bunch of interleaving lines thrown together on a surface.
Not sure if these are related (again), but here's some more LINES I've been drawing on tables recently. I posted a bit about it here.
@Lu Wilson This might interest you: I've found that LINES of similar width (measure by the green and red rectangle's width) always block each other – or at least they never overlap.
🤯 1
oh *of similar width and direction
l
@Rafi Khan sure thing :) data is stored in our computers. it's stored in "memory" so that it can be retrieved, and edited, and moved, and manipulated, etc. that memory is often stored in an arrangement of a "line". for example, in an array, or a stack, or a heap, a register, RAM, list, etc... sometimes we might want to "visualise" this line of memory, so that a person can "see it". maybe to understand it better, maybe to debug a problem, maybe to learn. so... how do we visualise it? what's the best way? I've been collecting up this list of visualised LINEs to learn about what's already been done. @Kartik Agaram this explanation might help you too!
👍 2
🤔 1
@Prabhanshu Gupta yes! spreadsheets visualise the line(s) really well. that's what started me on this project. programming environments that arrange memory in a GRID already visualise it really well (eg: spatial computing in cellpond), so my research question is: can we bring this strength to one-dimensional memory as well? the answer might be no and that's ok
p
Yeah I think so? I've been thinking of 1D ranges as just a degenerate case of 2D tables and it all works out the same way (wrt visual LINES). I'm curious about what other kinds of 1D visualisations you're thinking. The examples you've collected seem to cover a wide variety already.
l
yeah i find it interesting how there doesn't seem to be a universally agreed way of representing it visually. i don't think it's because of domain-specific differences. to me, it suggests that it hasn't been figured out yet
p
In some of the examples I'm squinting and it seems like the lines would apply to any representation, not just drawing out memory (that's how I made the jump to tables). I'm guessing since memory is sequential physically, drawing a line to talk about it would come naturally: "follow the line from left to right, that's how the memory is laid out."
l
could you expand on what you mean by "apply to any representation"?
p
So if you want to visualise a list of Names, putting them in a LINE makes sense because you can follow it from top to bottom. If there is some sequence applied to it (let's say alphabetical), the sequencing is inferred by which name comes up first in the LINE. On top of this, you can put a "label" at the start (at the green rectangle) to give the line a name. This is not representing physical memory, it's some abstract list of names.
I'm really liking how LINES sounds when I say it.
see it 1
l
This is not representing physical memory
i would challenge that :) it's a 'representation', not a photo, so it doesn't need to be accurate. I'm not interested in accurately depicting memory - i want to visualise it in a helpful way, even if that involves lies
🙌 1
p
i want to visualise it in a helpful way, even if that involves lies
Haha I see. That is an interesting problem.
> it's a 'representation', not a photo wdym? I think I might've misunderstood what you mean by representing memory.
l
> wdym? I think I might've misunderstood what you mean by memory. > when we're coding, we often try to imagine what the memory in our program is doing. "ok so the array looks like this... then it changes to this.... oh wait i can see the bug" "ok so these three variables are in the local heap with these values... and i read from this one and... oh wait I can see I'm reading from the wrong one" "ok so the buffer for the image looks like this... and I'm getting the coordinates from the index like this... and... oh wait i can see an off-by-one error" it's helpful to visualise the memory in our program. maybe we visualise it in our head, or on a drawing, or maybe our tooling visualises it for us. in all of these cases, the visualised representation is a highly abstracted view of that memory, because its purpose is to be helpful to a person - to help us reason about our program. if they were accurate portrayals of the memory in our program/computer, then they wouldn't be helpful at all. they would be completely obfuscated with strange symbols and numbers, with lots of boilerplate not intended for humans. the compiler's (or runtime's) optimisations would further disguise the behaviour of the program, and all-in-all, it would be a confusing mess. the "true-est" representation would be seeing the binary bits in pure ones and zeros (maybe), and that's clearly not helpful. so I'm not interested in visualising an accurate depiction - i want to visualise a helpful representation hope that explanation helps!
🍰 1
p
That makes sense, thanks! I guess what I'm coming at is lines and tables seem like a solid starting point 😛
👍 1
k
Ok, this is a lot less Dadaist than I first thought. I'd like to suggest a new acronym: IANAL. Is Always Not A LINE. We have plenty of examples, now need some IANAL counter examples. I think that Dali painting is a counter example, for example. Thoughts everyone?
🤯 1
1
The best way to visualize a LINE might not always be a line. For example, https://merveilles.town/@akkartik/111356122874372588 uses a few different methods, particularly time.
🤯 1
m
bit of a naughty sounding acronym perhaps @Kartik Agaram 😆 maybe A-LINE (using alpha privative) or N-LINE for Never a LINE?
k
The joke is it stands for I Am Not A Lawyer 🙂
m
oh! learnt something new!
❤️ 1