Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* TOC {: toc } ### Cleaning .git repo I spent ~2 hours yesterday morning cleaning up my `.git` repo for this website. It's only fair considering how I abuse this repo so, but it was still quite frustrating. The .`git` repo was over 200MB! Eventually I learned that the issue was all the large `.mp4` and `.pdf` files I added a while ago and since removed but since lurked in the git info. So I removed them, and then accidentally pushed those changes to github. Now I'll have to [eventually fix those broken links](#82). ### The Next 700 PLs Conal's talk from two days ago pointed me to The Next 700 Programming Languages by Peter Landin. It felt like very modern essay, not one written in 1965! The beginning didn't speak to me but sections 8 and beyond really did. He coins the term "denotative language" to replace the "functional" vs "imperative" debate: a language with nested subexpressions, where each expression *denotes* something, it's dependent only on its subexpressions listed's values. This is a useful definition! At the end of this article there's a discussion section where the author and other famous computer scientists discuss these issues, debating what is a declarative language. It's really amazing to see! ### Denotation of users (shower 8/25/18) I want a place to consolidate all my work on this, so I've started [a github issue for it](#85) * creating a user is a very imperitive notion. * much better if we say that a user merely *is* a pair of keys: `user :: (public key, private key)` * when we want to construct an stream that's tied with a user, we must merely `sign :: User -> Stream a -> UserStream a` the stream. * setting any user details (name, email address, photo) are merely signing data that claims those things for yourself * Reading seems less natural, but the idea is that when we want data from another computer, we need to `lift` a `Stream` to a `Stream (Stream)` of some sort (to account for when we get the stream as well as when it happens), and in this lifting we can optionally supply a `User` parameter. Pieces of state themselves will decide if and how they will allow themselves to be lifted, and to which users. ![img_20181025_184131](https://user-images.githubusercontent.com/2288939/47558190-79bb0480-d90a-11e8-8c8e-3f69851d7354.jpg) ### Todos 10/26/18 * continue research with [prototype 4](https://futureofcoding.org/log#prototype-4) and/or [multi-node FRP](#85) * set SPLASH intentions * Read all of [Kartik](http://akkartik.name/) & redo my /about page * Organize FoC Thinking & FoC Research lists from Google Inbox --> github issues/project (including these todos) * Read m fix paper, and understand how the circular monad works... and how I can simulate it in JS
- Loading branch information