The Changelog: Software Development, Open Source - Kickstarting Espruino (Interview)

Episode Date: September 20, 2013

Andrew and Jerod talk with Gordon Williams about his hardware/software open source project called Espruino that's currently raising funds on Kickstarter. Espruino is the world's first JavaScript micro...controller for beginners or experts, now open source.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome back, everybody. This is The Change Log. We're a member-supported blog, podcast, and weekly email that covers what's fresh and new in open source. You can check out the blog at thechangelog.com, our past shows at 5by5.tv slash changelog, and subscribe to The Change Log Weekly, our weekly email covering everything that hits our radar in open source. Subscribe at thechangelog.com slash weekly. This show is hosted by myself, Andrew Thorpe,
Starting point is 00:00:33 and Jared Santo. Say hello, Jared. Hello, how are you doing? Doing pretty good. This is the first time it'll be you and I together without Adam on the show, so we'll see how it goes. That's right.
Starting point is 00:00:45 This is episode number 104, and we are joined by Gordon Williams, creator of Espruino. How's it going, Gordon? Yeah, good, thanks. Real quick, before we jump into it, I just wanted to point out that we have a sponsor for today's show. It's DigitalOcean. DigitalOcean is a simple cloud hosting provider dedicated to offering the most intuitive and easy way to spin up a cloud server. Users can create a cloud server in 55 seconds, and pricing plans start at only $5 per month for 512 megs of RAM and a 20 gigabyte SSD, one CPU, and one terabyte transfer.
Starting point is 00:01:18 They feature a 99.99% uptime SLA and have data centers in New York, San Francisco, and Amsterdam. Their interface has a simple, intuitive control panel, which power users can replicate on a larger scale with their straightforward API. DigitalOcean uses KVM virtualization and additionally hosts a library of helpful walkthroughs and tutorials that cover server configuration and optimization. We have a $10 promo. When you enter your credit card info on the billing page, there's a promo code field there, and you can use the coupon code THECHANGELOG104 to use our $10 promo. You can check them out at digitalocean.com. Thanks so much to DigitalOcean for their support.
Starting point is 00:01:59 So you do use them, Jared. Is that right? Yeah, I've been using them, I don't know, I guess since June or so. Got a few clients on on bps's they also have um my company stuff on that as well so yeah we have a uh one of our co-workers at uh pure charity our day job is uh switching over to them so we should see how it goes and probably uh get them to use the promo code to get them a little discount there there you go yeah i mean, the interface is intuitive, super fast, and affordable. So I'm definitely a fan and not going to complain about it. What is it, $10 off?
Starting point is 00:02:34 Yeah, $10. So it starts at $5 a month. So essentially it's like two months free from what I understand, which is not bad. Right on. All right, well, let's go ahead and jump into the show. We got Gordon Williams, as I said before, and we're here to talk about Espruino, JavaScript for Things. So why don't you give us a little bit of an introduction.
Starting point is 00:02:52 What is Espruino, Gordon? Okay, so it's basically a JavaScript interpreter that runs on very low footprint devices. So they're kind of ARM microcontrollers you get that have the RAM and flash they need included inside them. So, you know, the normal way that you'd go about programming them is you run GCC on host computer and then you compile it and you send it over. But if it doesn't work, especially when you've got it in a system and you don't have a JTAG for it, it's pretty much a black box.
Starting point is 00:03:27 If it doesn't work, it's quite painful to try and figure out what's gone wrong. So S3 gives you almost like a command line interface to it where you can step through, issue commands. Yeah, and generally have a bit more fun making a project with it. You know, it's maybe not as capable as C++. Well, it's definitely not as capable as C++, but for actually getting something done for Arduino-style projects, it's great. It makes it a lot more enjoyable.
Starting point is 00:04:03 So when did this start, the Espruino, I guess, software piece? When did that come about? Probably about 18 months ago. I mean, a bit before that, I bought some of these ARM dev boards and had so much trouble getting toolchain working, especially under Linux. And it just struck me that it was absolutely crazy um that you buy this board for you know 10 pound or so and and you're you're fighting with it and by the time you get to flash an LED on and off you're so bored you just put it away again um so yeah I'd developed a JavaScript interpreter called TinyJS which was was just a single-file JavaScript interpreter which I used in a music visualiser that I'd sold as kind of half a day job.
Starting point is 00:04:56 And I thought I could more or less shove that into one of these mic controls and see what happened. So that's what i spent the kind of the next year or so trying to get get working properly gotcha so you at some point decided to start up a kickstarter project uh and obviously that meant that you needed some funding to get some part of this done so where did you decide on the Kickstarter, you know, I guess, method of trying to raise funding? And what point in the project did you decide, I need funding to do X?
Starting point is 00:05:32 Okay, well, I mean, I've had the software actually available on the site, and it was actually closed. And what I was finding out was that it really wasn't, wasn't doing what I wanted it to do. Generally the only people that would get to try it out were people who were already pretty experienced in embedded stuff because they'd have to get it,
Starting point is 00:05:57 they'd have to figure out how to flash the board that they'd just bought and then put the software on and all the rest of it. So I really wanted a sort of plug-and-play solution to it. And it just... The other thing is, almost the immediate question is, well, I've got some JavaScript, but actually I want to interface it to this specific library that I've got in C or C++.
Starting point is 00:06:20 Basically, people just want to look inside, see how it works, and fiddle with it. And open source is going to be a really nice way of working it. Everyone, hopefully, will be able to see it, play with it, do what they want. But hopefully, again, the people who are maybe more interested in just getting started will just buy the hardware from Kickstarter, and it'll support the work on it. So the Kickstarter part of this was kind of for creating the actual hardware? Yes, yeah, pretty much.
Starting point is 00:06:56 I mean, just a way that you can take it, you can plug it in and it'll work straight away. No software or anything to install. Right. So I guess that kind of brings up an interesting question. So this is called, in the Kickstarter project, is Espruino JavaScript for Things. And you said, obviously, Espruino, it's kind of Arduino style of stuff, but you said that the problem was people were coming with their own boards and trying to figure out how to get it up and running,
Starting point is 00:07:24 so it was really just, it was like experts that wanted to fiddle and you decided to say, we are going to kind of do both sides of this thing. We're going to do the software side and we're going to do the hardware side. That's why that way when somebody gets this project, they will, it will require very little setup. Is that right? And they'll just be able to go. Yes. Yeah. I mean, so, you know, it will still be available because it's open source and it's quite easy to recompile it to run on different devices.
Starting point is 00:07:52 So I'm hoping that you're going to get a group of people who will run it on whatever they found and port it to all kinds of different stuff. But then you'll get the people who are, who I guess it's aimed at mainly, which is people who just want to get stuff done very quickly or want to just want to get started with it, maybe sort of web developers or something who know JavaScript but don't really want to take the plunge to learn C and embedded software at the same time. Was the choice to go with JavaScript that just because so many people already know it
Starting point is 00:08:30 or because it's a good language? Explain your decision-making with JavaScript. A little. So part of me wanted effectively like a C interpreter, something that the language looked a lot like C, but that you could add stuff to data structures kind of in real time. You could change code without resetting,
Starting point is 00:08:55 stuff like that. And I really didn't want to, you know, end up with some other language that wasn't standard that people had to learn. And, you know, when you think of that, JavaScript's kind of the obvious fit for something that the same kind of pattern as C with curly braces and plus equals and for loops done pretty much the same way. You mentioned on the Kickstarter that the event-based programming of JavaScript is also
Starting point is 00:09:27 an advantage. Can you speak to that? Yeah. So, I mean, that, I can't say that was actually something I considered at the start, but like as I started implementing it, it just made a massive amount of sense that because you've got the events handled by the interpreter, you know when you're idle completely, and you know when you're supposed to wake up.
Starting point is 00:09:54 You either wake up because of some external event, or you wake up because of some timer. So it can put itself into really deep sleep modes, which makes it really, really good for battery-powered stuff. So I think we need to get into what Estruino is and kind of the use cases. But when I look at the Kickstarter project, and we can talk a little bit more about this later, the thing that jumps out to me, and I think this is true of most projects that are successful,
Starting point is 00:10:18 is that you had a 20,000-pound goal, and you're already at almost 58,000 pounds of pledges. So, well, it kind of speak a little bit to that kind of a, uh, I don't know, does that say to you that this is something that is desperately needed or do people just think this is a cool idea or, you know, what did that response tell you when you kind of launched this thing? Um, I don't know. I i mean i think there's definitely a lot of people think it's a very cool thing and i've heard you know repeatedly that people you know people who who do javascript for their day job just want to kind of pick it up and run
Starting point is 00:10:59 with it um there's also quite a lot of interest from the schools because there's a graphical programming language that's kind of Google Blockly, which, you know, it'll just output JavaScript code directly. So that kind of bolts on top of it. But the success... Yeah, I mean, I guess... It obviously is something that people are interested in. I mean, there's also Tesla that's jumped up recently as well, filling a very similar kind of niche.
Starting point is 00:11:33 Were you surprised at the success or do you expect to knock it out of the park? Yeah, I am quite surprised. I mean, you know, I always hoped it would do really well, but at the same time, I kind of expected it would be one of the, what are they, 60% that just bomb. So, yeah, it was really, really good kind of setting up on the first day and just kind of watching it pick up and thinking, you know, yes, it's going to hit the target, which is great. Yeah, it's definitely something that I think JavaScript itself kind of lends itself to a,
Starting point is 00:12:12 I don't know if the word is, I don't know what the right way to say it, maybe easier to pick up for somebody that doesn't, you know, that would like to get started with programming and kind of doesn't want to spend the time learning, you know, some of the heavier languages. But to me, this speaks, you obviously somehow were able to portray to a person on Kickstarter that maybe kind of wants to dabble in technology and not just want to be a hardcore programmer, how they could, you know, do something fun in their life with the language that might be easy to learn and kind of accomplish some pretty cool tasks.
Starting point is 00:12:42 So the audience probably is not just programmers, but also just people that are dabbling in technology that want to kind of tinker around with this stuff. Would you agree with that? Yes, I think so. I think probably having the fact that it's actually a thing that people can kind of get their hands on really helps, I think. And it was a very conscious decision actually going in um versus having a kickstarter for the software um also because
Starting point is 00:13:14 it's a little hypocritical to start off with closed software and then say um i'm gonna have a kickstarter here to open source it um but I think that it, yeah, I think it's been much more successful having hardware with it on that was being part of the Kickstarter rather than just having the software. Yeah, absolutely. So you kind of said, you talked about it a little bit.
Starting point is 00:13:38 You went from closed source to open source and you, or I guess, are you, would you consider the project to be open source right now or would you say that once the kickstarter is funded which by the way just to point out it is still available to be backed until uh next thursday the september 26th so that as of right now there's still seven days to go for the funding of this project, so it's not done yet. So anyone out there who wants to kind of get in on this thing, then you can just go to Kickstarter and look for the Espruino JavaScript for Things project and back it. A little side note, a little plug for you right there. The cool thing about these hardware Kickstarters is you're effectively buying the product, right? Right.
Starting point is 00:14:19 I mean, that may play into why these types of Kickstarters are so successful. I don't necessarily want to make this a show about Kickstarter, but it's cool that you're effectively just pre-ordering one of these things. If you get to the, what is it? The third level of backing. Yeah. 19 great British pounds is essentially you're buying the board at that point.
Starting point is 00:14:38 Right. So that's, so that's good, right? The, what, where you landed with a Kickstarter and you still have seven days to go with it. You would say that it's closed good, right? Where you landed with Kickstarter and you still have seven days to go with it. You would say that it's closed source right now,
Starting point is 00:14:50 but you're going to open source it after this is funded? Yeah, I mean, it's effectively open source unless everyone hears this show and then canc I Pledge immediately. But, you know, at the moment, you know, I've made it for the Esprino board and the other few boards that are out there at the moment, and I'd quite like to tidy up my code quite a bit before I release it. Also because, you know, if people pick it up and start looking at it and then I start changing stuff in the first few weeks after it's out, it's going to be a disaster. So I kind of said when the kickstarter ends I will release
Starting point is 00:15:30 it source will be going up whatever state it's in but before the kickstarter ends you know it just to give me a bit of extra time to get things get things sorted really gotcha so so that's a unique I don't know that just sounds like a unique path to go um why don't you speak a little bit to just to me it sounds like this is a you know you're you're able you're very flexible and you're kind of going with it as the which is the crux of open source which is what we kind of push is be flexible be kind of the the visionary of the project but be willing to to go in the direction that the community wants you to go in. And that's kind of what this seems like,
Starting point is 00:16:10 is that the project maintainer, you could have very well just been very proud and said, no, you're going to do exactly what I want you to do with it, and it's my way or the highway. But it seems like you're willing to mold this into kind of what the backers of this want. And is that true? um yeah i think so um i mean at the end of the day i guess i want to try and do it in such a way that um i can kind of afford to keep spending time maintaining it supporting users you know doing all the rest of the stuff um Because I'm not sure it's really in anyone's best interests if I just have to go out and get a proper job.
Starting point is 00:16:51 And then effectively dump it. But really, I want people to use in whatever whatever things they want and it would be amazing if it got ported to a whole bunch of different devices and just people got to enjoy using it yeah let's kind of step back for a minute and can you give us any examples of where this might what the use cases for it might be and you know what kind of real world projects this would will make sense with and maybe some that you've already kind of used it for? Okay, so, I mean, I guess a very obvious one is maybe remote sensing, remote control kind of things because it's very easy to say, you know,
Starting point is 00:17:41 set interval, do this every minute, and it'll go into its kind of low power state. You can be, I don't know, reading a temperature sensor and then either send it wirelessly back or something like that. It's very much kind of simple control things it's quite good at so uh i mean the obvious one might be like a greenhouse or a plant water away you know you've got a temperature you've got a a water level um you want to kind of tweak that but also it's quite nice to get in there and see and maybe you've got some kind of weird cycle you've set up. And you want to see what the program is actually doing,
Starting point is 00:18:28 what the variables are set to. That's somewhere where it's probably quite a lot better than a simple C program running there. Because otherwise you're spending half your time writing code to output the state of the program down the serial port. So it's essentially like, almost like embedded systems that you can interact with and debug a lot easier. Yes, yeah. Yeah, it looks like a, I don't know, the problem that I see with a lot of,
Starting point is 00:19:00 I don't know if I would say the problem with a lot of Kickstarter projects, but I think that when you... Maybe you can talk about this a little bit. So you released it with a 20,000-pound goal. So you had in mind roughly how much an Espruino costs you to make. And so if you got 20,000 pounds supported, you're going to have to produce this many and send them out. And then obviously you've tripled your goal.
Starting point is 00:19:26 So what I've noticed in the past with some Kickstarter projects is when they get well past their goal, they have a hard time fulfilling the amount of orders that came in. Because obviously, you know, the bandwidth might not be high enough when you hit those higher limits or those higher thresholds. How are you going to kind of prevent that like how do you make sure that you you know you still stick to your timeline or whatever you know your boundary or your limitations might be how do you make sure that you don't you know just honestly just like piss everybody off that back this thing um so yeah i mean that that's that's a definite problem. And if I was, I guess, if I was getting them, if I was like solving the components on myself, I'd suddenly have a really big problem.
Starting point is 00:20:13 But, you know, I've, you know, I looked at a few Kickstarters before I did this, and, you know, you see people having the problem. And I used Seed for this, which was Se seed with three e's they are like a they call themselves an open hardware facilitator they do sort of i guess sort of small to medium large runs of hardware um you know and i doubt they're the cheapest but they're they're quite um they've got quite a good reputation and you know they can scale up quite well if i'd got like a million orders or something then they probably would have had problems but i think for the moment um and for what we're going to get for this campaign
Starting point is 00:20:55 it's actually going to be going to be absolutely fine and they will be able to stick to the deadline probably i'm hoping we'll be able to get them out significantly before the deadline, like, you know, two months maybe. But, you know, I can't count on that. Yeah, well, you're guaranteeing the deadline. So as long as you hit that, I don't think anybody will be upset because, you know, people back it assuming
Starting point is 00:21:19 that that's when they're going to get it. So you can delight them with early, but you know what I mean? I think, you know, not to talk negatively about other products on Kickstarter, but that's not what the show is about. But, you know, I've experienced when some products, they go way beyond how much they wanted to raise. And then it took two years to get the product and it was supposed to take three months. And I think as long as you can kind of avoid that pitfall, which sounds like you got your ducks in a row to kind of really take care of that. I don't think you're going to really make anyone too angry, so that's a good thing.
Starting point is 00:21:50 No, I hope not. I mean, that's the thing. It's much better being like starting off with sensible goals than coming up with loads of goals that are just going to piss people off. Right. So you can tell by your accent that you are British and you uh you're you're living over i think are you in cambridge is that right um yes just just moved actually i'm just in the middle of moving and we will end up just outside oxford um so at the moment we're unfortunately a bit between places that's all right so the the thing i wanted to kind of ask a little bit is the last couple of shows, we've had people from all over the world. We've had Amsterdam.
Starting point is 00:22:29 I can't even remember all of them. But what is the community like on that side of the pond? Or do you find most of your interaction with Americans? Or are you having a lot of people from the United Kingdom? Or what is the response to to this like and do you notice any specific um you know areas that seem to respond a certain way um well it's kind of interesting because I think um the response to um Esprino itself has been probably much greater um in America I think there's kind of more of this idea that you can kind of you can go out and make stuff has been probably much greater in America.
Starting point is 00:23:06 I think there's kind of more of this idea that you can go out and make stuff. And a lot of the guys I know in England who are kind of into computer software have really, really interested in it. But no one's really, if they're not interested in computer software, then they're not really willing to take the leap at all, which is a bit of a shame. I was kind of hoping that I'd get a few more people
Starting point is 00:23:35 who were just making cool hardware things and wanted to just automate them a little bit. But yeah, I think more of that side is coming from the States, actually. So in terms of, you know, around the area, Cambridge is a really great area for tech stuff. There are a whole load of people there. I mean, it's not a huge city by any stretch of the imagination, but people tend to know each other.
Starting point is 00:24:07 You always find that you know someone else in the tech industry. It's interesting, actually. Just a little quick side note. I'm very open. I told you this, Gordon, that I absolutely love my time in England. I'm very drawn to the culture over there. But I went over there a few years ago, and we actually were in Cambridge,
Starting point is 00:24:29 and I got in touch with Andrew and Vero Pepperell, the two that kind of created Alfred app for the Mac, and sat down with them at lunch. They took me out to lunch and paid for it and everything, and the community was awesome over there, right? I just had a great time over there, so I can kind of agree with that that the technology community over there i think it's a real neat one yes yeah i think so um i mean maybe that's more of a cambridge thing than a
Starting point is 00:24:55 than a britain wide thing but um definitely around there it's amazing and i was very lucky to work for um collabra for a few years and and yeah yeah, I mean, everyone in there, it's, you know, you just get to realize when you're there that quite a lot of the city is in that area. And it's really exciting. So looping back to the use cases a little bit, I'm thinking, I'm looking at, you say it's for beginners and experts. I get the beginners thing absolutely i mean i think kids will love this kind of thing getting them excited about programming because they have that instant feedback and i think that's
Starting point is 00:25:34 very cool i think on the expert side uh of a couple use cases i'm just kind of want to throw this past you and see if this is something that you could do possibly with Esperino. You mentioned that it has wireless capability, at least can hook up to some sort of wireless kit. Yeah, so the board itself has got space to plug in little, well, to solder in a Bluetooth module. And the Bluetooth is a standard HCO5 serial port. But when you put that on, you can connect wirelessly to it and then you can you can program it you can talk to it exactly as you would have done through usb
Starting point is 00:26:13 um cool so can you can you also either turn it into some kind of a sensor or attach some sort of sensor and i'm thinking of like beacons that are transmitting data from their surroundings to other devices. Is that kind of stuff possible? Yeah, absolutely. I mean, in terms of if you have something that, in fact, you can, yeah, if you connect to it via Bluetooth with your phone, you can have it just send you whatever information it's gathered.
Starting point is 00:26:48 And of course, because it's JavaScript, you stick everything into an object, and then you just serialize it into JSON and just print it out. So the Wi-Fi capabilities, is that one of your stretch goals, was the Wi-Fi capability? Yeah, and that's now been hit. So I'm going to have to start working on that a bit more heavily. I mean, we've got... At the moment, it's got a Node.js-style HTTP server and client, but they only work when it's compiled onto Linux. So you can... It runs on Carambola quite nicely or Raspberry Pi, stuff like that.
Starting point is 00:27:30 So I can get a good idea of what it's like, but it's going to be much, much better when it's on this small low-power chip. And then you can have it running just off battery power, running for months on end, but then just maybe midnight it just connects to the internet sends off the data it's gathered during the day and then shuts down again if you're off to like massive long battery power so that was so to kind of stick there for a minute of being a kickstarter project and getting past your your goal well before the deadline you had the stretch goals goals. I see three of them.
Starting point is 00:28:05 So I see the Wi-Fi, I see the NPM, the Node.js module loading, and then the OpenWRT package are your three stretch goals. It seems like you're about to hit the second one with the NPM node module loading. The third goal, the OpenWRT package, to me seems like probably the biggest goal, the one that is potential to really impact the uses of Espruino, I don't know, greatly with being able to use it on other devices and stuff. So, I mean, is that true? Do you think that that 70,000 pound, excuse me if I said dollar a few times, I don't really remember. I'm trying to stick to pound. But if that 70,000 pound goal gets know, as soon as the source is released,
Starting point is 00:29:06 it'll take someone just like an hour or two to actually create the package for OpenWrt. I mean, I'm hoping as part of that to do a few things like supporting SPR on it, which will at least, that I think will start to get a lot more interesting because then you will start to be able to take JavaScript code and run it on the device. Before, it was actually a bit of a pain to get stuff in, to, say, port Arduino code over to C to run on Linux because it's a completely different API. How did you come up with these goals?
Starting point is 00:29:50 Honestly, it's mostly looking through it. You know, I had a big to-do list of stuff, and there was a definite area on that to-do list which was kind of like, this would be really cool to have, but I can't justify doing it right now because it's not really going forward in the direction I want to do. So it's quite nice to kind of have an excuse to do that cool stuff. And honestly, I really can't wait to get, you know, like um wr703 the um those little tp link travel routers to see it on there and you
Starting point is 00:30:30 know have people just just buying one of them for 20 quid plugging it in and um being able to use like a nicely packaged ethernet and wi-fi connected and USB connected device. Yeah, seems like it's a, I don't know, very exciting thing. The goal is 70,000 pounds. I mean, you've got seven days to go, so we've got to put a charge out to the listeners to get it there. I mean, we want to get it to that 70,000 so you can actually, in your own words, start doing the fun parts of the project.
Starting point is 00:31:06 Yeah, no, it'd be great. Cool. Cool. Well, this, I mean, this, I don't know, I'm not very, I've not been very active in the Arduino, the, you know, the Raspberry Pis of the world and this kind of embedded stuff. So for somebody like me that has not really dabbled in this stuff very much how do I get started? let's say I'm a backer January I'm going to get my device
Starting point is 00:31:32 but before then I want to do something to prepare myself so that I'm not just an idiot when it shows up how do I get started and what do I need to learn? I'm hoping that there won't be a great deal to learn. I mean, because you already have some idea about how to use JavaScript. And on the electronics side, I'm very much focusing on that there's a lot of really cool hardware now that is very much purely digital. You just connect it in via sometimes two wires,
Starting point is 00:32:09 but maybe six. And it's just plugging A to B. And then it just springs into life. You don't have to have a huge amount of electronics knowledge or anything like that. I mean, with FBino itself maybe you know get a soldering iron have a have a quick play around um there are plenty of things that show you know how to solder simple things together but but for esprino it's pretty much you know soldering
Starting point is 00:32:38 pins onto it and then then whacking whatever you want onto the pins. So where can I go to, to kind of learn about how to do that? I'm trying to, I'm trying to dig out of you just some, uh, something for our listeners that maybe have never done any of this stuff. Um, that is something that,
Starting point is 00:32:57 um, they're actually a good post on the Kickstarter from someone who, um, who had found and learned a lot of these. Unfortunately, I have to say that my dad was quite into electronics and I just learned as I was growing up. So I just don't know about those myself. But I can find the link and you can post it on the website or whatever. Well, it looks like some of the money should be going to producing more documentation, tutorials, example projects, and videos.
Starting point is 00:33:30 Is that a short-term plan, a long-term plan? I mean, that's both, really. Short-term, I want, as soon as people have got the boards, I want the website to have a good getting started section, which covers all this stuff about how you would go about soldering stuff on, what are the easy things to get to plug into it to do fun things really quickly. Going on from that, I obviously want to build up the library of drivers that are in there and the documentation that goes with them. And I'm kind of hoping a load of people will, if they do fun little projects with it, they'll kind of contribute back how they've done it, the code they used, all that stuff. So that people have a good library of stuff to build from.
Starting point is 00:34:26 If you've just got it and you don't actually have that many ideas about what you can do, you can just flip down the list and be like, oh, I can do this in an hour or two. So there are currently some tutorials on the website. I don't know if we mentioned it. The website is www.espruino.com. That's E-S-P-R-U-I-N-O.com. And there's already some like tutorials and examples and a forum on the website.
Starting point is 00:34:49 And that's kind of a little bit of what I was getting at, that the website will probably be a place for you to kind of go and read about and get started and learn just, you know, maybe a little bit more of the basics on how a lot of this stuff works. But I guess, so you kind of talked about you would like to have it by the time
Starting point is 00:35:07 the device is getting in people's hands. So would you say the website will look different come January than it does now? Or maybe not look different, but just have more content on it? Yeah, definitely. So I mean, for starters, I'm moving everything over to,
Starting point is 00:35:24 all the documentation is going on GitHub. So I'm hoping at least if people have changes to do, they just give me a pull request. And then that will be prettified and pulled on the website, as well as all the code snippets are going to have a link on them, which will hopefully go to the web app, which is a Google Chrome packaged app. And Google Chrome has access to the serial port.
Starting point is 00:35:55 So you literally, no software to install, even if you don't have a terminal application, you just get Chrome, get the web app, and then it just connects and you can use it straight away. And and with this with the link hopefully you get a code sample you just click the button and it'll go straight into it and then you can you can put it on the board so i wanted to kind of meant to hit on that a little bit earlier uh you just teased it a little bit but even if you have no idea about programming uh the esper esperino has a web-based you know graphical code editor i think is what you actually call it so you just talked about
Starting point is 00:36:31 that a little bit so this is a is it a is the the code editor itself the google chrome uh extension yeah so uh it's kind of three things wrapped into one. You've got a normal serial port terminal, like on Windows it would be PuTTY or Minicom on Linux. But then that's kind of the left-hand side of the pain. On the right-hand side, you've got a syntax highlighted editor. Or you've got this graphical editor as well which is is google blockly um so it looks just like scratch but um blockly itself will it uh it kind of serializes it into into javascript or various other languages so it's quite nice to just be able to take that and and put it straight
Starting point is 00:37:25 on the device and the kind of um the structures in it are a really good fit for event-based code you know you can have when button one is pressed run this instruction and this instruction and this instruction um whereas obviously if you had like an Arduino loop, it's not quite as easy for people to understand exactly what they're supposed to do with it. Gotcha. You talked a little bit about, well, you didn't talk about it, you just mentioned TESOL earlier in the show. So it sounds like that would be maybe who you would consider your competition.
Starting point is 00:38:00 Is that right? Yeah, well, I mean, so they are a JavaScript microcontroller, but they're going at it from a slightly different angle. They basically, you know, they're going after very internet-connected, so it's got Wi-Fi on it. But because of that, they've given themselves a bunch more RAM and flash like I think 32 meg of each so they're going to have a lot of trouble hitting
Starting point is 00:38:30 the very kind of low power consumption target so yeah they're heading kind of from a higher level downwards really definitely going for Node.js and I'm very much going for Arduino hardware hacking kind of things up downwards really definitely going for node.js and i'm very much going for sort of arduino hardware
Starting point is 00:38:46 hacking kind of things up so um you know you mentioned earlier about um you know what you'd use it for if you were you were an expert and really the answer is you know just having fun hacking a project together it's not you know it's not going to be a um you know one million line monster you're going to make with it but there's a whole bunch of stuff that you might want to do around your house or you might i don't know um want to automate your remote control car or whatever you can you know you can just actually do your day job, you get home, and you can actually enjoy doing this. It's not just sitting in front of a computer
Starting point is 00:39:31 hacking out code line after line. You're actually interacting with it and you're having fun playing with it. So when you say expert, you're not necessarily meaning that I'm not going to build a commercial product on top of Esperino. But you mean expert as in I know what I'm doing and I can do lots of cool stuff. Yeah, absolutely.
Starting point is 00:39:51 Gotcha. And when somebody asks you, it's kind of interesting. It's like when somebody asks you what, you know, what you would use an Esperino for, it's kind of like saying, you know, I mean, it's a microcontroller, right? It can kind of do everything. So it's kind of like saying, what can you do with programming? And the answer is kind of just everything, right? It's hard to just nail it down. But it sounds like the Espruino's target is, you said this a few times, low power consumption.
Starting point is 00:40:15 So it's like the smaller, maybe more personal style stuff that you want to accomplish in your house more so than anything on a large scale, which I guess you just said and I just repeated. Yeah, I think you could use it in industrial things if you want. I know of a few people who've contacted me who were using BASIC before in their industrial systems and they wanted to kind of modernize it a bit. And if you're actually using BASIC for your stuff, then Esprino is probably a really good thing to use. But I would imagine the majority of people have just got stuff in place
Starting point is 00:40:55 to use, you know, to just use C, basically, for anything commercial. Right. Let me ask you. I saw a long time ago, and I'm sure I could bring it up, but it was a few years ago, I saw somebody used an Arduino to, I don't remember exactly how it worked, but basically they were controlling their lock
Starting point is 00:41:16 on their front door with an Arduino and like a passcode was color-based. Can you use Estorino to kind of do something like that? Color-based? It was like you had to hit the colors in the right order. It was essentially just like a passcode, but instead of numbers, they used colors. Yeah, absolutely.
Starting point is 00:41:33 And that kind of thing is going to be very simple. It's going to be, I don't know, 20 lines of code at most to get that working. So yeah, for those kind of things, it's really perfect. If you're interacting with a human, you're never really going to have any speed issues at all. It's thousands of times faster than you'd need for anything like that. Right.
Starting point is 00:42:00 That's cool. Yeah, it's definitely a neat project. And I think that JavaScript is a great language for something like this. We have a lot of, I don't know, we hear both sides of it on different projects. You know, JavaScript, nobody wants to use JavaScript, everybody wants to use JavaScript, it for people that want to just kind of put stuff together. And to me, this is probably the first microcontroller that I'm really excited to just actually mess around with because I'm not going to, I feel like I don't have a huge, uh, a huge barrier of entry of things I have to learn to start hacking on it. So I'm excited about it. I think we could talk about it forever, but maybe we'll have you on the show to in a few, I guess, in, you know, longer than four months to talk about the feedback you've gotten and the coolest thing people are doing with it. Cool. Thanks. Yeah. So for all of our listeners on the show, um, and for the new listeners, we kind of do the same set of questions at the end of every,
Starting point is 00:43:01 uh, show to kind of give you some insight into the person we're talking with. So the first one, and I don't know how appropriate this question is for the current state of the project, but maybe you'll know something. But the first one we'd like to ask is for a call to arms. So something you would like to see the community get involved with or help out with? Yeah, I mean, definitely, you know, in know in well if you can't wait now um you can you can check it out on the website the source isn't released but there are binaries for a few popular platforms um you know if you you like it please back us on kickstarter because kind of the more um the more support we get the more i do, hopefully. But when the source is released, I mean,
Starting point is 00:43:46 it would be great to have people looking out for interfacing it to more devices, optimization. There are quite a few areas where it can be made a bit more efficient, a bit faster. So yeah, it would be great to just have people looking at it, playing around with it, and just giving feedback, really. So right now, get over to Kickstarter and back this thing. Would be nice, yeah.
Starting point is 00:44:09 When it comes out, get over to the repository and help with this thing. So Gordon, I'm on your Kickstarter page, and I'm about to back you, but let me ask you this. My MacBook doesn't have a serial port. Do I need to get the Bluetooth one? It has a USB port, surely. Oh, USB, you can just do serial. Yeah, sorry. I was thinking the old-school serial ports.
Starting point is 00:44:34 No, so, yeah, the board, you can connect via serial, but it's got USB ports on it, and it appears as a USB CDC device, which is kind of pretty much a complete standard, which means that you don't need drivers or anything. You just plug it into your Mac, and it will be recognized, and then you can use screen to connect to it. So no software to install, no nothing.
Starting point is 00:44:59 You just type, like, eight characters or something, and you're in. Awesome. Thanks. Awesome. So if you weren't doing then you're in. Awesome. Thanks. Awesome. So if you weren't doing what you're doing now, so imagine yourself not touching Esperuino at all, what would you like to be doing? Ah, now that's a question. I mean, you know, my goal has always been I'd just love to get a job doing what I love doing.
Starting point is 00:45:32 And, you know, a lot of that without having to get a real job. But outside Esprino, I'd have to think around for a bit and try and find another way of doing that, I think. Man, I just, if I were you, I would just be wandering around the countryside in in england man i think the i've been told i got a visit what is it the uh um the lake district is that what it's called um yeah so um um my wife and i actually met doing just basically wandering around england um yeah and it's it's a it's a lovely place to kind of walk. As long as you've got a raincoat, it's good. Yeah. And lastly, your programmer hero or just anyone in your life to give a shout-out to
Starting point is 00:46:34 that's impacted you greatly with what you're doing? So I've kind of got, like, bit to I guess um I mean you know when I was growing up around that time you know I was playing things like Wolfenstein and Doom and oh yeah just seeing someone get so much out of a computer when you know I was I was programming at the time. I was kind of interested in graphics. And, you know, there's a real disconnect between kind of the speed I could manage and the speed John Carmack and its software could manage. And that was like, you know, it's just really cool to have something
Starting point is 00:47:18 where you can look up to it and you can say, wow, this is cool, I wish I could do that. I mean, the other thing is um my dad I mean he's been electrical engineer for 40 40 50 years or so doing software and hardware and so there were like computers laying around the house while I was growing up and it's just been you know that's been what caused me to get to where I am just kind of having them having like a
Starting point is 00:47:51 soldering iron for my 7th birthday or something not many people would be crazy enough to do that but not many people would do that so yeah, that's it That's awesome. Well thanks so much again for coming on the show I think the project is an ambitious one,
Starting point is 00:48:09 and it's one that's going to be exciting to see unfold. Once again, you have one week left as of right now, so I guess September 26th is when the project comes to a close on Kickstarter. So if you're listening to the show, head on over there. I mean, there's definitely still time to back, and it's not expensive to be able to get your hands on your own Espruino and start to build your own color-coded door lock or whatever you want to use it for.
Starting point is 00:48:34 But, no, seriously, thanks so much for coming on with us and just talking. I mean, it's a privilege to hear some perspective from you. Great. Thank you. I want to give a shout-out to DigitalOcean again for sponsoring the show. Head on over to DigitalOcean.com to set up your cloud server today and make sure you use the promo code TheChangelog104 to get $10 off. And as a member, you get special benefits. You can head on over to TheChangelog.com slash benefits to access our exclusive members only
Starting point is 00:49:03 $20 promo code for DigitalOcean. You can sign in or become a member today to get access to this and many other partner benefits. That's it for this week. Thanks again to Gordon for joining us as well as Jared for making a special appearance. And also thanks to the listeners for tuning in for your support. If you haven't yet, subscribe to the ChangeLog Weekly, where we share everything that hits our open source radar. Subscribe at thechangelog.com slash weekly. Until then, let's say goodbye. See you.
Starting point is 00:49:32 Bye. We'll see you next time.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.