Skip to content

Commit

Permalink
## Notes 10/25-26/18
Browse files Browse the repository at this point in the history
* 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
Steve Krouse committed Oct 26, 2018
1 parent ad2b722 commit 7ab9f38
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit 7ab9f38

Please sign in to comment.