1,757 karma · joined March 28, 2014
https://mastodon.social/@tonofcrates
http://willcrichton.net
will_crichton@brown.edu
The closer relation would be to Prusti [1] which is Vytautas' project on verifying Rust codebases. We use the same IR emitted by the Rust compiler.
You can avoid the overhead without transmute, but it's still unsafe and not easily explained: https://github.com/Munksgaard/session-types/commit/3a310d205...
They include:
* Vector spaces
* Function diagrams
* Geometric illustrations
* Polygonal meshes
* Ray tracing diagrams
The linked article is pretty much fluff, but the SIGGRAPH paper has the real content.
Specifically, rebalancing [1] proved particularly tricky for my students. I think it's a good litmus test for whether you understand ownership, borrowing, and algebraic data types.
[1] http://cs242.stanford.edu/f19/assignments/assign6/#22-bst-in...
[0] https://www.andrew.cmu.edu/user/scheines/tutor/d-sep.html
It also includes a walkthrough of a session types implementation in Rust.
- Cognitive Dimensions of Notations (Green 1989) http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.128...
- Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools (Myers et al. 2016) http://faculty.washington.edu/ajko/papers/Myers2016Programme...
- Programmer Interrupted (Parnin 2013) http://blog.ninlabs.com/2013/01/programmer-interrupted/
- Empirical analysis of programming language adoption (Meyerovich and Rabkin 2013) https://dl.acm.org/citation.cfm?id=2509515
- Learnable Programming (Victor 2012) http://worrydream.com/LearnableProgramming/
- Usability of Programming Languages working group at CHI'16 https://docs.google.com/document/d/1-GUt5oVPpi7rlObbU1WbA5V1...
[1] https://www.amazon.com/Types-Programming-Languages-MIT-Press...
> Participant behavior indicates that they found the in-line Rust Enhanced compiler errors that showed upon saving to be quite useful. Participants were not told about this feature, and only discovered it, on average, 1058 seconds (17 minutes, 38 seconds) into the task. However, after finding the Rust Enhanced compiler error feature, participants began saving every 30.6 seconds, on average, with an average of 24.8 total saves per person.
This suggests that our query tools need to be more deeply integrated into human-in-the-loop machine learning workflows. For example, in my use case of analyzing TV news videos, let’s say I want to identify a panel of guests. I’ll come up with a query like “3 to 5 people on screen, whose pose suggests they are sitting, and they’re looking at each other.” While this query isn’t a perfect filter (precision nor recall), it will likely find a few positive examples. Then I can query “show me more scenes like this one,” and slowly build up a training set from my queries. Then I train a classifier, and inspect its results. Rinse and repeat.
Edit: also, I’m sure there’s a billion startups that do some variant of this for some domain, but I think we really need a better open source ecosystem around visualization and labeling of data for this workflow to be truly accessible in most domains.
[1] https://github.com/davidsandberg/facenet/tree/master/src/ali...