Thoughts/notes collected from various Brett Victor writings:

These representations weren't mere scientific "discoveries". Each of them essentially enabled all subsequent scientific breakthroughs thereafter. A powerful new form of representation affects everything, forever.

  • so the idea is to use dynamic medium to reinvent representations of thought (imagining, creating, explaining, ...) with dynamic representations
  • humans can interact with things on multiple levels:
    • symbolic (math equations, etc.)
    • visual (data visualization, etc.)
    • tangible (touching stuff)
    • spatial (moving in a space)
    • relevant to this is what Alan Kay said in "Doing With Images Makes Symbols" - Einstein used to "feel" math in his hands, and would move around the room when thinking (spatially) - most of mathematicians and physicist do this - use tangible/spatial "modes" for thinking, and symbolic representation for communicating
  • programming is currently "blindly manipulating symbols"

    the author sees and manipulates indirect symbolic representations, and must imagine how they give rise to dynamic behavior

    • this could be improved by:
      • seeing the dynamic behaviour that is being created (simulator)
      • seeing multiple representations of that behaviour (ladder of abstraction)
      • directly manipulating representations and data - instead of manipulating symbols
      • these ideas are relevant to future of coding research
  • Brett's idea is that the representations we use to communicate with others, are the same we use internally
    • improving the ones used to communicate with others, will improve our thinking
    • there is tension between this and ideas about workshop vs library
  • Brett seems to be all about representations as tools for thinking, not about programming

    using representations to think powerfully about systems

    • programming is a specific case of a broader problem, and it probably won't matter in a hundred years
    • we switched from analog to digital circuits, and then to programmable circuits, but they are all about the same thing

    a software system is an instance of a more general class of systems, so it's possible to write about "programming" using ideas that aren't actually specific to programming

Dynamic Medium

  • thoughts prompted by Alan Kay and Brett Victor (notation)

Pencil and OS-level Doodling

If an app doesn't implement the Pencil SDK it is nothing more than a precise mechanical finger. I'd love to be able to use the Pencil also in apps which don't support it. Allow me to annotate everything, everywhere and give the OS a sort of memory layer of all doodles I place everywhere. I'm currently typing this in Ulysess, my favourite writing app which doesn't make use of the Pencil. I'd love to highlight certain sentences, cross out certain things and make small doodles in the sideline.

Let me doodle OS-wide; on top of app icons, photos. I don't want to wait on the app developers for support of the Pencil. Adding an annotation layer to iOS itself would turn this iPad into a true "bicycle for the mind".

Peripheral Vision in Software

If I mark up a physical book then later flip through to see my margin notes, I'll always see them in the context of the surrounding text. By contrast, digital annotation listings usually display only the text I highlighted, removed from context.

Programming Tools and People's Needs

  • related to notation problems, and mention that programming is just a small specific case of a broader concept, tools for thought seem to be bit "higher" than tools for programming

Exploring ReasonML

  • [@@bs...] are Bucklescript annotations for FFI

Notice the vecT annotation, this allows compiler to be sure that returned value is { x: float, y: float }.

Learning Haskell

  • Types I usually prefer non-typed languages, but Haskell's type system is really interesting, and type annotations are very helpful in trying to understand what functions do; I'm still fuzzy on some details, and plan on doing a bit more reading on type classes

Memex Dreams

I was also keeping separate folder of notes, initially using Notational Velocity, which then changed to just a folder of markdown files. Some of the notes were related to projects, some of them not. I never knew if a given piece of information should go in my TaskPaper comments, or my other notes. And then, there were notes for thinking about things, which sometimes spawned new projects. This was a disaster in slow-motion.

Szymon Kaliski © 2020