Skip to content

Commit 031e9d1

Browse files
author
Steve Krouse
committed
## Notes From Last Week
* TOC {: toc } ### Repl.it dev, Mon - Weds I spent Monday - Wednesday last week working mostly on Repl.it. It was quite fustrating, but in a motivating way: there's so much about programming that needs fixing! To give you a taste, I've worked 23 horus at Repl.it. The first 4.5 hours were spent setting up my dev environment, then another 2.25 hours debugging my dev environment, and ~2 hours fixing linting or flow type errors. And I believe most of the productive hours I spent were wasted waiting for webpack to recompile all my code for every little change. Sometimes I'd have to wait 10-20 seconds to see even a small change. Very fustrating and very slow! And, of course, so much of my time was spent understanding complex code, React/Redux abstractions, and funneling scope and state, etc, etc. So much garbage! For the 10ish hours I wanted to work there, I clearly was not being productive enough to justify them getting me up to speed on their stack. As of yesterday, we parted ways, so now I'm down to the 1 part-time gig with Dark (and another one in the works, but it's touch-and-go if it'll close). As explained above, this work fustrated me so I'm happy to have it off my plate, but I also got enough fustration to re-spark some motivation in a positive way. ### Thursday 5/3/18 I read from 10am to 3pm. It was interesting but also difficult to stay focused. * Lucid Synchrone - skimmed * Sean McDirmid's Live Programming Video - Awesome! I want to review more of his work. * Conal Elliot Haskellcast video - So great. Took notes [here](/notes/conal-elliot). * Typeclassopedia - read for a bit, then skimmed. * [History of Haskell](http://citeseer.ist.psu.edu/viewdoc/download;jsessionid=2B48E418C19376C73F08B593DCFDCAB7?doi=10.1.1.168.4008&rep=rep1&type=pdf) - read the first half, then skimmed. * Haskell was created to solve the "tower of babel" problem around all *lazy* langauges sprouting up. Purity and typeclasses came later. * I/O was intresting too: streams, contiuations, world-passing, and Monads * Can Programming Be Liberated...? * No variables or substitution! Just one input functions and function combinators. ### Friday 5/4/18 I wasn't so motivated on Friday, so I mostly read Understanding Comics (reccomended by Conal and BV), and did some part-time work for Dark. I also had a group call with Dennis Heihoff, Shaun Williams, and Ivan Reese, which was fun. ### Devtools, not programming languages I've realized that "devtools" is a better way to describe the field I'm in that "programming langauges". Pretty obvious in retrospect, but took me a while to realize this. ### Some ToDos I scribbled down last week * Stratchey denotational design * Conal's Denotational design with typeclass morphisms * Conal's Fran * Simon Friis Vindum, including http://vindum.io/blog/lets-reinvent-frp/ * [Verlet](https://twitter.com/stevekrouse/status/987339448064053249) and [ConstraintJS](https://twitter.com/coreload/status/989313738539909120) * Sean McDirmid (and [these](https://llk.media.mit.edu/papers/archive/ch-phd.pdf) [papers](https://www.cs.colorado.edu/~ralex/papers/PDF/Conversational_Programming.pdf) he referenced) * Reach out to Jonathan Edwards ### Less passion I haven't been super productive or passionate about stuff in a little while. It's been a bit of a slog getting myself to do research. Part of the reason is that I've becommed obsessed with The Wheel of Time series on audibook and am making my way through. Almost to the end! ### Foundations I find myself increasingly curious about foundations, mathmatics, precision, abstraction, etc. I've always been on the fringes of the strong types community, and proving program correctness. These things were what the professors were up to a Penn while I was there. But I've never seen the need to dive in before. I think it was Conal's comments in the Haskellcast video that got me: 1) Those that don't understand FRP are doomed to re-create inferior versions of it 2) All the FRP implementations out there are more complex than their creators realize because they broke abstractions 3) You don't truly understand how good or complex a design is until you describe it mathmatically, precisely Music to Paul Chiusano's ears, I'm sure. ### Vision: semantic and cannonical Why am I so insistent that programming can be better? It's hard to put into words. As I was falling asleep a few nights ago, I was struck by how a two words kept coming to mind: "semantic" and "canonical". But what does that even mean? I have a fuzzy image of mathmatical expressions in the sky, with a white background behind them, and you can select different parts of the expression and get interesting information about the node, because it's a living object that can be manipulated...
1 parent 6e8c88a commit 031e9d1

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

notes/conal-elliot.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: Conal Elliot
3+
---
4+
5+
# Conal Elliot
6+
7+
* TOC
8+
{:toc}
9+
10+
11+
## Haskellcast
12+
13+
* Push pull FRP: modern reformulation in applicative etc. Algebra for time varying values. Analogy: you can't say "when a reactive behavior changes" (once you build up an event such as red until mouse click then blue) but many FRP systems do this. It's like making a distinction between 2+5 and 3+4. Turns math into a tree datat structure manipulation and you loose lots of the properties.
14+
* FRP as a graph is too complex. Exposes too much info. Not abstract enough for optimization.
15+
* Un-amb (used to pick between two algorithms that may work), Least upper bound, lattice, denotational semantics (Dana scott(deep)-chris strachy(simple, very useful) semantics)
16+
* Chris strachy wanted to translate from arbitrary programming language to lambda calculus to understand goto and loops with breaks (and he understood continuations).
17+
* Denotational semantics: express lang as AST (recursive algebraic data type) and map to this language of functions. It's compositional: meaning of expression is meaning of sub expressions.
18+
* Denotational design for images: what is an image stripped from incidental complexity from technology or biology? Not rectangle, not pixels, not finite. What's left? Color varying over space. 2d Cartesian Space -> color. Then think about precise ways to explain transformations without breaking model abstractions.
19+
* Precision forces you to be honest about your simpliciy and adequcy. Otherwise it might be more complex. (CAN I USE THIS TO ARGUE REDUX IS THE WORST?)
20+
21+
22+
<script>
23+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
24+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
25+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
26+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
27+
ga('create', 'UA-103157758-1', 'auto');
28+
ga('send', 'pageview');
29+
</script>
30+
<script repoPath="stevekrouse/futureofcoding.org" type="text/javascript" src="/unbreakable-links/index.js"></script>
31+

notes/simon-friis-vindum.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
title: Simon Friis Vindum
3+
---
4+
5+
# Simon Friis Vindum
6+
7+
* TOC
8+
{:toc}
9+
10+
* He's the CREATOR OF SNABDOM!!!
11+
* Hareactive
12+
* http://vindum.io/blog/behaviors-and-streams-why-both/
13+
* https://github.com/funkia/turbine
14+
15+
![](/media/declarative-models.png)
16+
17+
Code reads like CycleJS streams, not easy to follow todomvc. Curious how they avoid the cycle/redux/elm architecture with actions at scale
18+
19+
Very intersting thread: https://github.com/funkia/turbine/issues/51
20+
21+
22+
23+
24+
<script>
25+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
26+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
27+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
28+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
29+
ga('create', 'UA-103157758-1', 'auto');
30+
ga('send', 'pageview');
31+
</script>
32+
<script repoPath="stevekrouse/futureofcoding.org" type="text/javascript" src="/unbreakable-links/index.js"></script>
33+

0 commit comments

Comments
 (0)