Skip to content
Browse files

## April 30, 2019

{: toc }

This log entry is way overdue. My head feels like it's going to explode given all the mushy thoughts trying to not be forgotten. I gotta do a better job of logging more often and in smaller increments instead of saving them up for these massive dumps.

### Alan Lunch notes

To recap, my lunch with Alan two weeks ago was ridiculous. I was also surprised to see my casual notes go slightly viral. I got way more people reaching out to me to thank me for the notes than in the past. Maybe it's because the notes had a more personal feel? Or maybe it's because of Alan's reputation?

As I should've expected, Alan saw the notes and wasn't happy with how I published them so roughly, and without giving him a chance to clarify things. In particular, he didn't like how I published the photo of the notes its unedited transcription. I removed it, which was sad because it was many peoples' favorite part. However he was very nice to work with me to get the other parts of the notes more in line with what he meant instead of my (mis)impressions.

### Jonathan Edwards London meetings

I got to spend ~4 hours with Jonathan Edwards on 4/20 to discuss the future of both of our research, but we mostly focused on my stuff. (In short, he's considering pivoting from a more general purpose language to one with a more limited focus, such as data science.)

For my own research direction, we zoomed out even further from the []( research proposal I was working on. For starters, I put out there the idea to put all of my research threads on hold for the next couple years and instead focus on being more of a "community manager / podcaster" full time. JE did not like this idea at all. (Very few people do. It makes my girlfriend and family bug their eyes out.) JE asked me if I'd be ok just supporting others who get all the glory and don't even give me a head nod. That doesn't sound great, but it really does feel like our community could use a full time (or maybe multiple) people organizing conversation... Maybe over time this person will manifest themselves and I won't have to self-sacrifice to make it happen.

So putting that aside, JE asked me about what my research goals are. I am happy to report that my mission and thesis from the /about page have stayed remarkably stable over the last year or so. Either this means I am burying my head in the sand (which seems unlikely given all the research, conversations, podcasts, etc I do) or it is holding up over time.

> The mission of this project is to  _enable all people [[1](] to modify the software they use in the course of using it_.

JE pointed out that this focus on modification brings up thoughts of simple plugin systems of simplistic customization. Of course, that's the opposite of what I'm going for, so it'd be nice to better convey that distinction. I am committing a draft of this research statement in this commit. Maybe that content will flow into a new version of /about at some point soon... I owe JE a version of this by tomorrow, but Friday is the final deadline for him to review the first draft.

### Last week

Last week I mostly did personal errands, travel,  personal finances, family and NY-friends time, and a podcast interview with Jennifer Jacobs. I got a few hours of research in, but not as much as hoped.

### Juan Benet call 4/27/18

One recent highlight was that on Saturday I spoke to Juan Benet for 90 minutes! If you've been following, you'll know this is a big deal. I see him as a modern day Alan Kay, or a younger Elon in some ways. 

He tentatively agreed to come on the podcast to talk about meta Alan-Kay-style things, such as what makes R&D labs work and so important, and why the internet is great but needs work, and his plans for Protocol Labs, what they're working on now, and any thoughts he has on programming languages and interfaces, such as Dyanmicland, VR/AR, AI, and brain-computer interfaces.

He also mentioned that he'd be interested in collaborating on an in-person, recorded conference on some of these topics. I'd come up with the agenda and people and his team would find the space and fly people out. Sounds too good to be true!

### From Todoist to Workflow

Google Inbox wasn't perfect but the simplicity of a single list for email and tasks, and then being able to push things out of the list with a snooze was great. I guess I can replicate that by just emailing tasks to myself given that Gmail has snooze...

I spent 45 min this morning migrating from Todoist to Workflowy. I'm using #tags for categories, organizing little tasks by when I plan to do them hierarchically, and larger tasks get their own tree but are also placed in a date/time. We'll see how this works...

### Overwhelmed 4/30/19

I've been saying for ~6 months now that I have too many projects going on. It's hard to keep track. Maybe workflowy will help. I think a tool is the right answer but I don't have the bandwidth now to build something...

Aidan Cunniffe and Dev suggested that I leverage others. For example, I could have someone do a guest interview on the podcast. I asked Ivan Reese and he seems to be interested... I could also probably nominate people to help "run" the Slack, but it's a bit strange because it's mostly self-sufficient. Aidan mentioned again that he'd be interested in running a sort of online meetup for people to demo their projects, so maybe I could have a "Future of Coding Community Board" of people interested in planning these sorts of things and people can divy up tasks, etc...?

Of course the easiest way to feel less overwhelmed is to quit or stop doing things. For example, it may not make as much sense for me to take on more projects at FRC given that I may also be taking on coding work for Private Prep (the people who bought The Coding Space) for WoofJS... Maybe eventually I could get more sponsorship to stop fundraising entirely, but that feels like a risky move to me... Maybe one day when I feel more secure in my "research reputation."

### This week

* send JE the first draft of my research proposal (15 hours)
* follow up with Private Prep with WoofJS proposal
* follow up with Juan Benet
* reading group (7guis)
* podcast with Lane from Coda
* prep for NY meetup
* follow up with Alan Kay's recommendation from lunch
* process curious_reader's notes 
* process cyrus omar notes
  • Loading branch information...
Steve Krouse
Steve Krouse committed Apr 30, 2019
1 parent c79b843 commit 6901e3140139b922beb99564b78e46dc0fb10bb5
Showing with 101 additions and 0 deletions.
  1. +101 −0 drafts/
@@ -0,0 +1,101 @@
title: Steve Krouse Research Statement

# Steve Krouse Research Statement

## Motivation / context

It is a loss every time someone want to modify the software they use but cannot. It is a unnecessary drudgery when someone wants to leverage automation but cannot. It is a so limiting that the only way to justify the cost of new software is mass adoption. It is a daily tragedy that millions of ideas to improve our individual and collective virtual worlds aren't even conceived, because people don't waste time thinking up improvement they have no possibility of causing.

My aim is to make software fully malleable to empower all users of computation to better augment themselves and their communities with bespoke tools, while at the same time leveraging open-source collaboration to share the best innovations as widely as possible. As a secondary effect, I hope that empowering people to customize their computers will create a _Precision Land_ (a la Papert's _Mathland_) that will be a natural place for billions of people to assimilate powerful ideas and other augmented thinking abilities.

My perspective was shaped by learning Logo, Scheme, and Haskell as a child, and then finding Bret Victor in college, which then led me to Alan Kay, Douglas Engelbart, JCR Licklider, Chris Granger, Jonathan Edwards, Paul Chiusano, Conal Elliot, Cyrus Omar, all of the guests on my podcast, people I met through Twitter, and the wonderful people of the Future of Coding Slack community. You can [learn more about my context here](

## Theory of change

Innovations in computing and software have come in all shapes and sizes:

* Startups - Historically: Apple, Microsoft, Amazon AWS, NeXT, Lotus, Salesforce. Mathmatica. Today: Notion, Coda, Luna, Glide.
* Non-profits: Mozilla, WWC, Wikipedia (which started as a startup)
* R&D Labs: Xerox PARC, Bell Labs, and today's Protocol Labs
* Academia: LOGO, Haskell, Scratch, Scala, Jupyter Notebooks
* Military Funding: ARPANET
* Open source: Linux, Python, Ruby/Rails
* Tinkerers / collaborative circles: steam engine, Wright Brothers

My current strategy is to do an "unbundled" version of academia, where I copy many of their practices but from outside the system: I have an adviser, Jonathan Edwards, and the plan for the next 3-5 years is for me to work up to something akin to a "PhD thesis." Between now and then, I plan to publish about one paper a year to build up to the main thesis. We hope to ratchet up the quality of each paper, and the rigor of the places of publication over time. By doing academia in this self-styled way, we avoid:

* applying
* moving
* going to classes
* teaching
* "paying dues" via working on other peoples' projects

But also have to do without:

* legitimacy
* being forced to do things that I would be thankful for in retrospect

The goal of the PhD thesis is to prototype and demo a system that plausibly points towards a vision of malleable and empowering computing. Like Douglas Engelbart did at "The Mother of all Demos", I aim to "deal lightening from both hands." The demo will show:

* how simple customization to ones' running software can be quick and easy.
* the ability to replace pieces of functionality with other widgets.
* a compelling story for managing and merging widely-branching variants
* the ability to mix and match existing widgets, hooking them up to rapidly create a new tool for personal or collaborative use.

After watching the demo, people should be inspired to think up all the ways they could customize their own workflows to better suit themselves and their communities. They should return to "normal life" constantly dissatisfied with their disenfranchisement to effect change and put their new continuous stream of improvement ideas into practice. Hopefully recognize how much better and cheaper software could become if we could unleash the power of full collaboration in this way -- 10x more powerful than what open-source accomplished.

As long as we're dreaming here, I would want this demo to sit at the top of Hacker News for the day, getting thousands of upvotes and comments. The paper, co-authored with Jonathan Edwards, would get accepted to a reasonably prestigious conference, such at Onward! and it would inspire other work and be cited well. Of course, a true marker of success would be if startups or companies would "steal" the work and incorporate its ideas into their products.

Depending on how things go, I am also open to working at an R&D lab (a la Protocol Labs), potentially commercializing my "PhD thesis" into a startup (a la Google), or sustaining the project via a non-profit (a la Scratch or the Scala Foundation).

## Related Work

None of these ideas are new or original. I simply have the naivety of youth to think that I might be able to pull it off.

This project is most closely related to the field of end-user programming (Nardi, Lieberman, Webstrates), including the most successful end-user programming environment the spreadsheet (Forms/3), HCI work on customization of user interfaces (links), and the Smalltalk language and operating system. Recently, Ink & Switch has been working on a system called Farm with similar goals to personalize software.

Additionally, there has been a lot of work in industry on "app builders", such as Bubble, DropSource, website builders, such as Webflow, prototyping tools, such as Facebook Origami, and BaaS platforms such as Firebase and Parse.

I also plan to draw on category theory, type theory, denotational semantics, functional programming, reactive programming, and the mathematics of composibility. TODO contextualize: Conal Elliot's work on FRP, Gniess, Statecharts, stream vizualization debuggers, and distributed semantics such as ScalaLoci.

## Composibility

The heart of this project is composibility / modularity. It's key to understanding and customizing small parts of existing projects, as well as to mix and match pieces of functionality created independently,which unleash the explosion of creativity that this multi-level open-source would allow.

## PX of Programming

* Palletes/GUIs everywhere
* Immutable Editing
- one multiverse
- definitional definitions in terms of all influences
- no definitions? just subexpresions via edit semantics, recurisvely?
- terms are just terms (no definition, they are themselves). you can then specify compute/storage/runtime to eval
- an evolving definition is a starting definition and then all the ways that future definitions might appear, maybe of same type or different (higher-kinds?)

## Prototyping Tool

It has remained a "holy grail" problem to allow non-programmers, such as designers, to fully customize the look-and-feel and interactive behavior of user interfaces.

a, x, y, t, hardware, random => b, B/E hardware

## Composable Backend

* Another "holy grail"
* E/B => E(E/B) for two points in time, but Conal urges against but I wonder what would happen if augmented with the right Editor


* (and, inspired by

0 comments on commit 6901e31

Please sign in to comment.
You can’t perform that action at this time.