JE 5/25/19
Friday May 24, 2019
I realized I haven’t been spending enough time on research so this week I made sure to spend 20 hours on it. Truly half time. Very exciting.
As for my immutable world, both IPFS and Unison have interesting answers. IPFS has one real and one cheat. The real is that a name is just a public/private key pair and pushing to it is publishing something signed with the public key. The fake is just using DNS.
Unison doesn’t focus on time-varying values. Everything is immutable. If you want to edit a thing, you can and it will walk you through the possibilities of updating some dependencies or not, and correcting for the changed type as well. There’s no notion of libraries that can change over time. That would be built on top. http://unisonweb.org/2016-09-17/editing.html
I think the IPFS way works for me.
Thinking about IoT uses to be fully expressive with FRP. Such as put the image from my camera on this portion of my screen. Also haven’t figured out how to do social applications with hard disk – where is the data? Output devices are a bit tricky. Input devices are more straightforward. Not sure how to model the connection to the device. Nor powering the device.
https://doc.rust-lang.org/stable/cargo/guide/index.html
urbit - an operating function https://urbit.org/primer/
- JE: all programming languages assume start and stop, not always running
- JE: there are people that criticize the Turing Machine because of this. It’s very philosophical. Hypercomputation
- JE: Dan Briklen’s famous quote: an OS deals with a whole number of issues outside the PL. There shouldn’t be one. Smalltalk is an OS. Same with LISP machines.
- Sun Microsystem: “The network is the computer”
- JE: the devices that have output and also inputs (like storage) is really hard
- JE: trying to make sense of an OS in FRP terms
- JE: stream-based IO had a magic
- JE: these are sometimes called non-functional aspects of computation
- JE: the functional stream-based things was abandoned in favor of monads, now being abandoned in favor of algebraic effects
- Steve: problem: I want to express my wishes over my machines, orchestrate them. smart home automation.
- JE: I am concerned that if you focus on stateless stream you miss a lot of hard problems. Statefulness is essential in so much that we do. So I want to see you build your own Twitter. Or a shopping list for you and your girlfriend.
- JE: hooking up streams is just boxes and wires. not a new invention.
- JE: state is a central problem. kills many attempts to functionalize things
- JE: need to be able to change the program on the fly on existing data (his “schema change” problem). Old LISP & Smalltalk systems didn’t have principled approaches to this.
- JE: so you want to think of the OS as functions or FRP streams or something.
- JE: that is a problem, modeling the whole FRP, instead of just assuming we have a runner that inputs the mouse and time and outputs to the screen. we need to model the entire environment. FRP without genies or runners.
- JE: how would you know if you solved this? what is the correctness criteria?
- Steve: it’s just if I like it, not a rubric
- JE: try putting it into words, even if it’s not objective. I know it when I see it doesn’t give you much guidance. another thing is use-cases, challenge problems
- JE: another way forward would be to criticize current approaches
- JE: LabView is signal processing. how does this fail in your mind? it’s dataflow but it has stateful stuff as well
- Steve: ah I see now that I’m thinking very much about dataflow (facebook origami: inputs and outputs), unlike how Conal thinks of things
- JE: dataflow things are mostly first order. they also have a casuality thing so no backwards in time
- Steve: in dataflow systems, wires are instantaneous, but TODO
- Steve: some next steps:
- pseudo haskell
- chat with Paul
- JE: if I can’t make progress in articularing problem, then loop around onto other things and come back when things are clearer
- Steve: can I start an OS company to compete with all the real OS companies?
- JE: there are so many ways to take ideas so don’t worry about this now, such as wefounder (crowdfunding with equity) or github’s new equity thing
consider helping REBLS with publicity. I’m leaning no here but find myself reluctant to fully say no given how little time it seems. I’m going to tell JE I want to say no, and double check with him one last time.