Skip to content
Permalink
Browse files

## Feb 12, 2019

* TOC
{: toc }

### Yesterday 02/11/19

After struggling to parse Turbine/Hareactive data structures, I sent Simon Friis Vindum an email to schedule a meeting for him to help walk me through it. He shot back a great question, asking for a "motivating example" of what I want to accomplish. I thought it'd take me just a couple minutes to sketch out the "target data structure" I'd like to parse out of Turbine, but I ended up spending all of yesterday, and likely more time this week on it.

I [started with the simple counter app](https://www.useloom.com/share/8e9c4c3d0626434db70451de80085020), and tried to [manually instrument the required streams to visualize it](stevekrouse/turbine@cd29104#diff-21eaf57ee66140aa3ac48e9f4376ea62R170). I ended up doing some random tricks to get it to work, but it was a super valuable exercise.

![image](https://user-images.githubusercontent.com/2288939/52640195-38109280-2ed6-11e9-9f40-44b40ddb9b2e.png)

I'm excited to continue with this for the other 7GUIs projects, like the temp converter, timer, etc. Even my buttons that make buttons! I think it'd be a mistake to try to abstract too early here, but instead focus on the specific goal visualizations and eventually map backwards to a more general tool.

Some little things that I'll need to work at some point:

1. Getting arrows to rotate. I'll probably want to use the `marker` svg tag.
2. I'll probably want the arrows to stay stationary and have the events move leftwards (to simulate the arrow moving), and give you the ability to scrub time somehow. I can then probably delete the pan and zoom stuff. I wonder if I'll need some background context to make it clear the arrow is "moving", such as a tickmarks on the timelines.
3. I am curious how I'll do layout algorithms for this diagrams in the general case. I shot a message to Josh Horowitz to ask what he did for Pane because he mentioned it was difficult but he came up with something good. I'm mostly curious about the laying out of boxes and arrows at a high level but this will also be interesting even at the smaller levels, of calculating pixels relatively for all things. One such thing that's particularly important is laying out the text labels for Events, particularly when Events occur close together in time. The tooltip solution I have now is meager at best.
4. Make a sharper distinction between how I treat Behaviors and Events. This will become more apparent for pull-based Behaviors... I should also strike up a discussion with Simon about how his push-based Behaviors are really Dynamics (from Reflex).

**Note:** I just had a great [meeting with JE](/notes/jonathan-edwards/02-12-19) that cleared up some of these questions.

### Future of Coding Meetups on the road

I have a lot of traveling the next few months. It'd be great to take the FoC Meetups on the road with me to these cities somewhere in these dates:

* March 1-14 London
* March 15-24 SF
* April 28-May 13 NYC

I think it's worth setting aside time to plan this out, so I will maybe try to this over the coming weeks -- sooner rather than later. I struggle so much with the format... dinner, drinks, at an office, or a bar/restaurant, presenting, etc, etc... I'll ping around and think about it more...

### Week of 02/11/19

Tomorrow I'd like to finally write the blog for and then release the Tudor Girba episode. I think it'd also be good to finish up JE's episode and send over for transcription. Then maybe I should work on [DCTP Todos](https://futureofcoding.org/drafts/dctp#todo).

Thursday I'm visiting the Vatican, and Saturday I'm doing more touristy stuff, so not sure how much work will get done then. Friday and Sunday are free. I have plenty to do (FRC, visualizer, meetups, DCTP essay), so I'll just have to figure it out.
  • Loading branch information...
Steve Krouse
Steve Krouse committed Feb 12, 2019
1 parent 2ccd256 commit 312d421eac6c9a8a1c678e3f994fb52ddab217a3
Showing with 43 additions and 1 deletion.
  1. +8 −1 drafts/dctp.md
  2. +35 −0 notes/jonathan-edwards/02-12-19.md
@@ -884,4 +884,11 @@ Ouch!
### Todo

* https://www.shadertoy.com/
* http://alvyray.com/Memos/CG/Microsoft/6_pixel.pdf
* http://alvyray.com/Memos/CG/Microsoft/6_pixel.pdf
* JE future directions
* re-read comments and finish with new ones
* salon de refuge reviewers
* Mariano Guerra
* https://hillelwayne.com/post/persuasive-examples/
* https://youtu.be/aXVUoT_objA?t=1378
* Re-read/re-watch "Denotational design with type class morphisms" & read "The simple essence of automatic differentiation"
@@ -0,0 +1,35 @@
---
title: JE Meeting 02/12/19
---

# JE Meeting 02/12/19

## Research update & questions

* **JE:** text has a horizonal preference, doesn't work horizontally. make time go vertically, so we have room. can stack text in such a way that newer text overlays older text. Another way is only show the value at the cursor and just show that there are values elsewhere. Numeric values can be hinted at height of bar. Complex values don't have good hints. Should at least mockup the idea of rotated 90 degrees (definitely before coding it!), because it breaks that dataflow diagram expectation but it may work ok.
* **JE:** I'm not sure how important visually correlating timelines are when you have a cursor that puts a red dot at the same time t and connects them and you can adjust the cursor red dot on all timelines in synchronous, plus an inspector so show value at cursor
* **JE:** scrubbing window just like video editing app, except we've exploded the timeline in space, but they are synchronized so they should all scroll and zoom together. My cursor idea is just like the movie app vertical like.
* **JE:** different kinds of tick marks could help make it seem like it's moving, like a grid, below the line, or just wait till they click on things and then they'll see them move. subtle tick mark could do it. play with it. could use color...
* **JE:** layout is a black art... have some boxes, divide up the boxes, translate everything into the layout box... layout of graphs is a dark art... graph layout: there are thousands of papers on this, and packages such graphviz that give you choices on which algorithms to use. try to use a package that gives graph layout things, to minimize line overlap as well as various weights on keeping certain things lined up, and other heuristics, etc.

* Doing individual visualizations
* I'll probably want the arrows to stay stationary and have the events move leftwards (to simulate the arrow moving), and give you the ability to scrub time somehow. I can then probably delete the pan and zoom stuff. I wonder if I'll need some background context to make it clear the arrow is "moving", such as a tickmarks on the timelines.
* I am curious how I'll do layout algorithms for this diagrams in the general case. I shot a message to Josh Horowitz to ask what he did for Pane because he mentioned it was difficult but he came up with something good. I'm mostly curious about the laying out of boxes and arrows at a high level but this will also be interesting even at the smaller levels, of calculating pixels relatively for all things. One such thing that's particularly important is laying out the text labels for Events, particularly when Events occur close together in time. The tooltip solution I have now is meager at best.
* Make a sharper distinction between how I treat Behaviors and Events. This will become more apparent for pull-based Behaviors... I should also strike up a discussion with Simon about how his push-based Behaviors are really Dynamics (from Reflex).

## Salon de Refuge paper

* go to >programming<? **JE** yes!
* dates (april 1-4)? **JE** probably go for the whole week, but P/X and Salon minimally, and meet people.
* you going? **JE** maybe

### Future directions

* keep up the (x,y,t) => color? do GUIs with text with that?
* **JE:** this hasn't been done. language of combinators on these functions, such as overlay one on top of another. another such as next to each other. then add
* focus more on dataflow (lucid dataflow?) vs control flow? more on IO monad considered harmful?
* **JE:** there is some support for this idea that the IO monad and algebraic effects are the new hotness
* more on denotational semantics? (vs declarative landin, etc)
* * **JE:** people do operational semantics these days, which is purely syntax, standard reduction semantics, written as inference rules, such as Cyrus Omar's paper or anyone, really
* TODO read: https://www.cs.ox.ac.uk/files/3228/PRG06.pdf
* **JE:** declarative means timeless (JE's definition)

0 comments on commit 312d421

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.