Date: Tue, 6 Jan 2015 13:07:05 -0800
From: Toby Schachman
Subject: Re: Apparatus (Interactive Diagram) snapshot
(including this back to the group...)

That would be great! (Brainstorming layout ideas on whiteboard.) It should feel as clean as Sketch (or cleaner).

I'll be chugging on designing the semantics / interpreter for a while so plenty of time to think about layout. I think even if the column view evolves to something else, the new scoping system Bret suggested is definitely in line with my desired feel for the tool.

This is wishy-washy, but: rather than making "slots" that define the abstract "shape" (as in dataflow topology) of your program, everything is a concrete value that is alive and shown in the interface. The feeling is much more concrete to me. Here are other examples that get at this feeling:

In Hypercard, you make objects (cards, buttons, pictures, etc) and give them scripted behavior that moves them around, etc. When you quit Hypercard and reopen, everything is right where it was when you quit. There is no "virgin state" that everything gets reset to every time you run the "program". Contrast this with web programming. Web programming is similar to Hypercard--you make DOM elements and give them event handlers (scripts) which move them around etc. But here there is a virgin state. Every time you reload the page it starts in this state.

When you do a database-y thing, you design your schema first and store this separately from the data. Contrast with a spreadsheet where designing the schema and putting in the data are in a sense the same task.

On Tue, Jan 6, 2015 at 12:46 PM, Chaim Gingold wrote:
Hey, this is exciting!

I never chimed into the column view/scoping conversation but I want to participate more. My basic feeling is that I like the clarity stemming from Bret’s suggestion, and I like the simplification, but I want it overall to feel more like a graphics program in terms of the UI layout and complexity. This is a tall order given the PL concepts being wrangled that are difficult, for me anyway, to fully get at. My secret wish is that it would be as clean and simple as Sketch feels to me, and if you are open to it I’d love to brainstorm layout ideas on a whiteboard with you and anyone else, even if I won’t be available for something for that in the next week or two.

c

On Jan 6, 2015, at 12:15 PM, Toby Schachman wrote:

I decided to revisit my foundations based on the column view / scoping discussion I had with Bret. So I'm starting a new iteration on the project.

Also the project is trying on its new name: Apparatus.

For posterity, here is a latest snapshot of the old iteration:

  • Drag shapes in from the left.
  • Select by clicking a shape or clicking it in the Outline.
  • You can select "into" a group by double clicking (like Sketch).
  • In the Inspector and Variables panels, you can use any coffeescript code (New: including multiple lines). The main coffeescript nicety in this context is sugar for ranges: [0...5] = [0, 1, 2, 3, 4]. Other than that it's basically javascript. Math functions (sin, abs, etc) are built in and everything is overloaded to work component-wise over arrays.
  • Option+drag over a number to scrub it. Sorry, scrubbing's not implemented in the new code editor.
  • New: Drag shapes in the Outline to reorder / reparent them.
  • New: Recursion works (will draw to a max depth of 40ish I think)
Keyboard commands:
  • Backspace to remove the currently selected shape.
  • G to group the currently selected shape.
  • A to add an anchor to a path (or start a new path).
  • Ctrl+S to save a JSON file. Drag a JSON file in to load it.
  • Ctrl+R to reset (it will save automatically).
There are a couple more examples here,