title |
---|
33 - Reflection 14 - about |
08/24/18-11/28/18
If you haven't been following my research journey, this episode is a great place to join! I recap who I am, where I come from, what I'm trying to accomplish, and how I hope to accomplish it.
The mission of this project is, broadly, to "democratize" programming. My new phrase is:
Enable all people to modify the software they use in the course of using it.
This mission would cause the following changes, in order of increasing importance:
- All software will be co-created by decentralized communities, rather than centralized groups or companies.
- Through the power of crowd-sourcing, the quality of all software will become much higher than existing software.
- All software will be much more composible, interoperable with other pieces of software.
- All software will be arbitrarily customizable, allowing for bespoke, tailored experiences.
- Learning to communicate with computers teaches one how to think more clearly, precisely, mathmatically, and powerfully. If one can manipulate the software one uses, if only one learns how to organize one’s thoughts, many people will self-teach themselvse to do just that.
- As the fabric of the world is eaten by software, the ability to fully manipulate that software one uses is an essential freedom.
This vision is not new nor creative: it’s obvious that people would change things if they could. Yet this problem has proven stubborn over the decades and most have given it up as insoluble. We have all but forgotten the essential characteristic of computers: their malleability.
In order to accomplish this vision, I believe there are three large categories of problems that need to be addressed:
- Rid ourselves of the IO Monad, replacing it with better abstractions for whole systems.
- Create a better programming experience for the complex abstractions we create to avoid IO.
- Reimagine version control for a world where software looks very different than it does today, with many, many more forks, at many more levels than just one-deep off of master.
My recent work was on ridding ourselves of the IO Monad from user interfaces, which is building on Conal Elliott's FRP work. My paper and talk at REBLS last month argues that Elm Architecture makes software take longer to understand (which is untenable if we want people to be able to modify the software they use in the course of using it) as compared to the higher-order and cyclic streams of Conal's original FRP.
My future work will be improving the programming experience of "original FRP", potentially with a Haskell-inspired structured editor. I will also extend Conal's FRP work to also removing the IO Monad from the "backend".
In the episode I add a lot more color to these points, as well as discuss my personal background, the past and future of Future of Coding meetups, my experience at SPLASH last month, and other whacky ideas!
<iframe src="https://omny.fm/shows/future-of-coding/33-reflection-14-about-1/embed" width="100%" height="180" frameborder="0"></iframe>Transcript sponsored by Repl.it
<style> .name { display: inline-block; margin-right: 5px; font-weight: bold; } .time { display: inline-block; margin-right: 5px; font-size: 12px; color: grey; } .time:hover { text-decoration: underline; } .block { padding: 10px; } </style></div>
<div class="block">
<div class="time">01:02:24</div>
Denotationally, I have a question for you. What is a user? What is a user? The first thought I had was: Users are, well, this thing you have to create. So like on every website I go to, I go and create an account. What's the denotation
of creating an account? Then it hit me. Stop thinking like a mutable ninny! Stop thinking like you're programming in Java. Creating in a thing is very, very mutable. Is a mutable idea, so I threw that away. What is a user?
</div>
<div class="block">
<div class="time">01:02:57</div>
So I came to the conclusion that a user is a way to identify oneself. It's like an ID, and it's a way to authenticate oneself. It's a way to verify that the thing I say is truly tied to the ID that I purport to have. That's what a user
is, and if that sounds familiar, that's because it is. That's a public and private key cryptographic pair. That's like the ideal denotation of a user. It's a private key, public key. It's a tuple. Was your mind blown?
</div>
<div class="block">
<div class="time">01:03:31</div>
That's what a user is. If I have a public key and a private key, and I want to set my username, so in a set, it sounds imutable, but basically what I can do is say, I can sign a statement saying, "My username is X", with my private and
public key, and then everyone knows that's what my username is. In the future if I say, "My username is Y", then they know my username was X and now it's Y. That's what I mean by set. It's a stream notion of set. I'm not setting anything, I'm
just updating. The stream has multiple values based on the value of time.
</div>
<div class="block">
<div class="time">01:04:13</div>
Anyways, I'm really excited about this abstract notion of a user as just a private and public key. If you're creative, you'll realize holy crap, if that's what a user is, then we can say goodbye to all the crazy, annoying notions of creating
different accounts for different services. We can literally delete that.
</div>
<div class="block">
<div class="time">01:04:33</div>
You go in your browser. You paste your private key, you paste your public key, and then you can go around the internet just trusting that everything you do is identified as you because your browser just has the information to sign all
of your actions as you. You never have to login again. You never have to create an account again. You never have to change your password again.
</div>
<div class="block">
<div class="time">01:04:52</div>
Obviously there's some issues with security and whatnot, but I think it's a really cool idea of just getting back to the root of what a user is. Cool. Okay, that is multi node FRP, removing I/O from the backend.
</div>
<h3>Version Control</h3>
<div class="block">
<div class="time">01:05:14</div>
Another point is version control. I mentioned that was one of my big problems in order to accomplish this mission. I haven't spent very much time at all thinking about this, but I did create a prototype. Actually, that should probably
be P4, but anyways, that one has a name. It's a WoofJS Workflow. You could find it on my website, futureofcoding.org. It's a really neat, I think, exploration of what version control would look like. It's very fluid. I think I've explained it
on this podcast before. I think yeah, about a year ago.
</div>
<div class="block">
<div class="time">01:05:51</div>
Instead of using Git with normal branches, imagine a infinitely nestable bulleted list. You're just editing this list as you would a text file, but it's actually branches of code. Part of what I think that enables is collaboration multi
levels deep, because right now in Git, pull requests are really just only off of masters. We don't have multilevel deep pull requests. I think part of the reason is the tools are not fluid at all. If you're interested in WoofJS Workflow, rewind the podcast to that episode, or go check it out on the internet.
</div>
<div class="block">
<div class="time">01:06:33</div>
That's not to say that WoofJS Workflow is the answer to version control for this system. Not even close. WoofJS Workflow is just one experiment. I'd love to see more version control ideas in the future. I've only seen a very small handful,
there's this website - like Expressions of Change - where someone was focused specifically on the version control problem. I'd love to see more people focus on this problem, 'cause eventually I'm gonna have to focus on it if nobody else does, and
that would be annoying.
</div>
<div class="block">
<div class="time">01:07:06</div>
But it's a really, really interesting hard problem, version control, and maybe there's been interesting work on it. Clearly Git isn't the answer for all time, so if anyone knows of good research on the future of version control send that
my way, I am all ears.
</div>
<h3>Prototyping towards the future of coding</h3>
<div class="block">
<div class="time">01:07:29</div>
It's a this point in the podcast that I'm realizing that you might be confused as to what it is that I'm building, the goal. So I've mentioned that I want this system that's kind of like Wikipedia for software, where anyone can change
things, blah blah blah. In order to do that we need to remove the I/O monad, blah blah blah blah blah. Okay.
</div>
<div class="block">
<div class="time">01:07:52</div>
So, if you got all that, great job, you've been listening well. But you may be confused 'cause I have this thing P4, and you're like "well, is P4 the thing you want to be that beautiful system?"
</div>
<div class="block">
<div class="time">01:08:03</div>
The answer is "probably not", P4 is just a prototype to point us in the right direction of removing the I/O monad from user interface construction. Just as WoofJS Workflow was a prototype to point us in the right direction for version
control fluidity. They're just prototypes that continue to point me and get me closer and closer to this overall dream platform.
</div>
<div class="block">
<div class="time">01:08:25</div>
Maybe at one point, this given prototype will morph into the dream platform itself. I'll get close enough it'll happen that way, but I really don't know. I don't think I'm close enough that P4 will be the one that mutates and morphs its
way over the finish line.
</div>
<h3>Sustainability</h3>
<div class="block">
<div class="time">01:08:45</div>Okay, so now I'm gonna take a pivot and talk about sustainability. So, I think maybe it was Ivan Reese, one of my friends was saying that they were a little bit confused about my life setup. It's clear that I do this podcast, 'cause you have ears, you can hear me, and it's clear that I do some research on my website if you follow my log, but it's kinda unclear how I do these things if I have a job where I live, so I'll just take a minute to talk about that. Up until two months ago, I lived in New York City for the past three years, I did The Coding Space for two and a half years, and then I did this for like a year in New York City by myself. And then two months ago I moved to London, where I'm speaking to you now, live from London. It's actually a live construction site, so if you hear construction in the background, my apologies. I'm right near Buckingham Palace, actually, near Victoria. It's nice. I'm not that excited about the gloomy weather, it's not fun to run in, so my girlfriend and I have been talking about a fun, warmer, sunnier places in Europe to escape to, so let you know how that goes.
</div>
<div class="block">
<div class="time">01:10:00</div>So that's where I live. In terms of a job, I have none. No full-time job. The way my life is set up is, I think about it in three parts; I have my research - which is the main thing I wanna work on, my main goal - number two, I have the podcast - which has become increasingly important to me, but it was really started with the spirit of, "I'm gonna have these conversations anyways, I might as well record them, I wanna reflect on my own research, I might as well make it a thing that I record and share around and get feedback on", so it's very much an addendum to my research which is the core of my work. But if it continues to grow and the audience grows and the quality grows, maybe it can become more of a central part of what I'm trying to do. 'Cause I really don't believe that I'm the only one with the answer, or I'm the one who's gonna solve it, and I'm gonna have a bunch of little helpers.
</div>
<div class="block">
<div class="time">01:10:56</div>I think the whole mission is that everything should be much more community-driven and so I think the podcast and the way I've been sharing things really fits that vision because it's saying, "I want feedback on my ideas to make my own ideas better, but if you could take my ideas and run with them and beat me or do better what I think or whatever, basically go, just do it. You don't have to ask permission, just take my ideas and run with them. Fork my ideas. And if you convince me, maybe I'll join your project, that sounds great. Collaboration is the way to go."
</div>
<div class="block">
<div class="time">01:11:36</div>So my research is important to me, but I think the podcast could also gain an importance if it continues to do well and gain a following.
</div>
<div class="block">
<div class="time">01:11:48</div>And number three is freelance. The third part of my life is paying the bills. I found a pretty neat gig for my old company, First Round Capital, and so I try to work a few hours there every week and make money to pay the bills, so we'll see how that goes.
</div>
<div class="block">
<div class="time">01:12:10</div>So I have these three parts of my life, and I've been finding the balancing of them to be hard in that I really do enjoy all of them - research, podcast, and freelance - for different reasons and in different ways. Freelance is great, it's like a video game, I earn money, I ship code, it's fun. It's just fun. The podcast, very easy to put a date on the calendar, prep, record, edit, publish, get people excited, podcast is really fun. And research, it's harder to get myself to do, because research is hard, but I really enjoy doing it, particularly in retrospect, I really feel proud when I do good research.
</div>
<div class="block">
<div class="time">01:12:58</div>But I find that when I get in the groove of research or podcasts or freelance, whichever one, I don't really wanna stop. I'll do research only for two weeks, then podcasts only for two weeks, then freelance only for two weeks, it's hard to do two days of this, two days of this, one day of this in a given week. And that's how I've conceptualized it. I wanna do three days of research, one day of podcast, one day of freelance. Or maybe two days of research, one day of emails, one day of podcast, one day of freelance. Or, even better, I'd love to be able to split it up on daily basis, the mornings are research, then I do emails, then I do maybe podcast, and then maybe freelance. But I found that forcing myself into a structure like that makes me end up doing less work, 'cause I'm chafing against these artificial constraints, when instead, if I kind of let myself be drawn to my work more naturally, maybe I'll watch TV when I should be working, but then I'll get bored of TV and then work for seven hours into the wee hours of the night, so I'll get more work done if I let myself do it when I want to, which is wonderful, and it's a great benefit of working from home, but not being able to balance it is a weakness.
</div>
<div class="block">
<div class="time">01:14:15</div>Luckily the freelance gig I have is very flexible, they're very, very good to me. So, when it's non-critical, I'm able to do the work when I get to it, which is great. And when it's critical I can drop the other stuff and work on it, so it's fine.
</div>
<div class="block">
<div class="time">01:14:35</div>But it something that I have been noticing, this balance is tricky. But it's working. Not to complain too much, it's all working. I've been getting enough research done, I'm proud of it. My podcast, I've been doing an episode or two a month, I'm proud of that. And the freelance currently is the thing that I've been dropping the most of, so I should maybe next week spend 10, 20 hours doing just freelance stuff to make some money and keep the bosses happy.
</div>
<div class="block">
<div class="time">01:15:10</div>Alright, speaking of money, I was really floored and shocked and really excited to get an email from Amjad of Repl.it. So, if you've been listening closely, you'll remember that I worked for Repl.it back in February, March, April ... basically for like three weeks earlier this year, but it didn't work out because I only wanted to work 10 or so hours a week and they really needed full-time people. It wasn't gonna work the way they worked. So we parted ways, and I hope they found other people, I'm sure they have, other full-time people to do that job, and I have found a part-time that kind of fits my time needs. So that's great.
</div>
<div class="block">
<div class="time">01:15:56</div>But anyways, it was really unexpected to get this email from him saying he listens to the podcast, and he wants to support it. It seems really selfless. He says it's partly to encourage people who listen and are excited about improving programming to know about Repl.it and work there, maybe. I don't know, contact marketing, I don't know how it works.
</div>
<div class="block">
<div class="time">01:16:26</div>But I think, in his heart, I think he just thinks his work is valuable and wants to help it along, and so he's supporting it with money, but mostly I think the real value is, he's supporting it with some thought partnership. It was his idea to take episodes and write a few paragraphs of a blog to summarize them right at the top of the webpage of a new podcast, to kind of entice people, to get them in and get them listening to it. And it really helped. One of them in particular. Which one was it? I forget which one, but I did that for one of my episodes, and boom! Front page of Hacker News, first try!
</div>
<div class="block">
<div class="time">01:17:03</div>I did it for a second and maybe a third one, it didn't go as well, but at least one of them, first try. So that was really exciting. And I don't think I would have done that if he didn't suggest it, so that was really great.
</div>
<div class="block">
<div class="time">01:17:17</div>And another benefit that many of you are excited about is transcripts. The money he is sponsoring me with it partly is going towards transcripts. So that is really exciting.
</div>
<div class="block">
<div class="time">01:17:30</div>So, yeah, so thank you Amjad. And he is excited. He is bullish? Bullish? I think bullish means he is excited about it. Or optimistic. He's optimistic that, with some focused effort, we can really grow the listenership of the podcast and make it more of a thing, and then if I get more listeners, maybe we can rope in people, like startups or bigger companies with more of a budget for sponsorship, to sponsor the podcast, and then, I don't know, if I could get a reasonable amount of money per episode, and I did two or three episodes per month, then I could potentially stop freelancing, which would be ... or at least freelance a lot less. So that would be really, really neat. That would be really neat. Then my life setup could just be two things; my research and my podcast.
</div>
<div class="block">
<div class="time">01:18:19</div>Speaking of growth, I made a bit of mistake, but I've learned my lesson. I was approached by this- well, actually, I kind of approached- anyways, I was connected to this research group in New York City called the Jain Family Institute, they do these wacky research projects, I think right now they're really concerned with universal basic income and the understandability of AI systems in decision making and discrimination, pretty hot topics. And so I was introduced to them, and we were introduced under the context of maybe you guys could come up with a topic that Steve could write a blog about for the new Jain Family Institute blog.
</div>
<div class="block">
<div class="time">01:19:02</div>Then we had this whole hour-long conversation where I was trying to describe what it is that I do and the research, and why it's important. And at the end of the conversation, or at the end of me explaining it is what I do, the guy says "Have you heard of Bret Victor?"
</div>
<div class="block">
<div class="time">01:19:15</div>And I just broke out in laughing, because if I knew he knew who Bret Victor was, and if I knew he'd visited Dynamicland, then I would have started there. But I had to backtrack and be like, "I know this seems like I'm just saying it because you brought him up, but he's my guy. He's the whole reason that we're having this conversation and talking about these things. He was the original person who influenced me a lot."
</div>
<div class="block">
<div class="time">01:19:38</div>So anyways, I wrote an article about Dynamicland for them that I'm really proud of, I think it came out well, and we put it on their blog. It was the first article their blog launched with. And I submitted it to Hacker News, and nothing happened. And then I got an email from Hacker News, saying that they thought that the article had promise, and so they had this new system where some random time in the next 24 hours they're gonna put it on the front page of Hacker News somewhere randomly, and then if it rises up on its own, great, and if not, that was its second chance. Very exciting.
</div>
<div class="block">
<div class="time">01:20:18</div>So I checked back every hour. Boom! It was on the front page, and I just watched it climb all the way to the top, it was really, really cool. And it stayed there for the whole day. It was, I think, my most successful post on Hacker News of all time. Really, really exciting. And it sparked a good conversation, and it seemed like it was a well-received article.
</div>
<div class="block">
<div class="time">01:20:36</div>But here's the mistake. I got nobody from that essay. Or almost nobody. Correct me if I'm wrong, if you found this podcast from that essay, please let me know. But it seems like, based on my analytics on my website, on my podcast, nobody went from that essay to my other projects. And this is particularly sad, because I'm focused on growth, and in the past, when I was successful in putting something on Hacker News, for example the Visual History of Eve that I put on Hacker News, most of my listeners - many of you, I imagine - found me through that post on Hacker News. And so, to have 10,000 people visit this essay and have zero people find my podcast, is sad and I did a bad job at my content marketing. So I won't make that mistake in the future.
</div>
<div class="block">
<div class="time">01:21:26</div>But, the essay is still great, and if you're curious about Dynamicland, I think this essay, at least in my very humble opinion, I think if you can't go to Dynamicland, this essay gives you a really good feel, it tries to be visceral and give you a feel for what it is to be there and the vision.
</div>
<div class="block">
<div class="time">01:21:43</div>If you want a more hard tacks, how does the system work at programming level, go read Omar Rizwan's MapKit. Omar was on a podcast, and if you listen to the podcast I did with Omar, you might not have to read the essay, because the essay I did is really kind of recasting it in my own words. I don't really have any new ideas there. I steal his metaphors, I steal everything he says.
</div>
<div class="block">
<div class="time">01:22:09</div>So Omar is great. And his essay is the one to read, if you're looking for "how does it work". And the "how does it work" stuff, it's relevant, because if you're a programmer, you can kind of think through how it works to understand the vision, but you have to be really careful, because someone like Bret Victor, and Bret Victor's lab, the deepness of their thoughts is hard to overstate. The vision is so rich, and so complicated that it's so hard to see through the technology to the vision, but that's the whole point. The point isn't technology, the point is that they're pointing to this vision that's beautiful but far off, and technology is the best way they can point towards it. So don't get caught up on the projectors in the ceiling, don't get caught up in all the little details, just understand the details in order to better see the vision. That's my one Bret Victory plea. He's always saying things like that.
</div>
<h4>Patreon</h4>
<div class="block">
<div class="time">01:23:11</div>Back to money. I have been encouraged by a few people recently to start a Patreon. And I was thinking I was gonna do this about a year ago, I was inspired by the success of Nicky Case to do this a year ago, but I was convinced otherwise, and what I told myself silently was that when my listeners or whatever, when you guys, my collaborators, my friends, asked me to set up a Patreon, that's when I would do it. I would wait for the first person the say "I wanna donate to your work, where do I donate?" And someone did. Someone explicitly asked that question. So thank you very much, Ruben. I think his name on Twitter is @RubensSandwich, I don't know his actual last name. So thank you Ruben.
</div>
<div class="block">
<div class="time">01:24:01</div>So I'm gonna go ahead and set up this Patreon, probably in December. I'm thinking that'll be good project for me to do in the week that I'm home. I don't know, I'll do it at some point in the next couple of months. It is a priority, and in combination with the people supporting the podcast, companies sponsoring the podcast, this could really go a long way to allowing me to stop doing freelance work and make this work sustainable full-time. And long-term. So I'm really excited about that. Thanks again Ruben. And we'll see. We'll see what this Patreon lifestyle will look like.
</div>
<div class="block">
<div class="time">01:24:38</div>So if any of you are so inclined to contribute, I don't even have the words to say how thankful I'd be, I'm literally tearing up now just thinking about it everyday people giving me money because they value the work that I'm doing. In other words, there's absolutely no expectation that anyone listening to this would give money. There are money wonderful things on the internet that I benefit from that I don't give money to. There are a few that I do give money to. Nicky Case is one. Psycho jazz is another one. It's kind of random what you give money to, on the internet. 'Cause we all get so much benefit from so many things, but then sometimes, somewhere we're just so inspired to support something that we do.
</div>
<div class="block">
<div class="time">01:25:31</div>So anyways, that is to say, it's only a positive. Don't feel any obligation to give money if you don't have the means or whatever reason you don't want to, but if you do, I'd just be so unbelievably thankful.
</div>
<div class="block">
<div class="time">01:25:45</div>So yeah, that's that. Oh, I guess one relevant quick note is that, when I've given in the past, it's very much out of a generosity, really a patron spirit. Like I wanna be supportive, I want ... it's just something that's meaningful to me in my heart and I wanna ... part of it is I wanna be able to tell people I give, like I just told you guys who I give to, it's kind of like a signaling thing, but more it makes me feel like bigger person to get to be a small piece of something that I think is important and needs to be in the world. So that's my motivation, and so the little trinkets or incentives to "well, if you give this much, I'll give you this kind of swag or whatnot", I think that's kind of not the spirit in which I see it, so I'm not gonna waste too much time with those sorts of incentivey things. I prefer just give away everything for free. Transcripts for free for everyone. I just wanna give everyone everything for free.
</div>
<div class="block">
<div class="time">01:26:53</div>I listen to Sam Harris' podcast and he's started, recently, putting things behind his paywall, only for subscribers, and it really bugs me for two reasons.
</div>
<div class="block">
<div class="time">01:27:00</div>One, part of what I'm giving him money is so that he, I think he's someone else I support. Part of why I'm giving him money is that most of his content, not all of his content, but most of his content is really good. I want it to be out there in the world for people to benefit from, and if it goes against why I'm giving money for him to block it from some people. Then also when he blocks things it makes it a worse experience for me. I have to jump through all these hoops to get to the content that only supporters can get. I'd rather just have it be easier and have everyone have access to it. Anyways, if any of you who are thinking about supporting would prefer to get some sort of a benefit for supporting, or if you disagree with this thesis of generosity Patreon, blah, blah, blah. Please let me know. I'm really open to feedback here or, yeah, basically anywhere. Anywhere and always I'm excited to hear anyone's thoughts.
</div>
<div class="block">
<div class="time">01:28:00</div>Anytime I get an email from a stranger or someone who's emailed me in the past makes my day. It goes without saying, but especially for this Patreon thing, I'm a little nervous about it so if you have thoughts I am all ears. Okay, so I'm realizing now that I've forgotten to sections chronologically so maybe I'll splice them back into the beginning of this podcast or if I'm lazy you'll get them here at the end. One is I went to SPLASH to present REBLS and then I was also there for the whole week and it was really, really fun. I don't think I've ever had such a fun time, in a trip, a travel trip. I don't like traveling, I don't like planes. I like my routine. I like staying at home and having my computer and food. I like just doing things the way I like things done and I don't like going to a new spot. I like going a new spot and then staying there for months because once I get my setup that I like I want to benefit from it.
</div>
<h3>SPLASH</h3>
<div class="block">
<div class="time">01:29:04</div>Anyways, I don't like traveling usually, but SPLASH was amazing. I got to meet so many really wonderful people. Yeah, so I was thinking about reading a list of all the wonderful people I got to meet or at least spend time with, but that's a little bit crazy, but I have that list somewhere on my website. If you're curious about the people, it's like 20 or 30 people I met and spent time with, so, so cool. These people are just like Jonathan Edwards and Sean McDirmid. Okay, now I'm listing names, but really great. Really, really great. Then it was fun to get to bump into people from the internet, like Will Crichton who it's like, oh, I've read your things. Oh, I know you from the internet too, great. Now we're meeting in person. Total, just bumping into internet friends without expecting to very, very fun.
</div>
<div class="block">
<div class="time">01:29:51</div>In particular LIVE was really great. The LIVE workshop, I think it was started by Jonathan Edwards and it's just one after another. It was a day of blowing my mind. One talk after another, such, such high quality, and the internet was very upset that it, none of it was going to be streamed and so I went ahead and got there early and set up my own phone as like, on a tray where you put food, waiters would put food on it. A tray and a glass. A whole very, very boot leg-y setup and I recorded the whole day. Yeah, at first I just recorded on my phone but then it turns out that YouTube streaming is much better so I did that and yeah, so it's on the internet.
</div>
<div class="block">
<div class="time">01:30:49</div>You can go to a FutureOfCoding.org/, I think it's /notes/live/2018 to get the LIVE 2018 bootleg edition. Most people have a project page, a paper or a page that summarizes their project better than the grainy video I recorded and most people have since rerecorded their talk as a polished video with good audio and whatnot. Definitely don't watch the bootleg version if you can get around it. I think what most people are excited about is Chris Granger gave a talk about the lessons you learned at Eve. Unfortunately the audio from that is out of sync. I wasn't able to fix it so it's broken up into three parts, so it's kind of annoying. What's his name? Jeremy Ashkenas who I've a big fan of for many, many years creator of CoffeeScript, Backbone.js, Underscore.js. Now he's working on Observable HQ.
</div>
<div class="block">
<div class="time">01:31:53</div>He went ahead and took that video, took the YouTube transcript and made a Observable notebook out of it with embedded pictures from the slides and he put that on, well, so I put it on Hacker News. Nothing happened. He put it on Hacker News and for some reason then it took off and was on the front page all day. That was really cool as well to see something that I made in just a few hours go on Hacker News. Really Hacker News is suckers for Eve. I can put up as much Eve content as I want on Hacker News and you guys will always upload it. At least it seems that way. It's a cheap way to get on the front page. Anyways, that was fun and I think that's actually doing that, putting together that resource was when Ruben asked me for, to donate to support my work.
</div>
<div class="block">
<div class="time">01:32:44</div>I think two or three other people also chimed in at the same time. It was when I put together the LIVE 2018 thing. That's something that's really important for me to note that it wasn't until I made it clear that I'm trying to support the community and be a bit of a historian for the community and document things that people wanted to support. Maybe in order to get people excited about my Patreon and supporting I need to shift some of my focus to do more of those sorts of things so I could shift my focus from research to documenting and organizing this world. I think that Slack is part of that and then the meetups I'm throwing are part of that.
</div>
<h3>Meetups</h3>
<div class="block">
<div class="time">01:33:30</div>Well, actually let's, let's talk about that. Since the last reflection, basically right after the last reflection, I had the final future of coding meetup in New York City. We'll have more, but that's the final one after I, before I moved away. It was really, really wonderful. Josh Horowitz was there, Geoffrey Litt came down from Boston to attend, Glen was there. Corey from Eve Skyped in to show us what he was working on. Jason Brennan showed us Beach. It was just really an all-star crew and I couldn't have been prouder to have brought it together. I was just like, to be honest, I was just, I have this anxiety that when I bring so many amazing people together and I just want it to be, I want to make the most of everyone's time as much as possible because it's just such a valuable resource how all these people in the same place and time.
</div>
<div class="block">
<div class="time">01:34:33</div>I really want to make the most of it. It does make me a little anxious, but in retrospect I'm proud, but in the moment I was, I don't know if I was having the best time. I was mostly just worried about things. Speaking of which, tonight is actually the night of the first Future of Coding dinner in London. I changed up the format of this one. I've organized it as a dinner at a restaurant. I booked it a semi private room. Everyone had to, before the event, buy a ticket. I set up a thing on Event Brite where you had to pay me 45 pounds, which is really too much money, but that's the cheapest option I could come up with. In the future I'm going to try and do it for free or much, much, much cheaper, or maybe even get a sponsor or something.
</div>
<div class="block">
<div class="time">01:35:18</div>Anyways, for this version that's the price and there are 14 of us, including me from London. I'm really excited. I think it's gonna be a great group of people and later today I'm gonna, part of what I was saying, making the most of amazing people. I'm going to go ahead and maybe put together a seating chart to make sure that people are seated in a good way because otherwise it's always awkward. Where do I sit? What I think I might do is create two seating charts and halfway through the dinner, maybe I'll ask everyone to stand up and go to the second one or maybe even the third one. Then you can get to meet different people throughout the dinner and I can organize it beautifully. Mastermind this whole thing. I don't know, maybe if it will, people will find that annoying.
</div>
<div class="block">
<div class="time">01:36:02</div>I'm excited about this dinner and yeah, and if it goes well I'm excited to do more in London and when I visit New York I'll do more there. Caleb, who I met at LIVE in Boston at SPLASH has taken up the mantle for doing this in Boston. He created a meetup page. In the past I've always organized these things on the Slack group, but Caleb's trying Meetup. Maybe that'll go well and maybe we'll do Meetup.com for all the meetups. Who knows? I've thought about it, but I just never got around to it. It kind of, with this last thing I kind of went the opposite direction. It was like an invite only ticket thing you had to buy for. Meetup is kind of more you just press a button and you end up not going probably because it's a big group and it's a talk you listen to you. Anyways, there are a lot of ways to run these things and I'm excited to have a lot of people experimenting.
</div>
<div class="block">
<div class="time">01:36:56</div>Amjad of Repl.it had said that he would be open to hosting the San Francisco version of this, which I think will be really cool. So close, you might as well do it that in England. Am I right? That'd be cool if I could, if I have, there's Omar Rizwan out there, there's Jan Paul out there. There's a lot of really cool Future of Coding people out in the Bay, so it'd be awesome to get those guys together. Man, I'd want to fly out if all those people are getting together to talk about the Future of Coding. Man, you'd have to have to, you don't have to really hold me back. I'd really want to go. Amjad wow, that'd be so cool. The Notion people.
</div>
<div class="block">
<div class="time">01:37:36</div>Man, now I'm going, I'm going. I'm organizing this and going myself. Yeah, it was Amjad's idea that we could turn this into more of a thing. I can make a website, FutureOfCoding.org/meetups, meetup, and I could like list links to all the different pages for various cities and the contact people, and guidelines for how to host it and how to get your own meetup on this page. Things like that. I think that's a great idea. That's actually, so I made a list of my, I call them possible December 2018 regroup projects and that's one of them making that, making meetups more of a thing. The Patreon is also part of that regroup projects list. Oh, I was also gonna say that I was recently approached by Aidan Cuniffee on the Slack with an idea that I have also been toying with my head.
</div>
<div class="block">
<div class="time">01:38:30</div>He seems excited about it. Maybe he'll run with it or maybe one of you will run with it. Online meetups I think could be a cool thing. It just, how do you structure something like this? It's a really, it's a tough question and it's not straightforward. Part of why it's a tough question is that there are so many interesting ways to structure this, that there are multiple right answers, so you just have to pick one depending on what it is you're trying to accomplish. One way you could do it it it can be small, like for people who meet up every couple of weeks to like, four independent researcher people meet up to discuss their own research and just get some social validation and time pressure to actually accomplish things. That's a great idea. You could just do it privately for the four of you or you could record it and release it to the world, or you could record it in a live stream and other people could tune in live and add to comments their thoughts. That's one way to do it.
</div>
<div class="block">
<div class="time">01:39:30</div>Another way is just a free for all. You just post a link and anyone can show up and hopefully good people show up and you don't get spammers and you have a good group, big group conversation. It would be neat if you could do it like a party where you can kind of break off into smaller group conversations then rejoin the group. I don't exactly know how that would work, but it's annoying that if you have 20 people in a group call only one person can talk at any given point in time. That's just a waste of 19 people's creative energy. It's important to think through these kind of design decisions. Another idea that Jonathan Edwards had was that you could just, one person could just hold office hours, or it could be a group of people who just say if you want to talk to me or talk about your thing tweet back, and you can kind of build up a schedule, and you could publicly broadcast the whole thing for everyone to watch. That would be neat.
</div>
<div class="block">
<div class="time">01:40:24</div>Aidan had an idea where you could kind of do it as a raffle where a future program we meetup and only the presenter gets to talk and everyone else just watches and can contribute in the comments. Then maybe some people are guaranteed a spot to present their work, but there's one spot that's a random pick from a hat spot. He says that that's how comedy clubs get people to show up. They make it, you show up, you watch everybody else and then you hope for the chance that you get to present, so that's cool. Then the people who show up more often are given higher priority in the random waiting or whatever. That's another cool idea.
</div>
<div class="block">
<div class="time">01:41:12</div>Anyways, online Future of Coding meetups, like video, not just the text thin we have now with the Slack, great idea that I would love to be a part of. I don't at this very moment, have the time or motivation to do such a thing. I think you really have to be clear on what it is you're trying to accomplish. Yeah, but the last thing I mentioned that Aiden brought up, I think it could really be kind of like the LIVE workshop that Jonathan Edwards organized, but on a more rolling basis and more like decentralize-y. That would be cool to do once a month, once every other month. Finding the right time that people would tune in at different time zones would be interesting. Like 10:00 AM Pacific time, 5:00 or 6:00 PM London time. I don't know.
</div>
<h3>December Regroup Projects</h3>
<div class="block">
<div class="time">01:42:21</div>I have a few other December regroup projects I'll just run through. Branding, Amjad suggested a cool logo could go a long way. The website could definitely use an upgrade in terms of styling, color schemes, navigation. This podcast could use some intro and outro music and a better mic. In terms of a better mic, this episode I actually tried to make this mic better. I have this cheapo mic, but it would only works when I get really close to it, but when I get close to it, my Ps, Peter Piper Ps, cause it to flare up. Anyone who knows about audio stuff will know this stuff. It's kind of new to me. Anyways, I needed to make a mic filter thing and so I found a video to help that online to help me make it out of paper. I did that for this recording, so hopefully this is the best audio recording you've gotten so far in this podcast. Maybe I'll buy a better mic, but I bought better mics in the past and I've never found one I like, so anyways, I don't want to waste money on it, but I also want something good. Hopefully this one's better. Let me know if you have feedback or ideas.
</div>
<div class="block">
<div class="time">01:43:07</div>Another idea, another December regroup project is reorganizing my systems. The way I take my log is janky. I'm getting really tired of Jekyll and the way I've been using git and GitHub pages is annoying. It works and I could keep doing it for years, but it could use an upgrade. Another thing that's really important is Google inbox is dying in March, so I have a deadline. I'm not worried that this will never happen because the deadline will force me to do something, but I've been in Google inbox I have this, these lists that I, these unorganized lists of things I need to either think about or research. Two lists. One is for thoughts and the other one is for URLs of interesting projects that I want to look at. They're append only lists. I don't really go back and take things out of them. That's one issue, but really I want these lists to be somehow more public. Probably the right format for these things is they should all be on my GitHub issues.
</div>
<div class="block">
<div class="time">01:44:14</div>I should just go full hog GitHub issues because GitHub issues is pretty great. People can comment. There's a unique URL, I can change the title, I could put them in a Trello board, I can reference . I should probably, we should probably just go to GitHub issues. Obviously there are trade offs. GitHub issues a lot slower than just emailing myself things, but maybe I can email myself things and then transfer to GitHub issues later. I don't know, I'll figure it out. Maybe, in the past I had these things in, just in text in plain texts, like in a markdown bulleted list. You can still see those on my website, my old, yeah, they're old pages that are still like that. I haven't deleted them for posterity's sake but, but they're kind of a mess. Anyways, I'll figure this out. That's another thing I could work on as a December regroup project.
</div>
<div class="block">
<div class="time">01:45:08</div>Relatedly, I do have, I don't know, 20 or 30 GitHub issues already that I never check on. They could use some love and organization. Anyways, that's that. Already talked about a Patreon. Another idea that could provide some income. I could make a Future of Coding jobs board. I know a number of people who have companies that are trying to hire people who are interested in improving programming like Repl.it, my sponsor, but there are many others. Maybe I could make a job board for those people and then if enough people visit it, maybe I could ask companies to sponsor me to get higher up on the job board or I could ask for a donation. This person found you because of my job board, you know. Recruiters would charge you 10k, I would appreciate a donation of a fraction of that. I don't know, and it's up to them. They could just say no, whatever. It's a silly idea, but it's a thought.
</div>
<div class="block">
<div class="time">01:46:14</div>On the whole the last three months were very, very productive and most importantly, very uplifting. As I've said in the past, as long as I keep working on this project, even if I'm not using my time that perfectly productively, as long as I keep going, as long as I don't quit, I'll continue to make some amount of progress and if I work on this project for a long enough amount of time, I'll get there. It's really a long-term game. It's not about, it's not a sprint, it's a marathon, for real. I feel that way about my own excitement and motivation. I also feel that way in terms of funding. I want a sustainable funding source. I don't want to raise money and then have a three year timeline like Eve was saddled with. I want to do this sustainably because it's a hard problem that's important that I want to stick with for decades.
</div>
<h3>Blink Note</h3>
<div class="block">
<div class="time">01:47:00</div>Anything else to mention? I started collaborating with this guy I met on the internet, Dan Kantor on this note taking app Chrome extension. Basically I realized that I need a way to take notes in a millisecond. I need to be able to press one key command on my keyboard and then be writing a note and I don't want to have to wait one second, not even one second. I realized when I did the analysis, all of the note taking apps take three seconds or more, some takes seven seconds, some take 10 seconds to load. Loading a Google doc, loading even Notion takes three seconds. It's just unacceptable. I want to press a button and take a note. I need to be able to jot something down immediately. I was only able to find one thing that did it in less than a second, but it wasn't quite what I wanted.
</div>
<div class="block">
<div class="time">01:47:49</div>Anyways, we've started working on this thing. I'm calling it Blink Note because it notes in a blink, or notes faster than you can blink because it really opens up in a millisecond and it uses the Chrome Sync API to do syncing, and offline, and online. Right now it's about 200 or 300 lines of code. We need to keep it small, otherwise it won't load as fast, but it's fun. I've been using it to take notes. We shall see if I continue to use and build it. Maybe it'll be a thing other people will find valuable. Maybe I will stop and just use something that already exists. Part of why I wanted to mention this is that it feels relevant that I'm living the vision.
</div>
<div class="block">
<div class="time">01:48:32</div>My vision is that people will be able to customize and create their own tools for their own purposes. That's what I'm doing here with Blink Note. I wanted something desperately, I built it, I use it, I improve it, I use it, I improve it, I use it, I improve it. It's very, very energizing. I've spent a lot of, there's a lot of time that I would've watched TV or done other relaxing activities that instead I've been coding on Blink Note, so it feels like a video game. It's really fun and it makes me even more excited for my vision where other people will get this kind of energy about their computers. They get to improve their lives with coding. So, so cool.
</div>
<h3>Next Steps</h3>
<div class="block">
<div class="time">01:49:15</div>Okay, so in terms of next steps and what I'm gonna work on the next few months until I do one of these things again, I mentioned the regroup projects. Maybe I'll do some of those in December. Continuing to work on removing the IO monad from user interfaces with Turbine and a P4, also major thing I'll work on. Jonathan Edwards has been really great about helping me pick deadlines far into the future to shoot for. Next year there is the <Programming> conference in April in Italy and there are two different workshops, the Salon de Refuge and PX, the programming experience workshop.
</div>
<div class="block">
<div class="time">01:50:02</div>Maybe I'd submit to either of those. The Salon I have to submit on January 7th, and PX February 1st which happens in August in the UK and then maybe I'll submit again to SPLASH. I could submit this year to LIVE or REBLS in June or July and the workshop will probably happen at the end of October in Athens, Greece, or I could try and submit to Onward!, which would be a step up for me. It's not a workshop, it's like a real conference. I'd have to submit by mid April and yeah, it would happen at the end October in Athens, Greece, which is nearby, given I live in Europe now.
</div>
<div class="block">
<div class="time">01:51:06</div>I'm feeling like my work has been very productive and I'm pulling on a good thread so I'm trying to keep our, I'm not worried about these dates being out of mind. If I miss them I don't really care that much. I'll just catch the next one. The picking a date is really a good way to force yourself to buckle down, but my research has been good so far. I don't feel like I need to buckle down so much. It's good to have these in mind so if I'm close so maybe I'll hurry up a bit or whatever, but I'll just catch the next one. I'm not so worried.
</div>
<div class="block">
<div class="time">01:51:32</div>Yeah, so, yeah. Turbine, P4, the programming experience of removing the IO monad from the user interfaces. That's my next thing and what I'm mostly focusing on, I'll work a bit on this Blink Notes thing a bit. I'll continue to think about removing IO monad from the backend and other problems kind of on the back of my mind, but there are definitely in the back of my mind and this IO monad from UIs and the PX of that is on the top of my mind. Yeah, I'm excited to get the opportunity to do this kind of work. Bye.
</div>