Skip to content

Commit 4415a04

Browse files
author
Steve Krouse
committed
## Lots of random updates Sept 2018
* TOC {: toc } I've had a lot of trouble getting this log entry out. I just got backed up with stuff and then it got harder and harder. I will try in the future to spurt out shorter updates because this was overwhelming and no fun. ### What is "this thing we all talk about"? Names are hard but names matter: <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">What field are these people of?<br><br>Vaneer Bush (Memex), J. C. R. Licklider (ARPANET), Ivan Sutherland (GUI), Douglas Engelbart (computer mouse, “the mother of all demos”), Seymour Papert (LOGO), Alan Kay (OOP, desktop metaphor), Ted Nelson (hypertext), Mitch Resnick (Scratch)</p>&mdash; Steven Krouse (@stevekrouse) <a href="https://twitter.com/stevekrouse/status/1041109393524367360?ref_src=twsrc%5Etfw">September 15, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Agreed that a name doesn&#39;t *really* matter, but as <a href="https://twitter.com/geoffreylitt?ref_src=twsrc%5Etfw">@geoffreylitt</a> says, it&#39;s nice to be able to have a phrase instead of handwaving with &quot;you know, the topics that we&#39;re interested, related to Alan Kay, Bret Victor, Engelbart...&quot;</p>&mdash; Steven Krouse (@stevekrouse) <a href="https://twitter.com/stevekrouse/status/1041722197088366592?ref_src=twsrc%5Etfw">September 17, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ### Reading #### Enlightenment now Best book I read this year. So amazing. What an optimistic vision for the future. The opening of the book has a quote from one of my dad's favorite philosophers, Spinoza, as well as one of mine, David Deutch. Highly recommend this book to anyone anywhere, but especially people who are anxious about the future. In short, I would vote for Stephen Pinker for president (of anything) after reading this. ##### LogicHub + betting market Read this also gave me hope for a LogicHub platform for ideas. In the past, I figured we'd "teach" people to be logical and then let them loose to do their crowd-source-y thing, but after reading this book I wonder if we would want to make it more like a betting market in some ways. What's neat about a betting market is that: 1. It encourages you to be more thoughtful because you're "putting your money where your mouth is" 2. It allows people with contrarian opinions to move the market towards their opinion based on how sure they are on their opinion What's not great about a betting market is that its "resulting" (term from *Thinking in Bets*), the decision-making process is opaque so we can't share or improve on each others' thoughts. It'd be great if we could somehow create a place where you could show your decision-making-process as well as take a stand for your conviction and then eventually get the benefit (or not) when time shows "who wins." #### How to change your mind Turns out many of our heroes in this "field with no name" did LSD and it got me pumped: <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">🤯 Engelbart did LSD! To aid in problem solving!! (from “How to Change Your Mind”)</p>&mdash; Steven Krouse (@stevekrouse) <a href="https://twitter.com/stevekrouse/status/1042183850917539840?ref_src=twsrc%5Etfw">September 18, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> #### Kartik Agaram Me finding Kartik's work is a success story in our wonderful internet research community. In the Future of Programming Slack, Stefan Lesser tried to galvanize us around RSS feeds, then Nikolas Martens posted his list, which Daniel Garcia then found Kartik's work in! Really a team effort. I am in LOVE with his /about page and want to use it as a jumping off point for a new draft of my own /about page: > I'm working on ways to better convey the [global structure of programs](http://akkartik.name/post/readable-bad). The goal: use an open-source tool, get an idea for a simple tweak, fork the repo, orient yourself, and make the change you visualized -- all in a single afternoon. Understanding a strange codebase is hard; I can't change that, but I think I can make it easier for people to persevere. I want to carve steps into the wall of the learning process. I want to replace quantum leaps of understanding after weeks of effort with an hour of achievement for an honest hour (or three) of effort. > > This focus on helping outsiders _comprehend_ a project is unconventional. I'm less concerned about the [readability](http://akkartik.name/post/readable-bad) of a codebase. I find the usual rhetoric around ‘readability’ tends to focus on helping authors merge contributions rather than helping others understand and _appreciate_ their efforts. If you've ever seen an open source project whose CONTRIBUTINGdocument consists of a nit-picky list of formatting rules and procedures for submitting patches, you know what I mean. There's a paucity of guidance earlier in the pipeline, when newcomers aren't thinking about sending a patch, just trying to understand the sea of abstractions, to keep their heads above water. I think improving this guidance might greatly increase the amount of citizen involvement in open source, [the number of eyeballs reviewing code](https://en.wikipedia.org/wiki/Linus%27s_Law), rather than simply using projects and treating their internals as [externalities](https://en.wikipedia.org/wiki/Externality)until the next [serious security vulnerability](http://heartbleed.com/). Our society is more [anti-fragile](https://en.wikipedia.org/wiki/Antifragile) when there's greater grassroots oversight of the software that is [eating our world](http://www.wired.com/business/2012/04/ff_andreessen/5). > > Everyone doesn't have to understand every line of code that helps manage their lives, but all software should _reward curiosity_. Surprisingly and also excitingly, I think Kartik and I disagree on a number of points on how to reach this shared goal. I'm excited to read some of his posts soon and figure out why. Here are some I want to start with (some were recommended by him and not written by him) but I imagine I'll read 'em all shortly: * http://akkartik.name/post/libraries * https://lobste.rs/s/zyomiu/what_does_it_mean_design_software_well#c_yvvkwm * http://wiki.c2.com/?BlubParadox * http://blog.cleancoder.com/uncle-bob/2017/10/04/CodeIsNotTheAnswer.html #### Spreadsheet-paradigm deep dive For Dark, I did a deep dive on the spreadsheet paradigm. I want to write more about this but don't have the time at the moment. The thoughts are in [this private google doc I can hopefully make public soon](https://docs.google.com/document/d/14Tw387o_rnpa7Ru2n5ZpAabiCTrlm3Oan69UCmks6xE/edit#) One fun picture (will find this later) is that Forms/3 beat APL at its own game (matrices) - I think they did a user study to "prove" this. <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Turns out my seemingly-novel ideas for improving spreadsheets were in Lotus Improv in 1990 <a href="https://t.co/GF8B9l1sy0">https://t.co/GF8B9l1sy0</a></p>&mdash; Steven Krouse (@stevekrouse) <a href="https://twitter.com/stevekrouse/status/1039610783771049984?ref_src=twsrc%5Etfw">September 11, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ### Last NYC FoP meetup The NYC Future of Programming meetup went out with a bang. (It's likely not the last one forever, but it's the last before I move to London so will have to wait till I visit or someone takes it upon themselves to continue.) Jason Brennan talked about Beach which was amazing. I find myself inspired by his ideas, including the infinite canvas for a programming language. Then after some technical (and climate) difficulties Corey spoke about his experiences from Eve. He mentioned how raising VC money probably wasn't the right move. Now he's finishing his degree and is teaching coding with robots and building his language/environment (called Mech) to support that. Mech is quite similar to Even in many respects, which is quite exciting. Josh Horowitz (from Dynamicland) talked about Pane, his functional programming node-and-wire prototype that he's presenting at SPLASH. One of the key ideas is that he's reversed it: the nodes are data and the wires are functions. This makes a lot of sense when you are trying to show the data. We met up afterwards to chat for ~2 hours about these ideas - hopefully we can meet up again this week to continue. My current thoughts are very much in this direction. ### First podcast sponsorship offer! I got an email *during the Future of Programming meetup* from Amjad from Replit, offering to sponsor the podcast! This is a huge deal to me, even from just a "stamp of approval" perspective. But also the money will help pay for transcripts for episodes which people have been asking about, and other various upgrades. Big win! (I also want to be careful about this, so if anyone isn't down with this or how I mention them in the beginning of episodes, I am all ears.) ### bretvictorfan.club I am sorry that this will make likely Bret uncomfortable, but I hope he'll realize that it's in the best possible spirit of love, respect, and admiration for his ideas. <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">I think I&#39;m gonna do it... <a href="https://t.co/9wKgw8b7g8">pic.twitter.com/9wKgw8b7g8</a></p>&mdash; Steven Krouse (@stevekrouse) <a href="https://twitter.com/stevekrouse/status/1042426188248088578?ref_src=twsrc%5Etfw">September 19, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ### shower notes july, aug, sept 2018 I have been doing a poor job of moving my shower notes into a digital form of any sort over the past few months. I figured I'd put em all here in case anyone's curious. You never know - sometimes I get those "in your shower notes from last year you said..." emails. ![image](https://user-images.githubusercontent.com/2288939/46044930-2b87cb00-c0ea-11e8-9855-c6113b619d33.png) ### prototype 4 The [future work](https://futureofcoding.org/papers/comprehensible-frp/#7-future-work) section of my paper talks about visual metaphors for FRP. While I do think this is quite important in order to "democratize visual intuition" ([Penrose](http://penrose.ink/)), I wonder if it's necessary. What if we take normal FRP haskell-ish notation as a starting place and simply augment it with LIVE-ness, such as an interpreted environment, showing data, and evaluating as far as possible even when there are holes (Cyrus Omar's work). Geoff Litt and Paul Chiusano suggested that expressions with holes are just functions with those holes as parameters, and we could put a slider or examples values in there. Always concretions, never pure abstractions. Here's another idea I've been toying with: Jason's Brennan's notion of a programming environment on an endless canvas, like in Sketch or Photoshop. One thing this could enable is a structure-less structured editor - in that you could put together pieces of expressions in various places and combine them later. I guess this would be similar to Scratch or Blockly... which I don't love... One possibility is to use the layer metaphor from Photoshop as a programmatic abstraction, but I don't know what that would mean exactly yet. My first thought was to build this as a FP thing first and build my way up to FRP. It could be the [data slice-and-dice ninja thing](https://futureofcoding.org/log#yesterday%E2%80%99s-slice-and-dice-data-ninja-playground), starting with JSON/CSV slice, dicing, and joining -- this is related to [datafun](http://www.rntz.net/datafun/). But then I went ahead and did a drawings for it as an FRP platform: ![img_0032](https://user-images.githubusercontent.com/2288939/46086431-122c6080-c176-11e8-8a3c-214ab5e09154.jpg) ![img_0033](https://user-images.githubusercontent.com/2288939/46086528-4acc3a00-c176-11e8-9be7-d5e9017bca9a.jpg) ![img_0034](https://user-images.githubusercontent.com/2288939/46086472-296b4e00-c176-11e8-9974-441aaf189d39.jpg) ![img_0035](https://user-images.githubusercontent.com/2288939/46086469-26705d80-c176-11e8-85a8-852189cef443.jpg) ### Accepted to REBLS 2018! Very exciting, getting my first paper accepted. Got a bunch of feedback to read and then incorporate. Will read it this afternoon, take notes, put them here, and then meet with Jonathan Edwards about it as well. ### New framing of my work (This is related to the new /about page Kartik has inspired.) Software is never really ever started but only incremented, added to, improved upon. Thus the key is to shoot for customize-ability, modify-ability, change-ability, mold-ability - I want to evoke clay, play-doh, etc. This would truly catalyze the computer revolution because regular people would be able to *modify the software they use*. (The killer app for this language/platform could be a build-your-own-email-app thingy. I can imagine a world where top-level execs hire college grads to help them customize their email app workflow.) In order to achieve this, we need the two pillars of comprehensibility (understand what's up quickly) and composibility (plug and play with existing pieces). Functional programming is great but we need solid abstractions to fully liberate it from the Von Neuman architecture (Out of the tarpit, Conal). For example, Reflex > Redux (my paper), but we need to make FP and FRP usable with LIVE and other visualizations. Currently, I'm working on drawing out various prototypes. I want to stay in this phase for a while, making sure I know what I want to build, getting feedback on it from Jonathan and other smarties. Next step is to scope it down to a reasonable prototype and to go code. #### New framing open questions: * would JetBrains MPS be hepful here as a way to build a structured editor for live-ness? * can I use an existing language or do I need to start that from scratch as well...? ### Todos 9/26/18 * Get replit.com sponsorship started (draft copy) * Fix up Explicitly Comprehensible by Sunday * Edit Nadia Eghbal podcast * Read all of [Kartik](http://akkartik.name/) * Re-do my /about page * Continue with prototype 4 / new framing of my work...? * Organize FoC Thinking & FoC Research lists from Google Inbox
1 parent ab20205 commit 4415a04

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ <h3>Future of Coding</h3>
120120
<div>
121121
<h4>Papers</h4>
122122
<ul class="list-unstyled">
123-
<li><span class="date">2018 Aug 17 - </span><a href="./papers/comprehensible-frp">Explicitly Comprehensible Functional Reactive Programmings (Pending Review at REBLS '18)</a></li>
123+
<li><span class="date">2018 Aug 17 - </span><a href="./papers/comprehensible-frp">Explicitly Comprehensible Functional Reactive Programmings (REBLS '18)</a></li>
124124
</ul>
125125
</div>
126126

0 commit comments

Comments
 (0)