0 00:00:00,000 --> 00:00:30,000 Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/712 Thanks! 1 00:00:13,430 --> 00:00:15,589 Now, I will give the floor to Bunny, 2 00:00:15,590 --> 00:00:17,689 and I hope that you'll give him a warm 3 00:00:17,690 --> 00:00:19,439 welcome of applause before we start to 4 00:00:19,440 --> 00:00:20,440 talk. 5 00:00:22,340 --> 00:00:23,340 Thank you. 6 00:00:24,290 --> 00:00:26,249 Thank you so much. 7 00:00:26,250 --> 00:00:27,979 Great, I thought they they're a little 8 00:00:27,980 --> 00:00:30,019 optimistic, thinking this would fill sell 9 00:00:30,020 --> 00:00:31,759 one for a talk like this. 10 00:00:31,760 --> 00:00:34,309 But thanks everyone here for coming 11 00:00:34,310 --> 00:00:36,269 in, preparing for this talk. 12 00:00:36,270 --> 00:00:38,389 It was interesting, I 13 00:00:38,390 --> 00:00:40,129 realized as I was interviewing people 14 00:00:40,130 --> 00:00:42,509 that I lack a certain authority 15 00:00:42,510 --> 00:00:44,719 to speak to, for example, gender 16 00:00:44,720 --> 00:00:47,359 issues in computer science. 17 00:00:47,360 --> 00:00:49,159 And I run the risk of alienating the 18 00:00:49,160 --> 00:00:50,839 people I hope to empower if I get the 19 00:00:50,840 --> 00:00:52,099 message wrong. 20 00:00:52,100 --> 00:00:53,899 And I also realize it's a touchy subject 21 00:00:53,900 --> 00:00:56,569 for a lot of people and I risk 22 00:00:56,570 --> 00:00:58,339 raising the ire of a bunch of trolls. 23 00:00:58,340 --> 00:01:00,649 But I think social policy 24 00:01:00,650 --> 00:01:02,899 should not be dictated by fear 25 00:01:02,900 --> 00:01:04,400 of trolls. So let's get started. 26 00:01:08,390 --> 00:01:10,489 So let's start talking about how much of 27 00:01:10,490 --> 00:01:12,889 society is included in technology. 28 00:01:12,890 --> 00:01:14,989 This is a study that was done 29 00:01:14,990 --> 00:01:17,059 two hundred thousand people 30 00:01:17,060 --> 00:01:18,349 very recently. 31 00:01:18,350 --> 00:01:20,239 And the interesting part you want to look 32 00:01:20,240 --> 00:01:22,009 at is the purple and above bars are the 33 00:01:22,010 --> 00:01:24,169 people who kind of know how to use, 34 00:01:24,170 --> 00:01:25,999 you know, spreadsheets and word 35 00:01:26,000 --> 00:01:27,229 processors and stuff. 36 00:01:27,230 --> 00:01:29,059 And the people, you know, the orange and 37 00:01:29,060 --> 00:01:32,029 the red can barely do a search query. 38 00:01:32,030 --> 00:01:33,409 Like they could Google something and say, 39 00:01:33,410 --> 00:01:34,999 you know, what is something? 40 00:01:35,000 --> 00:01:37,159 And that's about all they can get out. 41 00:01:37,160 --> 00:01:39,229 And so it's although this was done over a 42 00:01:39,230 --> 00:01:41,629 fairly wide age range, 60 to sixty, 43 00:01:41,630 --> 00:01:43,969 it's you know, it's easy to forget in 44 00:01:43,970 --> 00:01:46,159 a place like CCC that there's 45 00:01:46,160 --> 00:01:47,659 actually a large portion of the world 46 00:01:47,660 --> 00:01:49,430 that's not included in technology. 47 00:01:50,480 --> 00:01:52,849 And why is this inclusively important? 48 00:01:52,850 --> 00:01:54,559 It becomes important when you talk about 49 00:01:54,560 --> 00:01:55,459 putting up to a vote. 50 00:01:55,460 --> 00:01:57,919 So if you want to explain situations 51 00:01:57,920 --> 00:01:59,839 like surveillance or net neutrality or 52 00:01:59,840 --> 00:02:02,059 even like the selection of emojis 53 00:02:02,060 --> 00:02:04,129 to people and 54 00:02:04,130 --> 00:02:05,359 you want to have a vote on it, you have 55 00:02:05,360 --> 00:02:07,969 to realize that that 50 percent line 56 00:02:07,970 --> 00:02:11,149 includes, you know, not 57 00:02:11,150 --> 00:02:13,039 it's not the majority of people who can 58 00:02:13,040 --> 00:02:15,139 even start to have a conversation 59 00:02:15,140 --> 00:02:16,999 about these sorts of things. 60 00:02:17,000 --> 00:02:18,649 And if you think that's like whatever 61 00:02:18,650 --> 00:02:20,719 like it's just, you know, those 62 00:02:20,720 --> 00:02:22,129 people are stupid. I don't have to worry 63 00:02:22,130 --> 00:02:23,749 about it. Sometimes that works for me. 64 00:02:23,750 --> 00:02:25,099 Attitude isn't good enough, particularly 65 00:02:25,100 --> 00:02:25,999 when it comes to a vote. 66 00:02:26,000 --> 00:02:27,619 There's a couple of very prominent 67 00:02:27,620 --> 00:02:29,959 examples of where 68 00:02:29,960 --> 00:02:32,059 I think we had surprising outcomes 69 00:02:32,060 --> 00:02:34,339 and Brexit and the American elections 70 00:02:34,340 --> 00:02:35,340 because of, 71 00:02:36,710 --> 00:02:38,300 you know, things. 72 00:02:40,700 --> 00:02:42,799 And so more specific example 73 00:02:42,800 --> 00:02:43,909 is like open source. 74 00:02:43,910 --> 00:02:45,469 I am an open source activist and I think 75 00:02:45,470 --> 00:02:47,269 that open source in the literary movement 76 00:02:47,270 --> 00:02:48,860 is about empowering everyone. 77 00:02:50,030 --> 00:02:51,679 But if you give people source code, you 78 00:02:51,680 --> 00:02:53,239 don't tell them how to use it. 79 00:02:53,240 --> 00:02:54,349 Are you really empowering them? 80 00:02:54,350 --> 00:02:56,129 So this is this example that happened 81 00:02:56,130 --> 00:02:57,109 earlier this year. 82 00:02:57,110 --> 00:02:59,429 Screen saver popped up a time bomb 83 00:02:59,430 --> 00:03:01,579 on Know Novena saying, like, this version 84 00:03:01,580 --> 00:03:02,669 is very old, please upgrade. 85 00:03:02,670 --> 00:03:03,739 So I start Googling, like, what the heck 86 00:03:03,740 --> 00:03:05,569 is going on? Like, is this like what's 87 00:03:05,570 --> 00:03:07,069 going on? And then there's this great 88 00:03:07,070 --> 00:03:09,490 thread where the maintainer, GWC, 89 00:03:10,580 --> 00:03:12,709 sort of get some popcorn and read it. 90 00:03:12,710 --> 00:03:14,119 It's interesting. 91 00:03:14,120 --> 00:03:15,469 And he says, like, when they even bother 92 00:03:15,470 --> 00:03:16,609 to tell me what version of NASA, that 93 00:03:16,610 --> 00:03:17,629 bridge is three years old. 94 00:03:17,630 --> 00:03:18,859 And then I say, but this is the latest 95 00:03:18,860 --> 00:03:19,789 version by Dictatorship's. 96 00:03:19,790 --> 00:03:21,709 He says, then your distro sucks. 97 00:03:21,710 --> 00:03:22,909 And they say, but I don't know how to 98 00:03:22,910 --> 00:03:25,079 compile code from source. 99 00:03:25,080 --> 00:03:27,259 I paste and everyone goes 100 00:03:27,260 --> 00:03:28,399 away unhappy. 101 00:03:28,400 --> 00:03:30,379 So in a situation like this, it's like 102 00:03:30,380 --> 00:03:32,479 both the developer and the users 103 00:03:32,480 --> 00:03:34,169 are disempowered actually by the 104 00:03:34,170 --> 00:03:36,229 situation. It doesn't necessarily help to 105 00:03:36,230 --> 00:03:37,639 just say, like, I just put the code out 106 00:03:37,640 --> 00:03:39,829 there and I don't necessarily tell people 107 00:03:39,830 --> 00:03:41,329 how to use and expect them to know how to 108 00:03:41,330 --> 00:03:42,330 use it. 109 00:03:42,950 --> 00:03:45,049 And so openness is powerless without 110 00:03:45,050 --> 00:03:46,729 inclusiveness. Sharing source code 111 00:03:46,730 --> 00:03:48,889 empowers a one percent or even less 112 00:03:48,890 --> 00:03:50,449 than one percent of society. 113 00:03:50,450 --> 00:03:52,549 And if you think that's good enough, we 114 00:03:52,550 --> 00:03:54,319 need the government's help to enforce the 115 00:03:54,320 --> 00:03:56,329 licenses that we rely upon and we need 116 00:03:56,330 --> 00:03:58,069 society's help to sponsor and patronize 117 00:03:58,070 --> 00:03:59,599 our efforts. 118 00:03:59,600 --> 00:04:00,949 And if you think that open source is a 119 00:04:00,950 --> 00:04:03,169 moral or social imperative, we 120 00:04:03,170 --> 00:04:04,729 should try to empower more people to 121 00:04:04,730 --> 00:04:06,769 preserve and sustain the practice. 122 00:04:06,770 --> 00:04:09,139 But it is not practical to teach people 123 00:04:09,140 --> 00:04:10,129 one by one how to code. 124 00:04:10,130 --> 00:04:12,349 It's not his responsibility to have 125 00:04:12,350 --> 00:04:14,389 told people how to compile a source, one 126 00:04:14,390 --> 00:04:16,189 at a time what you want to do. 127 00:04:16,190 --> 00:04:17,268 I mean, as an engineer, you want to 128 00:04:17,269 --> 00:04:18,469 optimize your efforts. 129 00:04:18,470 --> 00:04:20,148 You want to look for obvious issues, high 130 00:04:20,149 --> 00:04:22,339 leverage events that can get you a lot 131 00:04:22,340 --> 00:04:23,839 of gain. And so, for example, if you look 132 00:04:23,840 --> 00:04:25,819 around, on the left hand side is a 133 00:04:25,820 --> 00:04:27,439 picture from Özkan Open Source 134 00:04:27,440 --> 00:04:28,339 Conference. 135 00:04:28,340 --> 00:04:30,199 You'll be challenged to find the two 136 00:04:30,200 --> 00:04:32,139 women in that photo, I think actually 137 00:04:32,140 --> 00:04:34,289 looks quite good and inclusive. 138 00:04:34,290 --> 00:04:36,049 So the generation is quite better here. 139 00:04:36,050 --> 00:04:38,359 But when you are looking 140 00:04:38,360 --> 00:04:40,759 to increase participation, it feels like 141 00:04:40,760 --> 00:04:41,760 this could be in 142 00:04:42,920 --> 00:04:44,629 an area of good gains. 143 00:04:44,630 --> 00:04:46,249 It's like someone coming to me and 144 00:04:46,250 --> 00:04:48,079 saying, hey, my battery life sucks. 145 00:04:48,080 --> 00:04:49,639 And you find they're using a seventy five 146 00:04:49,640 --> 00:04:51,769 regulator to to to, 147 00:04:51,770 --> 00:04:54,139 you know, go off their power supply or 148 00:04:54,140 --> 00:04:55,189 I'm out of memory. 149 00:04:55,190 --> 00:04:56,779 And your memory allocators only 150 00:04:56,780 --> 00:04:58,849 allocating on the odd pages of even pages 151 00:04:58,850 --> 00:05:00,049 like you've just thrown away half your 152 00:05:00,050 --> 00:05:02,029 resources even before you got started. 153 00:05:02,030 --> 00:05:03,739 And oftentimes when you fix bugs like 154 00:05:03,740 --> 00:05:06,049 this, the paybacks can be more than 2x. 155 00:05:06,050 --> 00:05:07,669 Just fixing that one problem often will 156 00:05:07,670 --> 00:05:09,349 help you find other problems and get even 157 00:05:09,350 --> 00:05:11,899 more people included into technology. 158 00:05:13,460 --> 00:05:15,139 How bad is the bias? 159 00:05:15,140 --> 00:05:16,249 Here's some recent numbers. 160 00:05:16,250 --> 00:05:18,829 In twenty fifteen undergraduate degrees 161 00:05:18,830 --> 00:05:20,899 in the United States, only fifteen point 162 00:05:20,900 --> 00:05:22,879 seven percent were worried to woman. 163 00:05:22,880 --> 00:05:24,649 That's two thousand women compared to 164 00:05:24,650 --> 00:05:25,699 twelve thousand men. 165 00:05:26,750 --> 00:05:28,609 In that lower graph, there is a 166 00:05:28,610 --> 00:05:30,799 comparison of computer science 167 00:05:30,800 --> 00:05:32,719 versus other professions like mathematics 168 00:05:32,720 --> 00:05:34,519 and physics. Computer science has half 169 00:05:34,520 --> 00:05:35,749 the number of women in it. 170 00:05:35,750 --> 00:05:38,149 Then there are in mathematics or physics 171 00:05:38,150 --> 00:05:40,309 even. Right. So it's particularly bad in 172 00:05:40,310 --> 00:05:41,839 this in this field. 173 00:05:41,840 --> 00:05:44,059 And it's not just a US problem like this. 174 00:05:44,060 --> 00:05:45,769 Here's here's a graph showing the 175 00:05:45,770 --> 00:05:48,079 breakdown in Europe. 176 00:05:48,080 --> 00:05:49,489 And you can see the numbers in Germany, 177 00:05:49,490 --> 00:05:51,679 for example, is ten point five percent. 178 00:05:51,680 --> 00:05:53,839 Women getting degrees in two thousand 179 00:05:53,840 --> 00:05:54,840 computer science. 180 00:05:55,880 --> 00:05:58,219 And then there's some people who ask, 181 00:05:58,220 --> 00:06:00,119 like, you know, maybe there is actually 182 00:06:00,120 --> 00:06:02,299 genetic advantage 183 00:06:02,300 --> 00:06:03,859 in computing or something like this, 184 00:06:03,860 --> 00:06:06,019 which is a ridiculous statement that 185 00:06:06,020 --> 00:06:07,999 I find the only argument. 186 00:06:08,000 --> 00:06:09,139 Just to respond. 187 00:06:10,800 --> 00:06:12,989 With no right grumpy cat, no, I actually 188 00:06:12,990 --> 00:06:14,249 had a series of slides. 189 00:06:14,250 --> 00:06:15,449 I was trying to reason through these 190 00:06:15,450 --> 00:06:16,889 people is like you just can't reason with 191 00:06:16,890 --> 00:06:18,929 people who make statements that are 192 00:06:18,930 --> 00:06:20,309 inaccurate. 193 00:06:20,310 --> 00:06:21,599 The fact of the matter is, it just women 194 00:06:21,600 --> 00:06:22,529 can excel in computers. 195 00:06:22,530 --> 00:06:24,359 And I work with many women who are very 196 00:06:24,360 --> 00:06:25,979 gifted in this in this field. 197 00:06:25,980 --> 00:06:27,239 Some of them you recognize, like Limor 198 00:06:27,240 --> 00:06:29,369 Feet on the left, who does 199 00:06:29,370 --> 00:06:31,319 eat a fruit. There's I Bedier who does 200 00:06:31,320 --> 00:06:33,599 little bits, not a peek, who's very 201 00:06:33,600 --> 00:06:36,029 influential in the family community. 202 00:06:36,030 --> 00:06:38,309 There's a guy on the right hand side who 203 00:06:38,310 --> 00:06:39,719 I'll talk about later on, who I'm working 204 00:06:39,720 --> 00:06:40,859 with on this project. 205 00:06:40,860 --> 00:06:43,349 Naomi Wu, who's been working on the 206 00:06:43,350 --> 00:06:44,579 Amaker in Shenzhen, who's on the 207 00:06:44,580 --> 00:06:46,949 confluence of design and 208 00:06:46,950 --> 00:06:48,629 technology and fashion. 209 00:06:48,630 --> 00:06:50,849 And there's another lady here, not 210 00:06:50,850 --> 00:06:53,069 only Gong, who's also doing 211 00:06:53,070 --> 00:06:54,239 technology and fashion. 212 00:06:54,240 --> 00:06:56,339 And I almost sure you've seen 213 00:06:56,340 --> 00:06:57,839 products she's done announced on a big 214 00:06:57,840 --> 00:06:59,369 stage, but every single time it's always 215 00:06:59,370 --> 00:07:01,559 some guy taking credit for her work. 216 00:07:01,560 --> 00:07:03,719 And then there's Star Simpson, 217 00:07:03,720 --> 00:07:05,939 who is also talented engineer, and I 218 00:07:05,940 --> 00:07:07,619 really enjoy her recent circuit classics 219 00:07:07,620 --> 00:07:08,620 project. 220 00:07:09,720 --> 00:07:11,909 And so clearly woman can 221 00:07:11,910 --> 00:07:14,849 be involved. Maybe the bias is cultural 222 00:07:14,850 --> 00:07:16,409 in my experience. 223 00:07:16,410 --> 00:07:19,229 China has a much better chance, 224 00:07:19,230 --> 00:07:21,569 much better gender balance in technology 225 00:07:21,570 --> 00:07:23,099 fields. When I work with the factories 226 00:07:23,100 --> 00:07:25,199 there, I see lots 227 00:07:25,200 --> 00:07:27,209 of women in the offices. 228 00:07:27,210 --> 00:07:29,099 And I asked for a picture actually of a 229 00:07:29,100 --> 00:07:30,929 contract manufacturer I work with quite 230 00:07:30,930 --> 00:07:32,399 often, called us and said, Can you send 231 00:07:32,400 --> 00:07:33,479 me a staff photo recently? 232 00:07:33,480 --> 00:07:34,979 And I just went through and counted and 233 00:07:34,980 --> 00:07:36,959 it's sixty two percent female. 234 00:07:36,960 --> 00:07:38,429 And I'm not talking about like assembly 235 00:07:38,430 --> 00:07:40,409 laborers. This is not like the photos you 236 00:07:40,410 --> 00:07:42,029 see of like Foxconn, of people in blue 237 00:07:42,030 --> 00:07:44,339 smocks and stuff who are just doing rote 238 00:07:44,340 --> 00:07:46,379 labor. This is these are people who are 239 00:07:46,380 --> 00:07:48,029 doing staff. They're skilled in component 240 00:07:48,030 --> 00:07:50,009 selection, sourcing, manufacturing, 241 00:07:50,010 --> 00:07:51,599 project management is just logistics and 242 00:07:51,600 --> 00:07:53,459 design and so forth. 243 00:07:53,460 --> 00:07:55,589 So perhaps if 244 00:07:55,590 --> 00:07:58,289 you can see evidence that it's possible 245 00:07:58,290 --> 00:07:59,999 in other cultures are more inclusive, 246 00:08:00,000 --> 00:08:02,099 maybe there is a 247 00:08:02,100 --> 00:08:03,899 cultural issue and there are a couple 248 00:08:03,900 --> 00:08:05,849 experiments and cultural change that 249 00:08:05,850 --> 00:08:06,850 offer to 250 00:08:07,980 --> 00:08:09,329 two of them. I looked up that were well 251 00:08:09,330 --> 00:08:11,099 documented studies and involving cultural 252 00:08:11,100 --> 00:08:13,289 change that indicate that culture 253 00:08:13,290 --> 00:08:15,209 is a significant factor in affecting 254 00:08:15,210 --> 00:08:16,199 exclusivity. 255 00:08:16,200 --> 00:08:17,819 So, for example, Carnegie Mellon 256 00:08:18,900 --> 00:08:20,399 did an experiment where they tried to 257 00:08:20,400 --> 00:08:22,889 change the culture around 258 00:08:22,890 --> 00:08:24,629 their curriculum and they managed to go 259 00:08:24,630 --> 00:08:26,459 from less than 10 percent enrollment to 260 00:08:26,460 --> 00:08:28,979 over 40 percent ROLLAN in five years 261 00:08:28,980 --> 00:08:30,039 of females. 262 00:08:30,040 --> 00:08:32,189 And in Harvey Mudd, they had a similar 263 00:08:32,190 --> 00:08:33,899 result from twelve percent to forty five 264 00:08:33,900 --> 00:08:35,879 percent in five years. 265 00:08:35,880 --> 00:08:37,678 And I kind of read through some of these. 266 00:08:37,679 --> 00:08:39,989 And the key insight I got is 267 00:08:39,990 --> 00:08:41,908 that computer science is unique in 268 00:08:41,909 --> 00:08:43,499 assuming that you already know it before 269 00:08:43,500 --> 00:08:44,500 you study it. 270 00:08:45,150 --> 00:08:46,949 It's kind of like a medical program 271 00:08:46,950 --> 00:08:48,149 expecting that you've already done 272 00:08:48,150 --> 00:08:50,269 surgery before you enroll or a law school 273 00:08:50,270 --> 00:08:52,229 expect you've ever been to trial. 274 00:08:52,230 --> 00:08:54,119 But a lot of computer science programs 275 00:08:54,120 --> 00:08:56,219 already assume you can write reasonably 276 00:08:56,220 --> 00:08:57,749 complex pregnancy language before you 277 00:08:57,750 --> 00:08:59,759 even get to college. And so the intro 278 00:08:59,760 --> 00:09:01,529 classes are literally called weeder 279 00:09:01,530 --> 00:09:03,089 classes. They're there to get rid of 280 00:09:03,090 --> 00:09:06,119 people who weren't exposed to computers 281 00:09:06,120 --> 00:09:07,229 before they got to college. 282 00:09:07,230 --> 00:09:08,909 It's like walking into a Chinese class. 283 00:09:08,910 --> 00:09:10,079 It's introductory and seeing a bunch of 284 00:09:10,080 --> 00:09:11,369 Chinese people there. 285 00:09:11,370 --> 00:09:12,659 And then, you know, you have to get the 286 00:09:12,660 --> 00:09:14,309 best grade in that class for you to get 287 00:09:14,310 --> 00:09:15,929 on. And you just don't you don't even 288 00:09:15,930 --> 00:09:18,359 want to participate in that situation. 289 00:09:18,360 --> 00:09:20,279 And it turns out that this bias starts at 290 00:09:20,280 --> 00:09:21,479 a young age. 291 00:09:21,480 --> 00:09:22,949 Here's a on the right hand side. 292 00:09:22,950 --> 00:09:25,349 There's a ratio of the number of children 293 00:09:25,350 --> 00:09:26,729 who are being given engineering 294 00:09:26,730 --> 00:09:28,979 construction kits by gender 295 00:09:28,980 --> 00:09:30,299 as analyzed by name. This is a recent 296 00:09:30,300 --> 00:09:33,029 study that was done. 297 00:09:33,030 --> 00:09:35,279 And because because 298 00:09:35,280 --> 00:09:36,629 the bias starts a young age. 299 00:09:36,630 --> 00:09:38,009 By the time you get to college, if you're 300 00:09:38,010 --> 00:09:39,119 like, hey, I want to go in computer 301 00:09:39,120 --> 00:09:40,679 science, you just don't have the chance 302 00:09:40,680 --> 00:09:41,999 to really catch up at that point in time. 303 00:09:42,000 --> 00:09:43,919 You're excluded from the experience. 304 00:09:43,920 --> 00:09:46,079 Now, Harvey Mudd and Qumu 305 00:09:46,080 --> 00:09:47,339 were able to address the issues by 306 00:09:47,340 --> 00:09:49,559 redesigning their computer science 307 00:09:49,560 --> 00:09:50,789 courses, by offering courses. 308 00:09:50,790 --> 00:09:53,189 I assume that you know nothing 309 00:09:53,190 --> 00:09:54,659 in the beginning and to help you catch 310 00:09:54,660 --> 00:09:57,449 up. But we can't count on 311 00:09:57,450 --> 00:09:59,459 changing every undergraduate computer 312 00:09:59,460 --> 00:10:00,899 science program. So we have to start 313 00:10:00,900 --> 00:10:03,119 earlier. We need to find a way to change 314 00:10:03,120 --> 00:10:04,199 the culture. 315 00:10:04,200 --> 00:10:05,789 And so I was thinking about this a little 316 00:10:05,790 --> 00:10:07,139 bit more. And I happen to be reading a 317 00:10:07,140 --> 00:10:08,099 biology textbook. 318 00:10:08,100 --> 00:10:09,929 And I came across an interesting thing 319 00:10:09,930 --> 00:10:12,059 about sauerkraut. I love sauerkraut 320 00:10:12,060 --> 00:10:14,249 and it's made 321 00:10:14,250 --> 00:10:16,289 with nothing more than cabbage, salt and 322 00:10:16,290 --> 00:10:18,179 water. And every time you put those three 323 00:10:18,180 --> 00:10:19,529 ingredients together, you always get 324 00:10:19,530 --> 00:10:21,839 sauerkraut. You don't get something else 325 00:10:21,840 --> 00:10:23,399 right. You don't have to start the 326 00:10:23,400 --> 00:10:24,809 culture with anything. It just naturally 327 00:10:24,810 --> 00:10:26,699 turns into sauerkraut every single time. 328 00:10:26,700 --> 00:10:27,849 And I read a little more about it. 329 00:10:27,850 --> 00:10:29,129 It turns out that in the beginning, when 330 00:10:29,130 --> 00:10:31,309 you have cabbage, you have a neutral and 331 00:10:31,310 --> 00:10:33,629 you have all kinds of different bacteria 332 00:10:33,630 --> 00:10:34,709 and yeast on there. 333 00:10:34,710 --> 00:10:36,569 And there's one particular species of 334 00:10:36,570 --> 00:10:38,009 bacteria that eats the cabbage and 335 00:10:38,010 --> 00:10:39,899 releases lactic acid and makes it more 336 00:10:39,900 --> 00:10:41,339 and more sour, creates more and more 337 00:10:41,340 --> 00:10:43,469 acid, eventually killing off everything 338 00:10:43,470 --> 00:10:45,839 around it until there's only one species 339 00:10:45,840 --> 00:10:47,969 left. And every single time you put 340 00:10:47,970 --> 00:10:49,259 this recipe together, you always end up 341 00:10:49,260 --> 00:10:50,309 with sauerkraut. 342 00:10:50,310 --> 00:10:51,609 So if you want something other than 343 00:10:51,610 --> 00:10:53,339 sauerkraut, you can't fix the problem by 344 00:10:53,340 --> 00:10:55,469 just adding more cabbage. 345 00:10:55,470 --> 00:10:57,119 But you have to do something to change 346 00:10:57,120 --> 00:10:58,530 the culture, the conditions, 347 00:11:00,120 --> 00:11:02,069 to get a change in the outcome. 348 00:11:02,070 --> 00:11:03,719 And this sort of cost environment 349 00:11:03,720 --> 00:11:04,919 actually affects both genders. 350 00:11:04,920 --> 00:11:06,749 I have a good friend in my collaborator, 351 00:11:06,750 --> 00:11:08,129 Sean Cross. 352 00:11:08,130 --> 00:11:09,689 He's a developer for Novena. 353 00:11:09,690 --> 00:11:11,249 Fernvale, I need you, Chumby, and looks 354 00:11:11,250 --> 00:11:12,989 like he's the reason that the stuff I 355 00:11:12,990 --> 00:11:15,119 build isn't just shiny doorstops that 356 00:11:15,120 --> 00:11:17,039 do nothing like the software on it 357 00:11:17,040 --> 00:11:18,849 actually is very important. 358 00:11:18,850 --> 00:11:20,459 And he's a brilliant developer. 359 00:11:20,460 --> 00:11:22,409 He's supportive and modest and he really 360 00:11:22,410 --> 00:11:23,669 values a work life balance. 361 00:11:23,670 --> 00:11:24,929 But this is not kind of a personality 362 00:11:24,930 --> 00:11:27,269 type that sort of thrives 363 00:11:27,270 --> 00:11:28,229 in a Kostic environment. 364 00:11:28,230 --> 00:11:30,419 Neither him or I really lean in types. 365 00:11:30,420 --> 00:11:31,919 Some of you will recognize that word. 366 00:11:33,030 --> 00:11:35,099 You know, he got his undergraduate degree 367 00:11:35,100 --> 00:11:37,049 in psychology for various reasons. 368 00:11:37,050 --> 00:11:38,519 And as a result, his opportunities were 369 00:11:38,520 --> 00:11:40,469 limited. Initially, he was forced into 370 00:11:40,470 --> 00:11:41,579 Kuai and support roles. 371 00:11:41,580 --> 00:11:43,139 They wouldn't want to give him a development 372 00:11:43,140 --> 00:11:45,209 role until I saw some demos. 373 00:11:45,210 --> 00:11:46,399 He did that were absolutely amazing. 374 00:11:46,400 --> 00:11:48,599 I like I said, I want that guy 375 00:11:48,600 --> 00:11:50,099 in particular working on my stuff. 376 00:11:50,100 --> 00:11:51,329 And then we were able to start doing our 377 00:11:51,330 --> 00:11:52,979 adventures together. 378 00:11:52,980 --> 00:11:56,189 But that that sort of environment 379 00:11:56,190 --> 00:11:57,659 that he was originally put into, it 380 00:11:57,660 --> 00:11:59,489 didn't allow him to really stretch his 381 00:11:59,490 --> 00:12:01,559 legs and become everything he would be, 382 00:12:01,560 --> 00:12:03,149 who he could become. 383 00:12:03,150 --> 00:12:05,429 So to change the culture, 384 00:12:05,430 --> 00:12:07,019 you have to change ingredients now, like 385 00:12:07,020 --> 00:12:08,369 sauerkraut. I also like beer. 386 00:12:08,370 --> 00:12:10,529 And if you didn't add hops to your you 387 00:12:10,530 --> 00:12:12,479 know, to your to your beer, you would end 388 00:12:12,480 --> 00:12:14,399 up with kind of sour tasting beer half 389 00:12:14,400 --> 00:12:16,889 the time. And that's not necessarily 390 00:12:16,890 --> 00:12:19,229 something that that's desirable. 391 00:12:19,230 --> 00:12:21,359 And so I've been doing an 392 00:12:21,360 --> 00:12:22,500 experiment and change 393 00:12:23,530 --> 00:12:26,039 in electronics. 394 00:12:26,040 --> 00:12:28,169 And the question I guess is 395 00:12:28,170 --> 00:12:30,839 that by changing the ingredients 396 00:12:30,840 --> 00:12:32,789 of electronics, can it change the culture 397 00:12:32,790 --> 00:12:33,989 around it? So instead of 398 00:12:35,490 --> 00:12:37,589 going with wires and bread boards and so 399 00:12:37,590 --> 00:12:39,239 forth, what happens if you start with 400 00:12:39,240 --> 00:12:41,519 like paper and copper 401 00:12:41,520 --> 00:12:42,839 tape and so forth? 402 00:12:42,840 --> 00:12:45,149 And this is an idea that 403 00:12:45,150 --> 00:12:47,699 was thought of by me 404 00:12:47,700 --> 00:12:49,559 and we ended up starting a company 405 00:12:49,560 --> 00:12:51,149 together. We actually have a company 406 00:12:51,150 --> 00:12:52,319 called Chibi Products around this. 407 00:12:52,320 --> 00:12:54,599 And it's interesting to note 408 00:12:54,600 --> 00:12:56,489 that the company itself is actually 409 00:12:56,490 --> 00:12:57,749 primarily female. 410 00:12:57,750 --> 00:12:59,729 I think the last thing you want in 411 00:12:59,730 --> 00:13:01,739 something looking to create change is a 412 00:13:01,740 --> 00:13:03,749 group of men making recommendations about 413 00:13:03,750 --> 00:13:05,549 what we should do for diversity. 414 00:13:06,630 --> 00:13:07,630 And so 415 00:13:08,850 --> 00:13:11,489 if you look at the initial results 416 00:13:11,490 --> 00:13:13,889 of our experiment has been positive 417 00:13:13,890 --> 00:13:16,319 so far. This is from GE's doctoral thesis 418 00:13:16,320 --> 00:13:18,479 where she went and analyzed the sales 419 00:13:18,480 --> 00:13:20,699 numbers of Chibi products from 420 00:13:20,700 --> 00:13:21,989 the beginning to today. 421 00:13:21,990 --> 00:13:24,149 In the beginning, we were 70 percent 422 00:13:24,150 --> 00:13:25,739 male. The green section is male and the 423 00:13:25,740 --> 00:13:26,759 red section is female. 424 00:13:27,810 --> 00:13:29,429 And the blue is we couldn't tell from the 425 00:13:29,430 --> 00:13:31,199 gender, from the name. 426 00:13:31,200 --> 00:13:33,269 And then over time, we organically grew 427 00:13:33,270 --> 00:13:35,339 into a more stronger female 428 00:13:35,340 --> 00:13:36,809 audience. Right now we're doing about 70 429 00:13:36,810 --> 00:13:38,579 percent female, which is pretty 430 00:13:38,580 --> 00:13:40,109 interesting for an engineering 431 00:13:40,110 --> 00:13:41,759 construction kit. 432 00:13:41,760 --> 00:13:43,889 And something that I have been trying 433 00:13:43,890 --> 00:13:46,169 to figure out is how do we go 434 00:13:46,170 --> 00:13:47,999 beyond just simple circuits and into 435 00:13:48,000 --> 00:13:49,589 something where people can learn or even 436 00:13:49,590 --> 00:13:51,239 love to code. 437 00:13:51,240 --> 00:13:52,769 And so we've come up with a learning 438 00:13:52,770 --> 00:13:54,179 system that's aimed at increasing 439 00:13:54,180 --> 00:13:55,529 diversity, particularly in computer 440 00:13:55,530 --> 00:13:59,099 science at young ages. 441 00:13:59,100 --> 00:14:02,429 And so analyzing 442 00:14:02,430 --> 00:14:04,679 our experience in sort 443 00:14:04,680 --> 00:14:06,929 of Chibi Tronic so far and try to think 444 00:14:06,930 --> 00:14:08,220 about what were the things that 445 00:14:10,560 --> 00:14:13,229 were important factors in 446 00:14:13,230 --> 00:14:15,509 having it become more inclusive, 447 00:14:15,510 --> 00:14:17,639 I find that balance was very 448 00:14:17,640 --> 00:14:19,439 important. So we want to treat 449 00:14:19,440 --> 00:14:21,389 engineering as equal to design. 450 00:14:21,390 --> 00:14:22,979 Familiarity is very important in having 451 00:14:22,980 --> 00:14:24,809 materials are universe that people feel 452 00:14:24,810 --> 00:14:26,369 familiar getting into. 453 00:14:26,370 --> 00:14:27,749 And also simplicity is also very 454 00:14:27,750 --> 00:14:29,429 important. So we can go through each of 455 00:14:29,430 --> 00:14:30,430 these three 456 00:14:31,890 --> 00:14:33,779 principles in a little more detail. 457 00:14:33,780 --> 00:14:35,369 So balance engineering is equal to 458 00:14:35,370 --> 00:14:37,799 design. So there are many 459 00:14:37,800 --> 00:14:39,389 good examples of, well, familiar with of 460 00:14:39,390 --> 00:14:41,789 how design can revolutionize technology. 461 00:14:43,230 --> 00:14:45,209 You know, the MP three player was sort of 462 00:14:45,210 --> 00:14:46,859 a boxy, uninteresting thing until the 463 00:14:46,860 --> 00:14:49,049 iPod came out and then the iPhone 464 00:14:49,050 --> 00:14:51,779 clearly revolutionized smartphones. 465 00:14:51,780 --> 00:14:53,849 And there's a thing where 466 00:14:53,850 --> 00:14:54,959 blueprint's alone are kind of 467 00:14:54,960 --> 00:14:57,089 inscrutable. If you just look 468 00:14:57,090 --> 00:14:59,189 at the thing on the left, a thing on 469 00:14:59,190 --> 00:15:00,359 the right, you don't really know what 470 00:15:00,360 --> 00:15:02,369 it's for. It doesn't have a meaning to it 471 00:15:02,370 --> 00:15:03,749 in and of itself. 472 00:15:03,750 --> 00:15:05,699 But these are this is the code in the in 473 00:15:05,700 --> 00:15:07,259 the prototype circuit for something that 474 00:15:07,260 --> 00:15:09,389 was much more immediately relatable. 475 00:15:09,390 --> 00:15:11,519 This is a the dandelion painting 476 00:15:11,520 --> 00:15:13,619 that she did where she took 477 00:15:13,620 --> 00:15:15,659 electronic circuits and put them on a 478 00:15:15,660 --> 00:15:17,969 backdrop and then overlaid on top 479 00:15:17,970 --> 00:15:19,259 of it a picture of dandelions. 480 00:15:19,260 --> 00:15:20,669 And you can actually walk up to a blow on 481 00:15:20,670 --> 00:15:22,169 it. And the white dandelions would like 482 00:15:22,170 --> 00:15:24,419 let go of their fluff and drift across 483 00:15:24,420 --> 00:15:26,009 across the page. So it's a magical 484 00:15:26,010 --> 00:15:27,029 experience overall. 485 00:15:27,030 --> 00:15:29,399 And so she's able to go ahead and 486 00:15:29,400 --> 00:15:32,069 take, you know, what is inscrutable 487 00:15:32,070 --> 00:15:33,479 and turn into something that's really 488 00:15:33,480 --> 00:15:36,389 playable by combining engineering 489 00:15:36,390 --> 00:15:38,969 and and design. 490 00:15:38,970 --> 00:15:41,759 And so the curriculum that we've created 491 00:15:41,760 --> 00:15:43,169 treats engineering design as equal 492 00:15:43,170 --> 00:15:44,099 partners. 493 00:15:44,100 --> 00:15:46,409 You start with an exercise, for example, 494 00:15:46,410 --> 00:15:48,809 here to create a pressure sensor 495 00:15:48,810 --> 00:15:50,219 and then you flip over the page and your 496 00:15:50,220 --> 00:15:51,509 challenge of to tell a story. 497 00:15:51,510 --> 00:15:53,159 Why why did you build this pressure 498 00:15:53,160 --> 00:15:54,569 sensor? You can see the hint of it here. 499 00:15:54,570 --> 00:15:55,859 There's a little heart. And as you press 500 00:15:55,860 --> 00:15:58,529 it, there's the red light starts to glow 501 00:15:58,530 --> 00:16:00,519 and then and then your challenged to go 502 00:16:00,520 --> 00:16:02,519 ahead and draw a story over the blank 503 00:16:02,520 --> 00:16:03,719 sheet. 504 00:16:03,720 --> 00:16:05,849 And, you know, diverse 505 00:16:05,850 --> 00:16:07,709 thinking is more inclusive. 506 00:16:07,710 --> 00:16:09,469 I think. So when you. 507 00:16:09,470 --> 00:16:12,289 Measure achievement only on one axis. 508 00:16:12,290 --> 00:16:13,909 There's only one direction where you can 509 00:16:13,910 --> 00:16:15,349 sort of get to any. 510 00:16:15,350 --> 00:16:16,849 It's a sort of a thinning out of the 511 00:16:16,850 --> 00:16:18,709 ranks as you get towards the end of the 512 00:16:18,710 --> 00:16:21,169 axis. But if you go ahead and you say, 513 00:16:21,170 --> 00:16:22,339 let's look at both engineering and 514 00:16:22,340 --> 00:16:23,959 artistic ability and try to combine them 515 00:16:23,960 --> 00:16:26,599 together, you have a much larger space 516 00:16:26,600 --> 00:16:28,639 where you can create interesting things. 517 00:16:28,640 --> 00:16:31,009 And it's important not to just 518 00:16:31,010 --> 00:16:32,719 write it off as like I say, OK, well, 519 00:16:32,720 --> 00:16:34,339 we're going to put boys on Axis and girls 520 00:16:34,340 --> 00:16:36,409 on the other axis, like both 521 00:16:36,410 --> 00:16:38,449 axes. You can have people who achieve 522 00:16:38,450 --> 00:16:39,559 very well in either one. 523 00:16:39,560 --> 00:16:41,649 But when you go ahead, you look at in 524 00:16:41,650 --> 00:16:42,919 a multidimensional space, we have 525 00:16:42,920 --> 00:16:44,239 orthogonal parameters. 526 00:16:44,240 --> 00:16:45,679 You create a bigger space for 527 00:16:45,680 --> 00:16:46,609 achievement. 528 00:16:46,610 --> 00:16:48,979 And I think that can help get more people 529 00:16:48,980 --> 00:16:50,149 involved in technology. 530 00:16:51,320 --> 00:16:53,539 Familiarity is 531 00:16:53,540 --> 00:16:55,639 the second principle and using 532 00:16:55,640 --> 00:16:57,739 materials that are universal, 533 00:16:57,740 --> 00:17:00,109 so familiar things are naturally 534 00:17:00,110 --> 00:17:02,179 comfortable. So a lot of us started 535 00:17:02,180 --> 00:17:03,829 electronics looking at breadboard on the 536 00:17:03,830 --> 00:17:05,929 left hand side and there's 537 00:17:05,930 --> 00:17:07,549 a little magic that happens them. 538 00:17:07,550 --> 00:17:09,169 You have to sort of take them apart and 539 00:17:09,170 --> 00:17:10,669 show the people the underside that shows 540 00:17:10,670 --> 00:17:12,169 the wires connect underneath for you to 541 00:17:12,170 --> 00:17:13,999 get them. It's not something that a lot 542 00:17:14,000 --> 00:17:15,709 of people are familiar with initially, 543 00:17:15,710 --> 00:17:17,868 whereas paper craft and 544 00:17:17,869 --> 00:17:19,489 in the style that we use, it uses 545 00:17:19,490 --> 00:17:21,229 materials like tape and paper. 546 00:17:21,230 --> 00:17:22,729 You lay down the copper tape and that's 547 00:17:22,730 --> 00:17:24,499 where the electrons go. It's very clear. 548 00:17:24,500 --> 00:17:26,809 It's a very familiar paper is 549 00:17:26,810 --> 00:17:27,739 universally familiar. 550 00:17:27,740 --> 00:17:29,449 It's in everyday materials, books we 551 00:17:29,450 --> 00:17:31,249 print on it. We you know, we use it for 552 00:17:31,250 --> 00:17:33,499 bags. We make origami out of it. 553 00:17:33,500 --> 00:17:35,419 Paper is also an incredibly expressive 554 00:17:35,420 --> 00:17:37,489 material. So you can do 555 00:17:37,490 --> 00:17:39,349 a lot of very interesting, interesting 556 00:17:39,350 --> 00:17:40,729 things from the artistic side with paper. 557 00:17:40,730 --> 00:17:43,099 This is a sample of of 558 00:17:43,100 --> 00:17:44,659 artwork that was created as part of a 559 00:17:44,660 --> 00:17:47,269 exhibition that my Kleberg 560 00:17:47,270 --> 00:17:48,259 did. 561 00:17:48,260 --> 00:17:49,789 You can go to paper curiosities that 562 00:17:49,790 --> 00:17:51,829 media at MIT to edit to check out more of 563 00:17:51,830 --> 00:17:53,389 them. But there's a lot of really 564 00:17:53,390 --> 00:17:55,039 fantastic things that people were able to 565 00:17:55,040 --> 00:17:57,589 do with paper and just light. 566 00:17:57,590 --> 00:17:59,599 And we want to extend that to even more 567 00:17:59,600 --> 00:18:01,849 with with programing. 568 00:18:01,850 --> 00:18:03,619 But not only is paper and expressive 569 00:18:03,620 --> 00:18:05,029 mature, it's also an engineering 570 00:18:05,030 --> 00:18:07,459 material. This is a picture of actually a 571 00:18:07,460 --> 00:18:09,559 quick prototype that Zorba's came up 572 00:18:09,560 --> 00:18:11,719 with of a biased 573 00:18:11,720 --> 00:18:13,909 network for a split core transformer 574 00:18:13,910 --> 00:18:16,639 just means need to come up with like a 575 00:18:16,640 --> 00:18:18,679 circuit board instead of taping a whole 576 00:18:18,680 --> 00:18:19,849 circuit board. Let's go ahead and just 577 00:18:19,850 --> 00:18:21,619 use paper copper tape and make it all 578 00:18:21,620 --> 00:18:23,119 happen. And it's really interesting that 579 00:18:23,120 --> 00:18:25,249 you can see it's self documenting, right? 580 00:18:25,250 --> 00:18:26,539 You don't have to guess what the value 581 00:18:26,540 --> 00:18:27,829 is, where where things went. 582 00:18:27,830 --> 00:18:29,359 You can write on the paper and it just 583 00:18:29,360 --> 00:18:30,859 all comes together. It's working with 584 00:18:30,860 --> 00:18:32,419 actual and through whole components. 585 00:18:32,420 --> 00:18:34,489 And so paper versus bread 586 00:18:34,490 --> 00:18:36,979 is an interesting sort of comparison. 587 00:18:36,980 --> 00:18:40,069 And I have the two side by side here. 588 00:18:40,070 --> 00:18:42,529 Paper is compatible with both surface 589 00:18:42,530 --> 00:18:44,179 and through whole types with breadboard 590 00:18:44,180 --> 00:18:46,399 can only do through whole paper 591 00:18:46,400 --> 00:18:48,619 natively supports comments, 592 00:18:48,620 --> 00:18:50,089 whereas breadboard. So you can't really 593 00:18:50,090 --> 00:18:52,159 write on them paper. 594 00:18:52,160 --> 00:18:53,779 You can. You can. It's thin and flat. 595 00:18:53,780 --> 00:18:54,949 You can fold into three D shapes. 596 00:18:54,950 --> 00:18:56,029 So when you're done, if you want to go 597 00:18:56,030 --> 00:18:57,259 and fold it over, you can just go ahead 598 00:18:57,260 --> 00:18:58,729 and do that. You can't do that with it. 599 00:18:58,730 --> 00:19:01,099 With a breadboard, the substrate 600 00:19:01,100 --> 00:19:03,379 cost is practically free, but boards 601 00:19:03,380 --> 00:19:05,149 are relatively expensive. 602 00:19:05,150 --> 00:19:07,069 But on the downside, the substrates are 603 00:19:07,070 --> 00:19:08,070 not reusable. 604 00:19:08,930 --> 00:19:10,939 You may require some soldering and the 605 00:19:10,940 --> 00:19:12,739 components are typically not reusable, 606 00:19:12,740 --> 00:19:14,329 which has been a barrier for us to try 607 00:19:14,330 --> 00:19:15,919 and get into more expensive stuff like 608 00:19:15,920 --> 00:19:16,920 microcontrollers. 609 00:19:18,020 --> 00:19:20,089 And so G came up with this 610 00:19:20,090 --> 00:19:22,249 idea of 611 00:19:22,250 --> 00:19:24,529 putting a microcontroller on essentially 612 00:19:24,530 --> 00:19:25,629 a paperclip. 613 00:19:25,630 --> 00:19:27,799 But a notebook clip. 614 00:19:27,800 --> 00:19:29,509 This is a picture from our thesis top and 615 00:19:29,510 --> 00:19:31,249 we've been refining it into the thing 616 00:19:31,250 --> 00:19:33,439 that you see below, which is a rigid flex 617 00:19:33,440 --> 00:19:35,629 circuit board circuit board, 618 00:19:35,630 --> 00:19:37,489 which has a rigid portion of the PCB and 619 00:19:37,490 --> 00:19:39,199 a flexible portion of the PCB. 620 00:19:39,200 --> 00:19:41,089 And we can use it to wrap around the edge 621 00:19:41,090 --> 00:19:43,639 of a clipboard so you can go ahead and 622 00:19:43,640 --> 00:19:44,749 wrap it around the edge of a clip. 623 00:19:44,750 --> 00:19:46,999 You can craft circuits on pieces 624 00:19:47,000 --> 00:19:49,279 of paper, you can let 625 00:19:49,280 --> 00:19:51,259 it down, and then the circuits themselves 626 00:19:51,260 --> 00:19:53,959 are in contact with the microcontroller. 627 00:19:53,960 --> 00:19:55,549 And so this is a very familiar format. 628 00:19:55,550 --> 00:19:57,379 You don't have to explain to people a lot 629 00:19:57,380 --> 00:19:59,479 about how to get started with this, what 630 00:19:59,480 --> 00:20:01,459 to do about it. You just show someone how 631 00:20:01,460 --> 00:20:02,749 to use it. It's very natural. 632 00:20:02,750 --> 00:20:04,089 It's very easy to use. 633 00:20:04,090 --> 00:20:05,209 So we're working now on a sort of a 634 00:20:05,210 --> 00:20:07,399 general notebook clip type prototype 635 00:20:07,400 --> 00:20:09,349 where you just go ahead and you put your 636 00:20:10,850 --> 00:20:12,559 your microcontroller on a clip. 637 00:20:12,560 --> 00:20:13,939 You go ahead and clip on the edge of a 638 00:20:13,940 --> 00:20:15,859 piece of paper notebook and in your off 639 00:20:15,860 --> 00:20:17,149 encoding. 640 00:20:17,150 --> 00:20:19,039 But the final thing that's very important 641 00:20:19,040 --> 00:20:20,839 is simplicity. How do you actually get 642 00:20:20,840 --> 00:20:23,059 code onto the device in the first place? 643 00:20:23,060 --> 00:20:24,589 Great. You have a piece of code, but then 644 00:20:24,590 --> 00:20:26,599 what? Like, you know, just like step two, 645 00:20:26,600 --> 00:20:28,369 step three profit write like what's the 646 00:20:28,370 --> 00:20:29,370 step two? 647 00:20:30,230 --> 00:20:32,029 It's hard to get code into a 648 00:20:32,030 --> 00:20:33,019 microcontroller. 649 00:20:33,020 --> 00:20:34,639 Right? It's like you have to have a cross 650 00:20:34,640 --> 00:20:35,989 compiler and then you have to have some 651 00:20:35,990 --> 00:20:37,309 drivers and bla bla bla bla sort of 652 00:20:37,310 --> 00:20:39,709 stuff. And the thing is configuration 653 00:20:39,710 --> 00:20:41,719 isn't science or logic, right. 654 00:20:41,720 --> 00:20:43,549 It's convention. Like you may be awesome 655 00:20:43,550 --> 00:20:45,829 at like command line stuff in 656 00:20:45,830 --> 00:20:47,989 one distro of a one, two or or 657 00:20:47,990 --> 00:20:48,889 whatever, Linux. 658 00:20:48,890 --> 00:20:50,579 And then you go put some puts you in 659 00:20:50,580 --> 00:20:51,949 another machine like a Windows machine 660 00:20:51,950 --> 00:20:53,399 like where the hell do I like configure 661 00:20:53,400 --> 00:20:54,799 USB drive. Is that whatever it is, it's 662 00:20:54,800 --> 00:20:56,479 not it doesn't require someone to 663 00:20:56,480 --> 00:20:57,679 necessarily be intelligent, to 664 00:20:57,680 --> 00:20:59,239 understand, to configure is just you have 665 00:20:59,240 --> 00:21:00,529 to know the conventions. 666 00:21:00,530 --> 00:21:01,909 And the problem is, is that when people 667 00:21:01,910 --> 00:21:04,099 ask stupid questions, they're like, 668 00:21:04,100 --> 00:21:05,389 just read the fucking manual. 669 00:21:05,390 --> 00:21:06,289 Right? There's like this like this is 670 00:21:06,290 --> 00:21:08,119 very sort of Kostic environment starts 671 00:21:08,120 --> 00:21:09,209 coming back at them. Why are you. 672 00:21:09,210 --> 00:21:10,619 Asking me stupid questions, you should 673 00:21:10,620 --> 00:21:12,239 know these things already, and so we 674 00:21:12,240 --> 00:21:14,429 really want to avoid pushing people 675 00:21:14,430 --> 00:21:16,559 into that sort of cultivar to fit into 676 00:21:16,560 --> 00:21:17,759 being otherwise you just start creating 677 00:21:17,760 --> 00:21:19,799 more of that sauerkraut culture again at 678 00:21:19,800 --> 00:21:20,800 the end of the day. 679 00:21:21,510 --> 00:21:23,279 And so the challenge we were faced was 680 00:21:23,280 --> 00:21:25,319 finding an interface is truly universal 681 00:21:25,320 --> 00:21:26,640 to program a microcontroller. 682 00:21:28,320 --> 00:21:30,059 There's things like USB and lightning, 683 00:21:30,060 --> 00:21:31,469 but all the required drivers and so 684 00:21:31,470 --> 00:21:32,939 forth. But then there are things like 685 00:21:32,940 --> 00:21:34,589 eyes and ears. We all these are how we 686 00:21:34,590 --> 00:21:35,969 interface with our computers, the analog 687 00:21:35,970 --> 00:21:37,559 holes, so to speak. Right. 688 00:21:37,560 --> 00:21:39,209 Years are pretty universalize, are pretty 689 00:21:39,210 --> 00:21:41,639 universal. So I looked at those 690 00:21:41,640 --> 00:21:43,979 interfaces as options and sound 691 00:21:43,980 --> 00:21:45,419 is simple. 692 00:21:45,420 --> 00:21:47,579 It's ubiquitous as good browser support 693 00:21:47,580 --> 00:21:49,769 headphones are on everything, almost 694 00:21:49,770 --> 00:21:52,139 everything. I don't, you know, want 695 00:21:52,140 --> 00:21:54,809 to have to use your proprietary 696 00:21:54,810 --> 00:21:57,329 fucking ugly microwave 697 00:21:57,330 --> 00:21:58,619 transmitters in my ear to listen to 698 00:21:58,620 --> 00:21:59,909 sound. 699 00:21:59,910 --> 00:22:02,489 But more importantly, 700 00:22:03,600 --> 00:22:05,579 sound is also data capable. 701 00:22:07,320 --> 00:22:08,320 So. 702 00:22:09,220 --> 00:22:11,559 If you use 703 00:22:11,560 --> 00:22:14,140 sound, we finally have an ability 704 00:22:15,190 --> 00:22:17,769 to use 705 00:22:17,770 --> 00:22:20,019 the cloud and sound to upload compiled 706 00:22:20,020 --> 00:22:22,149 code, and so I'll 707 00:22:22,150 --> 00:22:23,919 talk a little bit more about how we make 708 00:22:23,920 --> 00:22:25,629 that happen. This is where the talk 709 00:22:25,630 --> 00:22:27,069 starts to get a bit more geekier. 710 00:22:28,420 --> 00:22:30,459 It turns out that making things simple is 711 00:22:30,460 --> 00:22:32,199 really, really hard. 712 00:22:32,200 --> 00:22:33,549 We've been trying actually for over three 713 00:22:33,550 --> 00:22:35,469 years to kind of make a version of this 714 00:22:35,470 --> 00:22:36,669 product. 715 00:22:36,670 --> 00:22:38,469 The first two generations were completely 716 00:22:38,470 --> 00:22:39,939 stymied by configuration problems. 717 00:22:39,940 --> 00:22:41,679 We tried doing generation one generation 718 00:22:41,680 --> 00:22:44,439 to where you can see on the bottom here 719 00:22:44,440 --> 00:22:47,079 are at tiny based microcontrollers, 720 00:22:47,080 --> 00:22:48,459 which were really difficult for people to 721 00:22:48,460 --> 00:22:49,749 use. 722 00:22:49,750 --> 00:22:51,939 Gen three was sort of like the prototype 723 00:22:51,940 --> 00:22:52,959 that we came up with. 724 00:22:52,960 --> 00:22:54,849 And Gen four is where we're kind of 725 00:22:54,850 --> 00:22:56,229 finally getting to something that we 726 00:22:56,230 --> 00:22:58,629 might be able to to share. 727 00:22:58,630 --> 00:23:00,789 And we design it from the bottom up for 728 00:23:00,790 --> 00:23:01,839 simplicity. So it goes through the 729 00:23:01,840 --> 00:23:03,400 infrastructure, like how do we get, 730 00:23:04,630 --> 00:23:07,119 you know, code turn into sound 731 00:23:07,120 --> 00:23:09,279 and get into the microcontroller. 732 00:23:09,280 --> 00:23:10,839 So we'll start with what I call the 733 00:23:10,840 --> 00:23:13,239 failure kind of loosely a failure. 734 00:23:13,240 --> 00:23:15,759 We use APHIS, K modulation, audio 735 00:23:15,760 --> 00:23:16,839 frequency shifting. 736 00:23:16,840 --> 00:23:19,059 We use two tones to represent 737 00:23:19,060 --> 00:23:20,559 a binary zero one. 738 00:23:20,560 --> 00:23:22,569 It's exactly like those old modems from 739 00:23:22,570 --> 00:23:23,619 the 70s, the eighties. 740 00:23:23,620 --> 00:23:25,029 I don't know if any of you old enough to 741 00:23:25,030 --> 00:23:26,030 remember it, 742 00:23:27,160 --> 00:23:28,660 but we use 743 00:23:29,770 --> 00:23:31,269 eight point six kilohertz and twelve 744 00:23:31,270 --> 00:23:33,369 point five kilohertz roughly, and 745 00:23:33,370 --> 00:23:34,749 we pick the tones to be MP three 746 00:23:34,750 --> 00:23:37,059 survivable. We want these songs 747 00:23:37,060 --> 00:23:38,859 to be able to be encoded to be 3s and 748 00:23:38,860 --> 00:23:40,929 played back so you could share songs 749 00:23:40,930 --> 00:23:43,059 and not just source code if you want 750 00:23:43,060 --> 00:23:44,060 to. Later on. 751 00:23:45,340 --> 00:23:46,599 There was a bit of a challenge 752 00:23:46,600 --> 00:23:49,209 implementing this because we want to 753 00:23:49,210 --> 00:23:51,489 pick an MCU that had a price 754 00:23:51,490 --> 00:23:53,289 of under one dollars because that rigid 755 00:23:53,290 --> 00:23:54,699 flex circuit board you saw where we had 756 00:23:54,700 --> 00:23:56,319 part of it rigid, part of flexible is not 757 00:23:56,320 --> 00:23:58,419 cheap. That actually runs 758 00:23:58,420 --> 00:23:59,329 up the cost quite a bit. 759 00:23:59,330 --> 00:24:01,639 So we had to find other ways to to keep 760 00:24:01,640 --> 00:24:03,949 the cost reasonable 761 00:24:03,950 --> 00:24:06,039 when we also, in addition to be under one 762 00:24:06,040 --> 00:24:08,229 dollar, had to be able to do about 763 00:24:08,230 --> 00:24:10,569 20 Mega Macs per second performance, 764 00:24:10,570 --> 00:24:12,789 had to integrate ADC open source 765 00:24:12,790 --> 00:24:15,069 friendly. It was very important to us. 766 00:24:15,070 --> 00:24:16,359 And we also wanted to be backward, 767 00:24:16,360 --> 00:24:17,649 compatible with a lot of the community 768 00:24:17,650 --> 00:24:18,650 stuff in Ardino. 769 00:24:20,170 --> 00:24:22,449 Here's a kind of a big 770 00:24:22,450 --> 00:24:24,789 chart of some microcontrollers 771 00:24:24,790 --> 00:24:26,779 that were considered from the ambiga at 772 00:24:26,780 --> 00:24:28,839 that tiny general plus and Bubalo and 773 00:24:28,840 --> 00:24:30,189 so forth. 774 00:24:30,190 --> 00:24:31,659 There are definitely some cheap market 775 00:24:31,660 --> 00:24:33,549 controllers you can get out of China, but 776 00:24:33,550 --> 00:24:34,809 they're not very open source friendly. 777 00:24:34,810 --> 00:24:36,849 So we kind of threw those out. 778 00:24:36,850 --> 00:24:38,619 There's some very popular ones like the 779 00:24:38,620 --> 00:24:40,059 at Mega, but they don't have the 780 00:24:40,060 --> 00:24:41,979 performance and they're also very two way 781 00:24:41,980 --> 00:24:43,449 too expensive. And then you get down to 782 00:24:43,450 --> 00:24:44,919 some of the other ones, like the Piecyk 783 00:24:44,920 --> 00:24:47,799 for the XM seven thousand LPC series. 784 00:24:47,800 --> 00:24:49,509 And basically we found is anything under 785 00:24:49,510 --> 00:24:51,489 one dollars that range didn't have the 786 00:24:51,490 --> 00:24:53,739 performance that we needed, which 787 00:24:53,740 --> 00:24:55,479 left us with basically one of two 788 00:24:55,480 --> 00:24:57,639 options, either ASTM three to the 789 00:24:57,640 --> 00:24:59,379 ELIGIO series or the kiddo's Caillaux 790 00:24:59,380 --> 00:25:00,519 two. 791 00:25:00,520 --> 00:25:02,739 We settled on a Cornetist that's 792 00:25:02,740 --> 00:25:06,099 currently one of my favorite series, 793 00:25:06,100 --> 00:25:07,599 probably mostly just personal bias. 794 00:25:07,600 --> 00:25:09,699 I guess it's a forty eight 795 00:25:09,700 --> 00:25:11,829 megahertz cortex M0 plus, 796 00:25:11,830 --> 00:25:13,449 which means it does a thirty two bit 797 00:25:13,450 --> 00:25:14,829 single cycle multiply. 798 00:25:14,830 --> 00:25:17,019 Very important for the DSP has 799 00:25:17,020 --> 00:25:20,259 32 K of flash twelve bits Zadak 800 00:25:20,260 --> 00:25:22,089 in volume it's about 90 cents to ninety 801 00:25:22,090 --> 00:25:23,559 seven cents which is good. 802 00:25:23,560 --> 00:25:24,729 There's no NDA required for the 803 00:25:24,730 --> 00:25:26,859 documentation and unlike the system. 804 00:25:26,860 --> 00:25:28,119 Thirty two it has fast 805 00:25:29,410 --> 00:25:30,369 band capability. 806 00:25:30,370 --> 00:25:31,659 One of the weird things we found about 807 00:25:31,660 --> 00:25:33,219 the same thirty two is that we want a bit 808 00:25:33,220 --> 00:25:35,379 bang. There's this I guess a feature 809 00:25:35,380 --> 00:25:36,939 where they try to do a synchronization of 810 00:25:36,940 --> 00:25:38,979 rights through some sort of gateway into 811 00:25:38,980 --> 00:25:40,779 the GPL. But it would like means that 812 00:25:40,780 --> 00:25:42,579 your maximum bit rate, bit being rate was 813 00:25:42,580 --> 00:25:44,149 limited. It would cause trouble for 814 00:25:44,150 --> 00:25:46,269 things like driving 815 00:25:46,270 --> 00:25:47,859 twenty twelve LEDs or doing use B low 816 00:25:47,860 --> 00:25:48,860 speed. 817 00:25:49,660 --> 00:25:51,249 This is the data sheet for it. 818 00:25:51,250 --> 00:25:53,319 You can go online and read it and look it 819 00:25:53,320 --> 00:25:54,320 up all you want. 820 00:25:55,240 --> 00:25:56,829 When it comes to connecting audio, there 821 00:25:56,830 --> 00:25:59,429 are three issues you need to solve. 822 00:25:59,430 --> 00:26:00,999 You can't just put it directly into the 823 00:26:01,000 --> 00:26:02,499 microcontroller. You have to fix the DC 824 00:26:02,500 --> 00:26:04,029 offset. We have to think about the 825 00:26:04,030 --> 00:26:05,529 connector costs and height in the cabling 826 00:26:05,530 --> 00:26:07,899 issue. DC offset is important because 827 00:26:07,900 --> 00:26:10,929 audio itself isn't necessarily, 828 00:26:10,930 --> 00:26:12,819 you know, it's basically an AC coupled 829 00:26:12,820 --> 00:26:15,039 system, which means half of the the 830 00:26:15,040 --> 00:26:16,899 the waveform is going to be below ground. 831 00:26:16,900 --> 00:26:18,219 If you feed that into the microcontroller 832 00:26:18,220 --> 00:26:19,899 directly, you only get half your 833 00:26:19,900 --> 00:26:22,059 waveform. So we have to recentre the the 834 00:26:22,060 --> 00:26:23,469 the audio. 835 00:26:23,470 --> 00:26:25,089 Second is the connector cost and high 836 00:26:25,090 --> 00:26:26,169 audio connectors aren't free. 837 00:26:26,170 --> 00:26:27,609 They're also thick. 838 00:26:27,610 --> 00:26:29,709 So they're five millimeters tall. 839 00:26:29,710 --> 00:26:30,849 The tallest component, our board 840 00:26:30,850 --> 00:26:32,389 otherwise is one point seven millimeters. 841 00:26:32,390 --> 00:26:33,819 If you want to be Papakura friendly, we 842 00:26:33,820 --> 00:26:35,589 really want to make it thin so you can 843 00:26:35,590 --> 00:26:38,019 fold fold 844 00:26:38,020 --> 00:26:39,789 paper over it without having a big lump 845 00:26:39,790 --> 00:26:40,790 in the way. 846 00:26:41,320 --> 00:26:43,509 And also cabling quality cables are 847 00:26:43,510 --> 00:26:45,609 expensive and 848 00:26:45,610 --> 00:26:47,109 cables are also easy to use, especially 849 00:26:47,110 --> 00:26:48,399 in the classroom. If I have to have the 850 00:26:48,400 --> 00:26:50,049 teacher with multiple cables to plug in 851 00:26:50,050 --> 00:26:51,579 their computers, they're going to lose 852 00:26:51,580 --> 00:26:52,599 some. It's going to be frustrating 853 00:26:52,600 --> 00:26:54,009 experience for the teachers. 854 00:26:54,010 --> 00:26:56,169 So we came up with this kind of 855 00:26:56,170 --> 00:26:58,419 hybrid solution where 856 00:26:58,420 --> 00:27:00,669 we designed a cable that uses the fifth 857 00:27:00,670 --> 00:27:01,829 pin on USB. 858 00:27:03,520 --> 00:27:05,799 If you look at USB, it's commonly 859 00:27:05,800 --> 00:27:07,689 known as a four pin standard. 860 00:27:07,690 --> 00:27:08,829 But the connector. 861 00:27:08,830 --> 00:27:10,509 Has his fifth pin, which is which 862 00:27:10,510 --> 00:27:12,269 identifies whether your host or device, 863 00:27:13,750 --> 00:27:15,249 we just sort of say we don't need that, 864 00:27:15,250 --> 00:27:16,569 we're always going to be a device, we 865 00:27:16,570 --> 00:27:18,309 don't have to have a capability, and we 866 00:27:18,310 --> 00:27:20,619 just wire the left audio 867 00:27:22,210 --> 00:27:24,729 feed into that pin into our device. 868 00:27:24,730 --> 00:27:26,499 And then we created a Hydra Y shaped 869 00:27:26,500 --> 00:27:28,569 cable that gets 870 00:27:28,570 --> 00:27:30,369 us roughly two cables for the cost of one 871 00:27:30,370 --> 00:27:30,729 and a half. 872 00:27:30,730 --> 00:27:32,109 So it helps us save costs. 873 00:27:32,110 --> 00:27:34,299 It solves the thickness issue. 874 00:27:34,300 --> 00:27:36,069 And the solution ends up looking a little 875 00:27:36,070 --> 00:27:38,049 bit something like this, where you have 876 00:27:38,050 --> 00:27:40,329 one thing plugging in to the USB micro 877 00:27:40,330 --> 00:27:42,699 connector and then you have ahead 878 00:27:42,700 --> 00:27:44,649 of both an audio connector and a USB 879 00:27:44,650 --> 00:27:45,650 connector for power 880 00:27:46,810 --> 00:27:50,139 electronics solution, we 881 00:27:50,140 --> 00:27:52,719 couple with 882 00:27:52,720 --> 00:27:54,999 an answer to our network, to 883 00:27:55,000 --> 00:27:57,369 our network to center up the audio. 884 00:27:57,370 --> 00:27:58,989 The one Volpi topic of audio centers up 885 00:27:58,990 --> 00:27:59,949 nicely into three point three. 886 00:27:59,950 --> 00:28:01,449 What range of the ADC? 887 00:28:01,450 --> 00:28:03,519 SK waveforms are pure sinusoid 888 00:28:03,520 --> 00:28:04,749 so we don't have to worry about DC 889 00:28:04,750 --> 00:28:07,239 balancing. That's cheap couple since 890 00:28:07,240 --> 00:28:09,369 it turns out that there's 891 00:28:09,370 --> 00:28:10,599 a bootstrapping problem. If you ever 892 00:28:10,600 --> 00:28:12,879 touch like a Mac book or something 893 00:28:12,880 --> 00:28:14,289 and you feel that sort of like buzzing 894 00:28:14,290 --> 00:28:16,509 sensation off of it, that's because 895 00:28:16,510 --> 00:28:18,699 the case is like floating up to like 50 896 00:28:18,700 --> 00:28:20,079 volts or something like that. 897 00:28:20,080 --> 00:28:21,699 Right. And so when you go ahead and you 898 00:28:21,700 --> 00:28:23,899 plug a headphone jack in, there's 899 00:28:23,900 --> 00:28:25,749 this awful pop that comes out and that 900 00:28:25,750 --> 00:28:27,759 pop is actually enough to go ahead and 901 00:28:27,760 --> 00:28:29,919 put the microcontroller that we have 902 00:28:29,920 --> 00:28:31,119 into latch up. 903 00:28:31,120 --> 00:28:33,249 And so we have to put these like diodes 904 00:28:33,250 --> 00:28:35,589 to absorb all of that voltage difference. 905 00:28:35,590 --> 00:28:37,089 And when you first plug it in and that's 906 00:28:37,090 --> 00:28:38,439 actually the most expensive part of the 907 00:28:38,440 --> 00:28:40,419 design, it's seven cents. 908 00:28:40,420 --> 00:28:42,699 And then and then we wired 909 00:28:42,700 --> 00:28:44,769 up the B, D plus D minus lines 910 00:28:44,770 --> 00:28:45,819 PHMSA. Why not? 911 00:28:45,820 --> 00:28:47,619 And it turns out, well, if you went to 912 00:28:47,620 --> 00:28:48,909 Seans excellent. 913 00:28:48,910 --> 00:28:51,039 Yesterday he implemented low speed USB 914 00:28:51,040 --> 00:28:53,139 stack that allows us to essentially turn 915 00:28:53,140 --> 00:28:55,239 LDC into something like it, make you make 916 00:28:55,240 --> 00:28:57,219 if you want at the end of the day, or you 917 00:28:57,220 --> 00:28:58,689 can just use the non-complying bug port, 918 00:28:58,690 --> 00:29:01,449 you get your ARC's and out of the thing. 919 00:29:01,450 --> 00:29:03,599 So in the software side, we just do not 920 00:29:03,600 --> 00:29:05,650 coherent kadia modulation. 921 00:29:06,850 --> 00:29:08,919 It means we involved incoming samples 922 00:29:08,920 --> 00:29:10,549 by the sign cosine of each frequency. 923 00:29:10,550 --> 00:29:12,789 So we have to do four convolutions, each 924 00:29:12,790 --> 00:29:14,019 convolutions a series and multiply 925 00:29:14,020 --> 00:29:16,359 accumulates. That's 250 multiply Kumuls 926 00:29:16,360 --> 00:29:17,499 per sample at a sampling rate. 927 00:29:17,500 --> 00:29:19,419 That's 20 million multiply combinations 928 00:29:19,420 --> 00:29:20,739 per second, hence the performance 929 00:29:20,740 --> 00:29:21,820 requirement of the MCU. 930 00:29:23,590 --> 00:29:26,049 We sort of started from the modem 931 00:29:26,050 --> 00:29:28,599 and sort of refined 932 00:29:28,600 --> 00:29:29,799 it until we have what we have now. 933 00:29:29,800 --> 00:29:31,959 You can see the two repro links for 934 00:29:31,960 --> 00:29:34,329 it at the three JTC setting. 935 00:29:34,330 --> 00:29:35,919 It uses about sixty five percent of the 936 00:29:35,920 --> 00:29:38,019 CPU, so 937 00:29:38,020 --> 00:29:39,969 there's not a lot of CPU left over for 938 00:29:39,970 --> 00:29:41,649 doing anything else. If we miss a packet, 939 00:29:41,650 --> 00:29:42,999 there's not enough RAM for me to buffer 940 00:29:43,000 --> 00:29:44,529 anything. This all has to happen online. 941 00:29:44,530 --> 00:29:47,019 So if we have to do CRC or hash checking 942 00:29:47,020 --> 00:29:49,119 or for error correction, all has 943 00:29:49,120 --> 00:29:50,889 to happen in parallel with with the 944 00:29:50,890 --> 00:29:52,479 modulation of the audio. 945 00:29:52,480 --> 00:29:54,279 And so this gets me into what I call the 946 00:29:54,280 --> 00:29:55,899 Mac layer. It's not really a Mac layer, 947 00:29:55,900 --> 00:29:58,989 but this is sort of like how we deal with 948 00:29:58,990 --> 00:30:01,479 sort of errors and so forth. 949 00:30:01,480 --> 00:30:03,639 The audio starts with the Herald, 950 00:30:03,640 --> 00:30:04,989 a control packet. 951 00:30:04,990 --> 00:30:07,119 If you actually listen to the 952 00:30:07,120 --> 00:30:08,739 stream, you'll hear a little versus 953 00:30:08,740 --> 00:30:10,569 static and then about a one second pause 954 00:30:10,570 --> 00:30:12,309 and then the other stuff coming through. 955 00:30:12,310 --> 00:30:13,929 The reason why the Herald packet comes 956 00:30:13,930 --> 00:30:15,429 first is that you want enough time for 957 00:30:15,430 --> 00:30:17,709 the microcontroller to erase its flash 958 00:30:17,710 --> 00:30:19,479 block. If it if if it's going to be 959 00:30:19,480 --> 00:30:20,619 reprogramed. 960 00:30:20,620 --> 00:30:21,609 Otherwise you're sending data. 961 00:30:21,610 --> 00:30:23,199 Well, it's flash and that takes a long 962 00:30:23,200 --> 00:30:24,200 time. 963 00:30:24,940 --> 00:30:27,459 Every single packet is protected 964 00:30:27,460 --> 00:30:28,839 with a minimum of three hash. 965 00:30:28,840 --> 00:30:30,489 We pick that because it's thirty two bit 966 00:30:30,490 --> 00:30:31,840 hash and it's fast and small 967 00:30:32,950 --> 00:30:34,719 and we have to compute this in line with 968 00:30:34,720 --> 00:30:35,139 SK. 969 00:30:35,140 --> 00:30:36,669 We couldn't do anything like five or 970 00:30:36,670 --> 00:30:38,529 anything more computationally expensive 971 00:30:38,530 --> 00:30:40,449 because we just couldn't fit it into the 972 00:30:40,450 --> 00:30:41,450 inner loop. 973 00:30:42,130 --> 00:30:44,019 We also had to do some bad striping. 974 00:30:44,020 --> 00:30:46,179 So in order, in order to recover 975 00:30:46,180 --> 00:30:47,319 the board rate, you have to have enough 976 00:30:47,320 --> 00:30:48,999 transitions. So we do a simple thing and 977 00:30:49,000 --> 00:30:51,069 we xor every seventh byte with five, five 978 00:30:51,070 --> 00:30:51,999 and every fifty five. 979 00:30:52,000 --> 00:30:54,789 With AA, we get enough transitions 980 00:30:54,790 --> 00:30:56,529 with typical computer code. 981 00:30:56,530 --> 00:30:58,059 I mean of course you can create something 982 00:30:58,060 --> 00:30:59,679 pathological that doesn't work for this, 983 00:30:59,680 --> 00:31:01,839 but usually compiled 984 00:31:01,840 --> 00:31:03,429 code doesn't have a pattern that matches 985 00:31:03,430 --> 00:31:05,289 up exactly to that. 986 00:31:05,290 --> 00:31:07,509 And, and then the data 987 00:31:07,510 --> 00:31:09,309 packets himself a sync header version, 988 00:31:09,310 --> 00:31:11,139 some sequence number and the whole thing 989 00:31:11,140 --> 00:31:12,909 is again protecting the hash. 990 00:31:12,910 --> 00:31:15,189 And then our factor for error correction 991 00:31:15,190 --> 00:31:17,139 is we transmit the data three times. 992 00:31:17,140 --> 00:31:19,239 So pure 993 00:31:19,240 --> 00:31:21,579 redundancy, it's not really like XY 994 00:31:21,580 --> 00:31:22,719 or anything like that. 995 00:31:22,720 --> 00:31:24,279 And the reason why we had to do it, this 996 00:31:24,280 --> 00:31:25,839 is there's no back channel like 997 00:31:25,840 --> 00:31:27,559 microphone pendants aren't standard. 998 00:31:27,560 --> 00:31:28,719 If you ever try to take an Android 999 00:31:28,720 --> 00:31:30,879 headset, plug it into an iPhone or vice 1000 00:31:30,880 --> 00:31:33,039 versa, you you know the frustration. 1001 00:31:33,040 --> 00:31:34,719 And we want to avoid people having 1002 00:31:34,720 --> 00:31:36,309 unexpected bad surprises. 1003 00:31:36,310 --> 00:31:38,349 So we had to build a protocol that was 1004 00:31:38,350 --> 00:31:40,509 feed forward. Only errors do 1005 00:31:40,510 --> 00:31:42,099 happen in transmission. So, for example, 1006 00:31:42,100 --> 00:31:44,079 if you're programing for a smartphone and 1007 00:31:44,080 --> 00:31:45,339 someone sends you a notification in the 1008 00:31:45,340 --> 00:31:47,049 middle of a ping, and that will cause an 1009 00:31:47,050 --> 00:31:48,999 error, which will make your packet go 1010 00:31:49,000 --> 00:31:51,219 away. And so we have to do a 1011 00:31:51,220 --> 00:31:53,469 transmission and we find that three 1012 00:31:53,470 --> 00:31:55,029 times is is enough to basically get 1013 00:31:55,030 --> 00:31:57,279 through almost every condition. 1014 00:31:57,280 --> 00:31:59,109 And also because 60 percent of the CPU 1015 00:31:59,110 --> 00:32:00,219 and almost all the RAM is used for 1016 00:32:00,220 --> 00:32:02,319 demodulator and there's no CPU arama for 1017 00:32:02,320 --> 00:32:04,689 any error correction code like Heming 1018 00:32:04,690 --> 00:32:06,519 or that we just rely on redundancy and 1019 00:32:06,520 --> 00:32:07,520 pre. 1020 00:32:09,060 --> 00:32:10,349 A little more about the next flare up 1021 00:32:10,350 --> 00:32:12,299 once you get the code in, what happens 1022 00:32:12,300 --> 00:32:14,129 next? We have an audio update or 1023 00:32:14,130 --> 00:32:16,439 bootloader. If the code's good, we jump 1024 00:32:16,440 --> 00:32:18,599 into Chiba's, which is a full 1025 00:32:18,600 --> 00:32:21,269 multithreaded Michoacana 1026 00:32:21,270 --> 00:32:23,339 OS and has 1027 00:32:23,340 --> 00:32:24,809 a bunch of application threads beneath 1028 00:32:24,810 --> 00:32:27,209 it. Out of the three to Kayin Flash, 1029 00:32:27,210 --> 00:32:29,169 we use twenty two K for the bootloader 1030 00:32:29,170 --> 00:32:31,319 six calls in the OS a bit for 1031 00:32:31,320 --> 00:32:32,939 some signature and interruptible 1032 00:32:32,940 --> 00:32:34,259 management and it leaves nine and a half 1033 00:32:34,260 --> 00:32:36,779 K for user application code. 1034 00:32:36,780 --> 00:32:38,669 Now Chbosky, even though it has named 1035 00:32:38,670 --> 00:32:40,259 chivvy has nothing to do with Chibi 1036 00:32:40,260 --> 00:32:41,579 Tronic. So I want to be very clear in 1037 00:32:41,580 --> 00:32:43,889 that it's made by this guy Giovanni 1038 00:32:43,890 --> 00:32:45,369 de Sirio. 1039 00:32:45,370 --> 00:32:47,459 He's it's very actively developed 1040 00:32:47,460 --> 00:32:49,229 and maintained. 1041 00:32:49,230 --> 00:32:51,060 I'm particularly fond of the OS 1042 00:32:52,170 --> 00:32:54,449 and the TV is just borrowed 1043 00:32:54,450 --> 00:32:56,339 from Japanese, which means cute or tiny 1044 00:32:56,340 --> 00:32:57,929 or small. So it's appropriate. 1045 00:32:57,930 --> 00:32:58,930 In both cases. 1046 00:33:00,180 --> 00:33:02,429 The Chiba's itself has a high abstraction 1047 00:33:02,430 --> 00:33:03,959 period of multi threading semaphores, 1048 00:33:03,960 --> 00:33:06,929 kyuss, synchronous 1049 00:33:06,930 --> 00:33:08,369 thread, safe memory pools and Elkader. 1050 00:33:08,370 --> 00:33:10,319 So it's a very it's a feature full 1051 00:33:10,320 --> 00:33:11,549 feature rich OS. 1052 00:33:11,550 --> 00:33:12,930 It fits in a few kilobytes 1053 00:33:14,220 --> 00:33:16,529 jobs added to it, a Cisco extension, 1054 00:33:16,530 --> 00:33:18,239 which allows us to essentially do dynamic 1055 00:33:18,240 --> 00:33:20,189 linking users to arms. 1056 00:33:20,190 --> 00:33:22,259 We see call mechanism to create two and a 1057 00:33:22,260 --> 00:33:23,849 two hundred and fifty six thunks 1058 00:33:24,900 --> 00:33:27,029 that allow us to share our space 1059 00:33:27,030 --> 00:33:28,629 code with the application code to 1060 00:33:28,630 --> 00:33:31,289 implement the Arduino emulation layer, 1061 00:33:31,290 --> 00:33:32,759 Epuron, hybrid emulation, all that sort 1062 00:33:32,760 --> 00:33:34,499 of stuff. And the reason why we did that 1063 00:33:34,500 --> 00:33:36,389 is we had to fit within the patients of a 1064 00:33:36,390 --> 00:33:37,949 child constraint. 1065 00:33:37,950 --> 00:33:40,019 So eight thousand bits 1066 00:33:40,020 --> 00:33:41,759 per second means about one second per 1067 00:33:41,760 --> 00:33:43,829 kilobyte of code uploaded in a child 1068 00:33:43,830 --> 00:33:46,259 will lose interest in about five seconds. 1069 00:33:48,950 --> 00:33:50,239 OK, now the children aren't listening 1070 00:33:50,240 --> 00:33:51,240 anymore. 1071 00:33:52,100 --> 00:33:54,889 Basically, the baseline Ardino 1072 00:33:54,890 --> 00:33:56,839 zero binary was about eight kilobytes 1073 00:33:56,840 --> 00:33:58,159 when we first started looking at it and 1074 00:33:58,160 --> 00:33:59,239 then we've been about eight seconds to 1075 00:33:59,240 --> 00:34:00,509 just get the baseline. 1076 00:34:00,510 --> 00:34:02,899 And so we wanted the average binary size 1077 00:34:02,900 --> 00:34:05,239 to be less than a kilobyte. 1078 00:34:05,240 --> 00:34:07,519 So we did this, the Cisco extension, 1079 00:34:07,520 --> 00:34:09,349 to try and preload most of the bloated, 1080 00:34:09,350 --> 00:34:10,908 commonly used libraries and our doing 1081 00:34:10,909 --> 00:34:12,529 like floating point operators and string 1082 00:34:12,530 --> 00:34:14,629 operations and also try 1083 00:34:14,630 --> 00:34:16,519 to streamline the general loading process 1084 00:34:16,520 --> 00:34:18,619 as a whole. So typically, 1085 00:34:18,620 --> 00:34:20,718 the average getting kind of a world 1086 00:34:20,719 --> 00:34:22,099 getting started binary is just a few 1087 00:34:22,100 --> 00:34:24,229 hundred bytes and even 1088 00:34:24,230 --> 00:34:25,309 the bigger programs are only a few 1089 00:34:25,310 --> 00:34:27,408 kilobytes. And so when you want to 1090 00:34:27,409 --> 00:34:29,089 compare the available code Space Odyssey 1091 00:34:29,090 --> 00:34:31,488 in Arduino versus LTC, consider 1092 00:34:31,489 --> 00:34:33,049 that we've already preload about 12 1093 00:34:33,050 --> 00:34:34,729 kilobytes of of libraries. 1094 00:34:35,800 --> 00:34:37,899 And significantly, I wanted 1095 00:34:37,900 --> 00:34:39,549 to make sure I wanted to make a product 1096 00:34:39,550 --> 00:34:41,649 that was not just for kids, 1097 00:34:41,650 --> 00:34:44,738 so the LTC itself 1098 00:34:44,739 --> 00:34:46,899 extends from novice to startup. 1099 00:34:46,900 --> 00:34:49,089 We want to create an onramp that 1100 00:34:49,090 --> 00:34:51,099 can eventually lead to professional level 1101 00:34:51,100 --> 00:34:52,479 development. I didn't want to create 1102 00:34:52,480 --> 00:34:53,799 something where if you got into it and 1103 00:34:53,800 --> 00:34:55,238 you just sort of ran off a cliff and you 1104 00:34:55,239 --> 00:34:56,408 couldn't go any further. 1105 00:34:56,409 --> 00:34:58,509 So, for example, the threading APIs 1106 00:34:58,510 --> 00:34:59,889 are exposed and assist calls 1107 00:35:01,090 --> 00:35:03,369 the we want to make direct OS 1108 00:35:03,370 --> 00:35:05,049 a bootloader development possible via 1109 00:35:05,050 --> 00:35:07,089 open OKd. If you saw Zabar talk 1110 00:35:07,090 --> 00:35:08,409 yesterday, you would know how to do that. 1111 00:35:09,490 --> 00:35:11,409 We made sure that the hardware components 1112 00:35:11,410 --> 00:35:14,169 were China ready, but also 1113 00:35:14,170 --> 00:35:15,979 compatible with small scale prototyping. 1114 00:35:15,980 --> 00:35:17,709 So if you were to get into this and say, 1115 00:35:17,710 --> 00:35:18,849 hey, I've built something and I want to 1116 00:35:18,850 --> 00:35:20,379 make a few more of them, you have the 1117 00:35:20,380 --> 00:35:22,089 option of both going a digital key. 1118 00:35:22,090 --> 00:35:23,649 And if you want to build even a few more 1119 00:35:23,650 --> 00:35:24,759 of those, you have the option of going to 1120 00:35:24,760 --> 00:35:25,089 China. 1121 00:35:25,090 --> 00:35:27,699 And both of them are very low friction 1122 00:35:27,700 --> 00:35:28,749 in that case. 1123 00:35:28,750 --> 00:35:30,429 And of course, everything's all open 1124 00:35:30,430 --> 00:35:33,429 source can go to GitHub and 1125 00:35:33,430 --> 00:35:34,609 either to mine his rebote. 1126 00:35:34,610 --> 00:35:36,759 You can find all of the the stuff 1127 00:35:36,760 --> 00:35:37,719 there. 1128 00:35:37,720 --> 00:35:40,209 That little section down there is 1129 00:35:40,210 --> 00:35:42,099 just a display of the multi threading 1130 00:35:42,100 --> 00:35:43,780 interface inside Chbosky. 1131 00:35:45,270 --> 00:35:47,159 And so finally, talking a little bit 1132 00:35:47,160 --> 00:35:49,139 about the the experience later, the user 1133 00:35:49,140 --> 00:35:50,140 experience, 1134 00:35:51,210 --> 00:35:53,489 it's important that we had a very sort 1135 00:35:53,490 --> 00:35:55,529 of simple user experience at the end day 1136 00:35:55,530 --> 00:35:56,489 that just always worked. 1137 00:35:56,490 --> 00:35:59,099 So it's a Web based 1138 00:35:59,100 --> 00:36:01,079 interface where where you can go ahead 1139 00:36:01,080 --> 00:36:03,749 and code and you can pull up some 1140 00:36:03,750 --> 00:36:05,939 examples and 1141 00:36:05,940 --> 00:36:08,249 then just hit upload and it starts 1142 00:36:08,250 --> 00:36:10,989 playing out your compiled code as 1143 00:36:10,990 --> 00:36:12,659 well as sound. 1144 00:36:12,660 --> 00:36:14,819 There's a little bit of stuff behind it 1145 00:36:14,820 --> 00:36:16,859 that had to be implement to make that 1146 00:36:16,860 --> 00:36:19,109 happen. So we have Web 1147 00:36:19,110 --> 00:36:21,299 videos and examples that uses Code 1148 00:36:21,300 --> 00:36:23,939 Mirah as its base and 1149 00:36:23,940 --> 00:36:25,529 you can store your sketches locally using 1150 00:36:25,530 --> 00:36:27,449 Web storage. But if you want to go ahead 1151 00:36:27,450 --> 00:36:30,239 and, you know, 1152 00:36:30,240 --> 00:36:32,069 share your code, we would like to point 1153 00:36:32,070 --> 00:36:33,659 people towards GitHub because that's 1154 00:36:33,660 --> 00:36:34,889 that's where we should point people. 1155 00:36:34,890 --> 00:36:35,890 I think 1156 00:36:37,650 --> 00:36:39,779 the final C files that 1157 00:36:39,780 --> 00:36:41,099 you want to upload are then sent to a 1158 00:36:41,100 --> 00:36:42,329 server. 1159 00:36:42,330 --> 00:36:44,549 It's a it's a docker image that's Cuban. 1160 00:36:44,550 --> 00:36:46,619 It already turns 1161 00:36:46,620 --> 00:36:48,389 into a binary which is sent back to the 1162 00:36:48,390 --> 00:36:50,459 browser. And then there's a web, an audio 1163 00:36:50,460 --> 00:36:52,619 modulator that attempts to 1164 00:36:52,620 --> 00:36:54,719 modulate it using web audio or wave 1165 00:36:54,720 --> 00:36:55,889 via JavaScript. 1166 00:36:55,890 --> 00:36:58,199 And if an error happens, we actually have 1167 00:36:58,200 --> 00:37:00,269 maybe three fallback mechanism where 1168 00:37:00,270 --> 00:37:02,129 we would then modulate on the server side 1169 00:37:02,130 --> 00:37:03,979 and MP three, send it over and then have 1170 00:37:03,980 --> 00:37:05,610 to do an MP three player embed 1171 00:37:07,440 --> 00:37:09,539 the compilation server requirements that 1172 00:37:09,540 --> 00:37:11,219 we want to have like very minimal 1173 00:37:11,220 --> 00:37:11,939 bandwidth requirements. 1174 00:37:11,940 --> 00:37:13,499 So we want to be able to run the server 1175 00:37:13,500 --> 00:37:15,689 like forever and not have to be 1176 00:37:15,690 --> 00:37:17,789 burdened by its its cost. 1177 00:37:17,790 --> 00:37:19,589 And so the average sketch is about a 1178 00:37:19,590 --> 00:37:21,269 kilobyte in the average binder's about a 1179 00:37:21,270 --> 00:37:23,549 kilobyte when you want 1180 00:37:23,550 --> 00:37:25,319 to buy this thing. Visiting our store 1181 00:37:25,320 --> 00:37:26,879 pushes over megabyte of content. 1182 00:37:26,880 --> 00:37:29,399 So we figure that was fine 1183 00:37:29,400 --> 00:37:31,139 if we were willing to to serve you the 1184 00:37:31,140 --> 00:37:33,299 images to to to 1185 00:37:33,300 --> 00:37:34,889 buy this thing, we can certainly serve 1186 00:37:34,890 --> 00:37:36,659 you the bandwidth to compile for it for 1187 00:37:36,660 --> 00:37:37,660 quite a long time. 1188 00:37:39,180 --> 00:37:41,549 The overall design itself is stateless, 1189 00:37:41,550 --> 00:37:43,679 so it's legally difficult to obtain 1190 00:37:43,680 --> 00:37:45,389 consent from people who are under 13 1191 00:37:45,390 --> 00:37:47,399 years old to store their data. 1192 00:37:47,400 --> 00:37:48,929 And so it's a very important feature to 1193 00:37:48,930 --> 00:37:50,099 us that we have no user accounts. 1194 00:37:50,100 --> 00:37:51,539 We don't want your stinking data. 1195 00:37:51,540 --> 00:37:53,489 And if you want to go ahead and share 1196 00:37:53,490 --> 00:37:54,989 with people, you go to get Hub and you 1197 00:37:54,990 --> 00:37:56,819 and you and you share it via their 1198 00:37:56,820 --> 00:37:58,229 planned future. But we should have that 1199 00:37:58,230 --> 00:38:00,719 in this greatly simplified 1200 00:38:00,720 --> 00:38:02,459 scalability maintenance. 1201 00:38:02,460 --> 00:38:04,289 So as we need to go ahead and scale up, 1202 00:38:04,290 --> 00:38:05,519 we just spent more instances. 1203 00:38:05,520 --> 00:38:07,019 If one of them falls over, we don't care. 1204 00:38:07,020 --> 00:38:08,909 We know there's no databases to restore. 1205 00:38:08,910 --> 00:38:11,039 There's no concerns about 1206 00:38:11,040 --> 00:38:12,509 losing user data and whatnot. 1207 00:38:12,510 --> 00:38:13,859 And so you can go ahead. 1208 00:38:13,860 --> 00:38:14,939 We have some darker images. 1209 00:38:14,940 --> 00:38:16,139 If you want to spend them up and run them 1210 00:38:16,140 --> 00:38:18,209 yourself and reduce our load, you can do 1211 00:38:18,210 --> 00:38:19,210 that as well. 1212 00:38:20,490 --> 00:38:22,979 So our audio modulation, 1213 00:38:22,980 --> 00:38:25,079 we needed a just works method 1214 00:38:25,080 --> 00:38:27,209 that doesn't involve uploading kilobyte 1215 00:38:27,210 --> 00:38:28,529 audio files. 1216 00:38:28,530 --> 00:38:31,229 Web audio would have been ideal, 1217 00:38:31,230 --> 00:38:33,479 except that as of 1218 00:38:33,480 --> 00:38:35,850 like late 2013, 1219 00:38:36,960 --> 00:38:38,909 it wasn't supported in OSX. 1220 00:38:39,930 --> 00:38:41,549 And if you look at sort of the school 1221 00:38:41,550 --> 00:38:43,739 environment or kids, a lot of times kids 1222 00:38:43,740 --> 00:38:44,969 are getting hand-me-down phones from 1223 00:38:44,970 --> 00:38:45,749 parents. 1224 00:38:45,750 --> 00:38:48,299 And so 2013 1225 00:38:48,300 --> 00:38:49,589 is kind of the range you start bumping 1226 00:38:49,590 --> 00:38:51,749 into. When we did, early tests and field 1227 00:38:51,750 --> 00:38:53,339 trials are finding kids are like, oh, my 1228 00:38:53,340 --> 00:38:55,439 browsers too old, I can't modulate 1229 00:38:55,440 --> 00:38:57,329 the modulate. 1230 00:38:57,330 --> 00:38:59,789 So you go into wave, 1231 00:38:59,790 --> 00:39:01,499 which can be generally browser side by 1232 00:39:01,500 --> 00:39:03,029 JavaScript and now you have eighty nine 1233 00:39:03,030 --> 00:39:04,319 percent of the browser supporting this 1234 00:39:04,320 --> 00:39:05,369 and you have to go all the way back to 1235 00:39:05,370 --> 00:39:07,649 two thousand nine to really old versus 1236 00:39:07,650 --> 00:39:09,869 Safari before you 1237 00:39:09,870 --> 00:39:11,099 lose support for that. 1238 00:39:11,100 --> 00:39:13,529 That seems all good, except there's like 1239 00:39:13,530 --> 00:39:15,719 this red column on the left, which 1240 00:39:15,720 --> 00:39:17,909 is Internet Explorer and you're 1241 00:39:17,910 --> 00:39:19,829 like, oh, why do we care about Internet 1242 00:39:19,830 --> 00:39:22,079 Explorer? It turns out that twenty seven 1243 00:39:22,080 --> 00:39:23,909 percent of desktop installs are Internet 1244 00:39:23,910 --> 00:39:25,379 Explorer. That's as of August. 1245 00:39:25,380 --> 00:39:26,699 Twenty sixteen Wikipedia, if you can 1246 00:39:26,700 --> 00:39:28,799 believe it. But what we're finding in 1247 00:39:28,800 --> 00:39:31,019 particular is that it's 1248 00:39:31,020 --> 00:39:33,359 significantly highly used in schools 1249 00:39:33,360 --> 00:39:35,519 and institutions with inflexible IT 1250 00:39:35,520 --> 00:39:37,169 policies to get windows install it. 1251 00:39:37,170 --> 00:39:38,549 They don't want you install anything on 1252 00:39:38,550 --> 00:39:40,069 these things. And so you're stuck with an 1253 00:39:40,070 --> 00:39:41,009 explorer and a lot of school 1254 00:39:41,010 --> 00:39:42,059 environments. 1255 00:39:42,060 --> 00:39:45,119 And so in order to handle that situation, 1256 00:39:45,120 --> 00:39:47,049 we offer we would fall back to the server 1257 00:39:47,050 --> 00:39:48,779 side codecs and an empty three file, 1258 00:39:48,780 --> 00:39:51,989 which as of I9, 1259 00:39:51,990 --> 00:39:53,159 you can go ahead and play that. 1260 00:39:53,160 --> 00:39:55,319 So hopefully this gets us 1261 00:39:55,320 --> 00:39:56,699 pretty good coverage. It's about ninety 1262 00:39:56,700 --> 00:39:58,349 three percent of the browsers out there. 1263 00:40:00,330 --> 00:40:02,189 So the net result at the end of day 1264 00:40:02,190 --> 00:40:04,319 whoops of all of 1265 00:40:04,320 --> 00:40:06,389 this is that we have 1266 00:40:06,390 --> 00:40:08,609 broad compatibility and 1267 00:40:08,610 --> 00:40:09,929 simplicity and ease of use. 1268 00:40:09,930 --> 00:40:11,969 We have a device that can be programed 1269 00:40:11,970 --> 00:40:14,189 with everything from a smartphone 1270 00:40:14,190 --> 00:40:16,409 to a laptop to even if you 1271 00:40:16,410 --> 00:40:19,199 had a high enough fidelity record player 1272 00:40:19,200 --> 00:40:21,299 or cassette tape, you could go ahead and 1273 00:40:21,300 --> 00:40:24,599 record your songs onto those. 1274 00:40:24,600 --> 00:40:25,889 Part of the idea that this is that we 1275 00:40:25,890 --> 00:40:28,259 wanted to try and draw in people 1276 00:40:28,260 --> 00:40:30,239 who would even be afraid to code in the 1277 00:40:30,240 --> 00:40:32,339 first place, but had some desire to 1278 00:40:32,340 --> 00:40:33,719 customize their technology. 1279 00:40:33,720 --> 00:40:35,969 So if you're a crafter and you want 1280 00:40:35,970 --> 00:40:38,069 to create a certain pattern of lights and 1281 00:40:38,070 --> 00:40:39,540 you don't think coding is for you, 1282 00:40:40,590 --> 00:40:42,239 we want those people to be like help. 1283 00:40:42,240 --> 00:40:43,349 You know, I want to have something that 1284 00:40:43,350 --> 00:40:44,299 does this sort of thing and. 1285 00:40:44,300 --> 00:40:45,739 Someone could share you their song and 1286 00:40:45,740 --> 00:40:46,999 they could then program it and be like, 1287 00:40:47,000 --> 00:40:49,129 oh, hey, look, I can control 1288 00:40:49,130 --> 00:40:50,989 I can modify my technology, this is 1289 00:40:50,990 --> 00:40:52,399 something I can do. 1290 00:40:52,400 --> 00:40:53,749 But then hopefully they would be like, I 1291 00:40:53,750 --> 00:40:54,679 want to do a little more. I want to learn 1292 00:40:54,680 --> 00:40:56,089 more. And then they then it's like, well, 1293 00:40:56,090 --> 00:40:57,439 maybe I should just look at the code and 1294 00:40:57,440 --> 00:40:58,699 they find it just a bunch of numbers. 1295 00:40:58,700 --> 00:41:00,799 They change. All of a sudden they're 1296 00:41:00,800 --> 00:41:02,239 sort of tricked into getting into the 1297 00:41:02,240 --> 00:41:04,309 whole coding exercise 1298 00:41:04,310 --> 00:41:06,409 by by sort of being 1299 00:41:06,410 --> 00:41:08,089 pulled into the idea that technology is 1300 00:41:08,090 --> 00:41:09,799 something they control and not something 1301 00:41:09,800 --> 00:41:11,509 that they're sort of beholden to at the 1302 00:41:11,510 --> 00:41:12,510 end of the day. 1303 00:41:13,070 --> 00:41:15,139 So LTC fosters diversity through 1304 00:41:15,140 --> 00:41:17,299 a combination of of balance, 1305 00:41:17,300 --> 00:41:20,099 familiarity and simplicity. 1306 00:41:20,100 --> 00:41:22,159 You know, we look at 1307 00:41:22,160 --> 00:41:24,650 making sure that the curriculum itself 1308 00:41:25,760 --> 00:41:26,760 balances 1309 00:41:28,130 --> 00:41:31,219 design and engineering, 1310 00:41:31,220 --> 00:41:33,320 and we try to use familiar 1311 00:41:34,430 --> 00:41:35,930 interfaces materials 1312 00:41:37,460 --> 00:41:39,979 such as paper and copper tape 1313 00:41:39,980 --> 00:41:42,139 and so forth, to try and 1314 00:41:42,140 --> 00:41:43,459 bring more people in. 1315 00:41:43,460 --> 00:41:45,679 And we shoot for a very, 1316 00:41:45,680 --> 00:41:47,899 very simple experience 1317 00:41:47,900 --> 00:41:49,999 getting started through the Web 1318 00:41:50,000 --> 00:41:51,920 based interface with the audio upload. 1319 00:41:53,270 --> 00:41:55,369 So at the end of day, opensource is 1320 00:41:55,370 --> 00:41:57,529 built on inclusiveness, it's 1321 00:41:57,530 --> 00:41:59,329 not just about sort of committing and 1322 00:41:59,330 --> 00:42:01,459 forgetting, it's all about 1323 00:42:01,460 --> 00:42:02,659 pulling, emerging and talking. 1324 00:42:02,660 --> 00:42:03,919 You'll have to always take the pull 1325 00:42:03,920 --> 00:42:05,779 requests. But it's really important to 1326 00:42:05,780 --> 00:42:07,969 accept new ideas and 1327 00:42:07,970 --> 00:42:10,369 to improve the code base. 1328 00:42:10,370 --> 00:42:13,129 And so if we care about 1329 00:42:13,130 --> 00:42:14,839 open source, we need to empower more of 1330 00:42:14,840 --> 00:42:16,879 society to understand its value, or 1331 00:42:16,880 --> 00:42:19,999 society can determine its value for us 1332 00:42:20,000 --> 00:42:21,709 in a vote. And if they don't understand 1333 00:42:21,710 --> 00:42:23,779 what they're voting on, it could it 1334 00:42:23,780 --> 00:42:25,669 could be that it doesn't necessarily go 1335 00:42:25,670 --> 00:42:27,049 in the most enlightened fashion. 1336 00:42:28,220 --> 00:42:30,349 And so that's why talk 1337 00:42:30,350 --> 00:42:33,079 about the love to code platform. 1338 00:42:33,080 --> 00:42:35,629 We'll have a beta in twenty seventeen. 1339 00:42:35,630 --> 00:42:37,069 You can follow Chibi Tronox or visit 1340 00:42:37,070 --> 00:42:39,049 sheepishness that come from our updates. 1341 00:42:39,050 --> 00:42:41,059 If you go to the Faile overflow assembly, 1342 00:42:41,060 --> 00:42:43,279 this is a picture of the sign there. 1343 00:42:43,280 --> 00:42:45,409 The little lights on the bottom of the 1344 00:42:45,410 --> 00:42:46,819 of the failover for light are being 1345 00:42:46,820 --> 00:42:48,469 driven by an LGC microcontroller right 1346 00:42:48,470 --> 00:42:50,719 now. So you can walk 1347 00:42:50,720 --> 00:42:52,609 over there with your whatever device you 1348 00:42:52,610 --> 00:42:55,729 want and go to LGC Zao, 1349 00:42:55,730 --> 00:42:57,169 which is the current staging server for 1350 00:42:57,170 --> 00:42:58,249 the latest stuff. 1351 00:42:58,250 --> 00:42:59,929 Plug in the headphones, write some code 1352 00:42:59,930 --> 00:43:01,909 press and hold with the microcontroller 1353 00:43:01,910 --> 00:43:03,710 and hit upload and see what happens. 1354 00:43:04,730 --> 00:43:06,799 I think it'd be I mean, we are looking 1355 00:43:06,800 --> 00:43:08,899 for more evidence to see if our 1356 00:43:08,900 --> 00:43:11,089 stuff works truly across platforms. 1357 00:43:11,090 --> 00:43:13,099 So if you come by and it doesn't work for 1358 00:43:13,100 --> 00:43:14,959 you for some reason, we'd like to know 1359 00:43:14,960 --> 00:43:17,059 what actually has 1360 00:43:17,060 --> 00:43:18,169 gone wrong. 1361 00:43:18,170 --> 00:43:19,189 And that's it. Thank you. 1362 00:43:28,180 --> 00:43:29,180 Thank you very much, Tony. 1363 00:43:30,290 --> 00:43:32,119 And now for questions. 1364 00:43:32,120 --> 00:43:33,619 Do we have any questions from the 1365 00:43:33,620 --> 00:43:34,620 Internet? 1366 00:43:37,330 --> 00:43:39,039 And while we're getting questions from 1367 00:43:39,040 --> 00:43:40,299 the Internet and the like, working for 1368 00:43:40,300 --> 00:43:42,609 the signal angel, you can stand 1369 00:43:42,610 --> 00:43:44,349 up towards the microphones if you have 1370 00:43:44,350 --> 00:43:46,269 any questions in here. 1371 00:43:46,270 --> 00:43:47,889 And while we wait, we can have another 1372 00:43:47,890 --> 00:43:48,939 round of applause for Bunny. 1373 00:43:57,950 --> 00:43:59,899 Could we have a question from microphone 1374 00:43:59,900 --> 00:44:01,639 number one, please? 1375 00:44:01,640 --> 00:44:02,599 Hi, buddy. 1376 00:44:02,600 --> 00:44:04,479 First of all, thanks for the talk. 1377 00:44:04,480 --> 00:44:07,039 I've noticed that for the 1378 00:44:07,040 --> 00:44:09,919 development environment, you are using 1379 00:44:09,920 --> 00:44:12,859 Arduino flavored C++. 1380 00:44:12,860 --> 00:44:14,149 Are you sure? 1381 00:44:14,150 --> 00:44:16,279 Are you sure that's a good thing for 1382 00:44:16,280 --> 00:44:17,419 beginners? 1383 00:44:17,420 --> 00:44:19,639 Yeah, that's that is actually an 1384 00:44:19,640 --> 00:44:20,780 interesting debate. 1385 00:44:21,920 --> 00:44:24,109 So there are blood 1386 00:44:24,110 --> 00:44:25,879 based programing languages like Scratch 1387 00:44:25,880 --> 00:44:28,069 that are very good for beginners and 1388 00:44:28,070 --> 00:44:30,139 we have active efforts to also 1389 00:44:30,140 --> 00:44:31,609 develop that as well. 1390 00:44:33,260 --> 00:44:35,539 It's kind of my feeling that 1391 00:44:35,540 --> 00:44:36,920 I want, though, to create 1392 00:44:38,720 --> 00:44:40,369 an onramp to get people like I'm 1393 00:44:40,370 --> 00:44:41,869 targeting, sort of like people who want 1394 00:44:41,870 --> 00:44:43,759 to go to undergraduate level college 1395 00:44:43,760 --> 00:44:44,659 courses. 1396 00:44:44,660 --> 00:44:46,099 And so if you enter one of those 1397 00:44:46,100 --> 00:44:47,719 situations and you've only been doing 1398 00:44:47,720 --> 00:44:49,579 like block based programing and you 1399 00:44:49,580 --> 00:44:51,169 haven't seen the syntax and dealt with 1400 00:44:51,170 --> 00:44:54,049 semicolons and stuff, then then 1401 00:44:54,050 --> 00:44:56,059 it can be a little overwhelming. 1402 00:44:56,060 --> 00:44:58,129 And so I also don't necessarily think 1403 00:44:58,130 --> 00:45:00,679 that C++ or their libraries 1404 00:45:00,680 --> 00:45:03,380 are necessarily the best introduction, 1405 00:45:04,400 --> 00:45:06,619 but it's very well community supported 1406 00:45:06,620 --> 00:45:08,509 at this point in time. 1407 00:45:08,510 --> 00:45:10,069 I think there's like sort of like a 1408 00:45:10,070 --> 00:45:12,169 daydream that maybe we would do, like 1409 00:45:12,170 --> 00:45:13,849 we're talking today, like a rust based 1410 00:45:13,850 --> 00:45:16,189 system that could let you compile 1411 00:45:16,190 --> 00:45:17,779 and upload code to it or something that 1412 00:45:17,780 --> 00:45:19,549 that is kind of neat, neat and cool. 1413 00:45:19,550 --> 00:45:21,079 But the problem is, is so few people use 1414 00:45:21,080 --> 00:45:23,419 these languages. If people had questions 1415 00:45:23,420 --> 00:45:24,829 like we wouldn't have anyone to answer 1416 00:45:24,830 --> 00:45:25,879 them. 1417 00:45:25,880 --> 00:45:27,319 So I see. 1418 00:45:27,320 --> 00:45:29,389 Thanks. I have a question from 1419 00:45:29,390 --> 00:45:30,379 the Internet. 1420 00:45:30,380 --> 00:45:32,389 Hello. Um, there's a question from Iasi, 1421 00:45:32,390 --> 00:45:33,919 and it's a bit long. 1422 00:45:33,920 --> 00:45:35,629 How can we tackle stereotypes when the 1423 00:45:35,630 --> 00:45:37,309 image of the sweaty male teen in a 1424 00:45:37,310 --> 00:45:39,229 darkened bedroom hacking the planet is 1425 00:45:39,230 --> 00:45:40,969 the mainstream? I see this as a lack of 1426 00:45:40,970 --> 00:45:42,229 understanding of a whole number of 1427 00:45:42,230 --> 00:45:44,059 factors, notably lack of understanding of 1428 00:45:44,060 --> 00:45:45,799 the capabilities of computers and how to 1429 00:45:45,800 --> 00:45:46,519 use them. 1430 00:45:46,520 --> 00:45:48,109 The why, the lack of diversity in the 1431 00:45:48,110 --> 00:45:50,359 sciences, as well as cultural ideas of 1432 00:45:50,360 --> 00:45:52,129 what an office run by mail management is 1433 00:45:52,130 --> 00:45:54,169 like. How do you think that we can tackle 1434 00:45:54,170 --> 00:45:55,610 this type in culture? 1435 00:45:58,960 --> 00:46:01,419 All right, I 1436 00:46:01,420 --> 00:46:03,699 hope that was that was a lot of words, 1437 00:46:03,700 --> 00:46:05,139 which I which I think I'm trying to 1438 00:46:05,140 --> 00:46:06,609 trying to even pass in my head, I think 1439 00:46:06,610 --> 00:46:07,899 had a buffer overflow about halfway 1440 00:46:07,900 --> 00:46:08,900 through that, 1441 00:46:10,780 --> 00:46:11,780 I think. 1442 00:46:13,120 --> 00:46:15,249 So I caught part of it sound 1443 00:46:15,250 --> 00:46:17,019 like there's an issue with the stereotype 1444 00:46:17,020 --> 00:46:18,699 that exists in society. 1445 00:46:20,230 --> 00:46:22,719 But then then the question was, how do we 1446 00:46:22,720 --> 00:46:24,159 tackle that stereotype? 1447 00:46:24,160 --> 00:46:26,289 I guess I 1448 00:46:26,290 --> 00:46:27,399 mean, I guess the guy's not here, so he 1449 00:46:27,400 --> 00:46:29,049 can't answer. 1450 00:46:29,050 --> 00:46:30,309 Yeah, OK. 1451 00:46:30,310 --> 00:46:32,379 Um, I mean, I think I think by 1452 00:46:32,380 --> 00:46:34,459 just in general, like 1453 00:46:34,460 --> 00:46:36,579 like what we're proposing here is like it 1454 00:46:36,580 --> 00:46:38,139 starts from the beginning just becoming 1455 00:46:38,140 --> 00:46:39,549 more inclusive at a base level and 1456 00:46:39,550 --> 00:46:41,649 changing the culture and getting 1457 00:46:41,650 --> 00:46:42,579 more people involved. 1458 00:46:42,580 --> 00:46:44,139 That stereotype will naturally sort of 1459 00:46:44,140 --> 00:46:45,819 melt away as it becomes more inclusive 1460 00:46:45,820 --> 00:46:47,829 and more people become involved. 1461 00:46:47,830 --> 00:46:50,019 I think, um, I don't think 1462 00:46:50,020 --> 00:46:51,020 it's something that. 1463 00:46:52,240 --> 00:46:54,159 Yeah, it's not something that we that 1464 00:46:54,160 --> 00:46:56,319 you. How do you say you 1465 00:46:56,320 --> 00:46:57,320 can't? 1466 00:46:59,060 --> 00:47:01,429 And, um, I'm 1467 00:47:01,430 --> 00:47:03,379 having to struggle to find the words for 1468 00:47:03,380 --> 00:47:04,609 what I'm trying to say here, but I think 1469 00:47:04,610 --> 00:47:06,349 that basically at the end of day, the 1470 00:47:06,350 --> 00:47:08,419 theory that I have is that if if we 1471 00:47:08,420 --> 00:47:10,849 aim to be more open minded as a community 1472 00:47:10,850 --> 00:47:12,979 and if we aim to be more inclusive, 1473 00:47:12,980 --> 00:47:15,079 particularly at the beginning, the 1474 00:47:15,080 --> 00:47:16,519 culture should naturally grow into 1475 00:47:16,520 --> 00:47:18,619 something that has, I 1476 00:47:18,620 --> 00:47:20,849 think, less of that stereotype around 1477 00:47:20,850 --> 00:47:22,369 that people become more aware as more 1478 00:47:22,370 --> 00:47:24,439 people can become aware of how 1479 00:47:24,440 --> 00:47:25,699 we are and how we operate. 1480 00:47:25,700 --> 00:47:27,889 They will. They will they will say, hey, 1481 00:47:27,890 --> 00:47:29,299 that's not the stereotype anymore. 1482 00:47:29,300 --> 00:47:31,249 These people are all like that at the end 1483 00:47:31,250 --> 00:47:32,299 of the day. 1484 00:47:32,300 --> 00:47:34,249 I think so. 1485 00:47:34,250 --> 00:47:35,689 I have a question from microphone number 1486 00:47:35,690 --> 00:47:36,759 four. 1487 00:47:36,760 --> 00:47:38,059 Hi. Hi. 1488 00:47:38,060 --> 00:47:38,989 Yeah. 1489 00:47:38,990 --> 00:47:41,269 So my question is a little bit related 1490 00:47:41,270 --> 00:47:42,289 to the last one. 1491 00:47:42,290 --> 00:47:44,479 When I was younger, I was very 1492 00:47:44,480 --> 00:47:46,759 curious. I actually wanted to learn 1493 00:47:46,760 --> 00:47:49,399 program and more technical stuff, but 1494 00:47:49,400 --> 00:47:51,469 I just couldn't I didn't know how 1495 00:47:51,470 --> 00:47:52,909 to get the information. 1496 00:47:52,910 --> 00:47:55,309 Our school didn't really have a program. 1497 00:47:55,310 --> 00:47:57,949 So with your product, 1498 00:47:57,950 --> 00:48:00,059 you're offering a great 1499 00:48:00,060 --> 00:48:01,939 a great opportunity to learn. 1500 00:48:01,940 --> 00:48:04,129 But the problem is to get 1501 00:48:04,130 --> 00:48:06,379 it to the people who want to get 1502 00:48:06,380 --> 00:48:08,749 involved. So do you happen 1503 00:48:08,750 --> 00:48:09,869 to have a program? 1504 00:48:09,870 --> 00:48:12,679 Are you involved with school, 1505 00:48:12,680 --> 00:48:14,419 with schools or people? 1506 00:48:14,420 --> 00:48:16,999 Yeah. So that's a good point. 1507 00:48:17,000 --> 00:48:19,280 Availability and getting 1508 00:48:20,360 --> 00:48:22,159 these things into the hands of people who 1509 00:48:22,160 --> 00:48:23,569 want to do is very important. 1510 00:48:24,920 --> 00:48:26,089 And so absolutely. 1511 00:48:26,090 --> 00:48:28,819 Yes. I mean, one of the the core focuses 1512 00:48:28,820 --> 00:48:31,039 of of cheap products 1513 00:48:31,040 --> 00:48:32,629 is schools. 1514 00:48:32,630 --> 00:48:35,329 We we do a lot of outreach 1515 00:48:35,330 --> 00:48:37,669 and we try to engage with them 1516 00:48:37,670 --> 00:48:38,670 directly. 1517 00:48:39,800 --> 00:48:40,820 It's kind of 1518 00:48:42,020 --> 00:48:43,399 my marketing manager go kill me. 1519 00:48:43,400 --> 00:48:45,409 But it's like a secret that every school 1520 00:48:45,410 --> 00:48:46,639 has to get 20 percent off. 1521 00:48:46,640 --> 00:48:48,289 Right. Just just for asking and saying 1522 00:48:48,290 --> 00:48:49,519 you're a school. Right. 1523 00:48:49,520 --> 00:48:51,559 And then and so and so forth. 1524 00:48:51,560 --> 00:48:52,519 So, so like. 1525 00:48:52,520 --> 00:48:54,319 But the thing is, is like we want to give 1526 00:48:54,320 --> 00:48:55,819 discounts and get it into schools because 1527 00:48:55,820 --> 00:48:57,049 that's where it makes the most difference 1528 00:48:57,050 --> 00:48:58,050 at the end of the day. 1529 00:49:01,430 --> 00:49:03,619 Another thing is like when we were trying 1530 00:49:03,620 --> 00:49:05,779 to put together a supply chain and, you 1531 00:49:05,780 --> 00:49:07,039 know, there's a lot of effort. We went to 1532 00:49:07,040 --> 00:49:09,049 actually getting the stuff to fit in this 1533 00:49:09,050 --> 00:49:10,579 really low power, low cost 1534 00:49:10,580 --> 00:49:11,689 microcontroller at the other day. 1535 00:49:11,690 --> 00:49:13,369 And a lot of that boils down to like the 1536 00:49:13,370 --> 00:49:14,389 cheaper we can make it, the more 1537 00:49:14,390 --> 00:49:16,429 accessible the technology becomes. 1538 00:49:16,430 --> 00:49:18,559 And so we wanted to be able to create 1539 00:49:18,560 --> 00:49:20,359 something that comes at a price point 1540 00:49:20,360 --> 00:49:22,609 that schools could afford and get into 1541 00:49:22,610 --> 00:49:24,289 a situation now that they're 1542 00:49:24,290 --> 00:49:25,969 unfortunately like schools that are so 1543 00:49:25,970 --> 00:49:27,709 poor they literally can't buy dirt like 1544 00:49:27,710 --> 00:49:30,289 we were contacted by school in Pasadena 1545 00:49:30,290 --> 00:49:31,369 who was interested in it. 1546 00:49:31,370 --> 00:49:32,719 And they're like, you know, to give me an 1547 00:49:32,720 --> 00:49:34,159 idea of a situation, we had to cancel the 1548 00:49:34,160 --> 00:49:35,629 gardening program because we couldn't buy 1549 00:49:35,630 --> 00:49:37,189 dirt for the gardening program. 1550 00:49:37,190 --> 00:49:39,499 I'm like, OK, like I really 1551 00:49:39,500 --> 00:49:42,139 want to help you. But but 1552 00:49:42,140 --> 00:49:44,269 there's some other major socioeconomic 1553 00:49:44,270 --> 00:49:45,679 issues happening when your school is 1554 00:49:45,680 --> 00:49:46,789 underfunded to that point. 1555 00:49:46,790 --> 00:49:48,799 And we have to address those problems 1556 00:49:48,800 --> 00:49:51,019 maybe separately. But ideally, 1557 00:49:51,020 --> 00:49:52,849 we can we can get this into as many hands 1558 00:49:52,850 --> 00:49:54,949 as possible by focusing on the schools, 1559 00:49:55,970 --> 00:49:57,109 really. And we have at least three more 1560 00:49:57,110 --> 00:49:59,089 questions. So please remember questions 1561 00:49:59,090 --> 00:50:00,379 and comments. 1562 00:50:00,380 --> 00:50:01,879 Microphone number three, please. 1563 00:50:01,880 --> 00:50:04,069 Uh, yeah. First of all, great work. 1564 00:50:04,070 --> 00:50:06,439 I really like the idea of uploading code, 1565 00:50:06,440 --> 00:50:08,509 using audio. So I have a question to 1566 00:50:08,510 --> 00:50:10,219 the technical aspect of this. 1567 00:50:10,220 --> 00:50:12,499 So why didn't you put a microphone 1568 00:50:12,500 --> 00:50:14,719 on the PCB so you don't need to. 1569 00:50:14,720 --> 00:50:15,979 Why? 1570 00:50:15,980 --> 00:50:17,659 That's a good question. 1571 00:50:17,660 --> 00:50:19,009 We had thought about that and I thought 1572 00:50:19,010 --> 00:50:20,449 that had been really cute, except that 1573 00:50:20,450 --> 00:50:21,769 when you consider that you have a 1574 00:50:21,770 --> 00:50:23,149 classroom full of students and they're 1575 00:50:23,150 --> 00:50:24,829 all trying to program 1576 00:50:25,940 --> 00:50:27,269 and then you have students programing 1577 00:50:27,270 --> 00:50:29,359 other people's stuff into A, 1578 00:50:29,360 --> 00:50:31,429 it's noisy and B, it becomes just a 1579 00:50:31,430 --> 00:50:32,389 lot of crosstalk. 1580 00:50:32,390 --> 00:50:34,519 Um, it's 1581 00:50:34,520 --> 00:50:36,199 certainly possible to do it microphone 1582 00:50:36,200 --> 00:50:38,539 based. But we decided that it would be 1583 00:50:38,540 --> 00:50:40,669 more you know, 1584 00:50:40,670 --> 00:50:42,829 you get less crosstalk if 1585 00:50:42,830 --> 00:50:44,869 you use it headphones directly. 1586 00:50:44,870 --> 00:50:46,729 Yeah. Good point. Thanks. 1587 00:50:46,730 --> 00:50:48,050 Microphone number five. 1588 00:50:49,330 --> 00:50:51,579 Questions gone, microphone number one, 1589 00:50:51,580 --> 00:50:54,609 then, yeah, my question is, 1590 00:50:54,610 --> 00:50:57,369 did you look for 1591 00:50:57,370 --> 00:50:59,459 I mean, the I see 1592 00:50:59,460 --> 00:51:01,569 through demurely 1593 00:51:01,570 --> 00:51:04,239 official directly, so 1594 00:51:04,240 --> 00:51:06,219 you don't need the processing power on 1595 00:51:06,220 --> 00:51:08,979 the microcontroller itself. 1596 00:51:08,980 --> 00:51:11,829 So did you look for those? 1597 00:51:11,830 --> 00:51:13,959 I saw a separate icey that could do the 1598 00:51:13,960 --> 00:51:15,879 Şafak modulation directly, so I didn't 1599 00:51:15,880 --> 00:51:16,940 have to do it on a 1600 00:51:18,070 --> 00:51:19,070 wider range. 1601 00:51:20,020 --> 00:51:20,909 Microcontrollers. 1602 00:51:20,910 --> 00:51:22,059 Right. Right. 1603 00:51:22,060 --> 00:51:24,279 So some sort of hardware assisted 1604 00:51:24,280 --> 00:51:25,689 situation for doing this. 1605 00:51:25,690 --> 00:51:27,519 I mean, it it turns out that when we're 1606 00:51:27,520 --> 00:51:30,399 in this sub, one constraint like 1607 00:51:30,400 --> 00:51:31,869 like even adding an op amp on the 1608 00:51:31,870 --> 00:51:34,029 outside, for example, I talked about 1609 00:51:34,030 --> 00:51:36,939 the DC level adjustment, 1610 00:51:36,940 --> 00:51:38,229 like we thought about using OP amp 1611 00:51:38,230 --> 00:51:39,969 initially that we've added like 10 cents 1612 00:51:39,970 --> 00:51:41,199 out of every 10 percent of the 1613 00:51:41,200 --> 00:51:42,699 microcontrollers cost. 1614 00:51:42,700 --> 00:51:44,589 And so we're getting down to optimizing 1615 00:51:44,590 --> 00:51:46,479 pennies, adding a whole nother another 1616 00:51:46,480 --> 00:51:48,369 package integrated circuit outside to 1617 00:51:48,370 --> 00:51:50,489 handle the K is like a DSP or 1618 00:51:50,490 --> 00:51:51,699 a prepackage solution. 1619 00:51:51,700 --> 00:51:53,949 It would have to be like under ten cents 1620 00:51:53,950 --> 00:51:54,849 for it to be worth it. 1621 00:51:54,850 --> 00:51:57,039 And those like that type of technology 1622 00:51:57,040 --> 00:51:59,049 isn't really available today in that low 1623 00:51:59,050 --> 00:52:00,729 cost because I mean, partially because no 1624 00:52:00,730 --> 00:52:02,649 one does, no one does affect anymore. 1625 00:52:02,650 --> 00:52:04,869 Like the modem chipsets are all dead 1626 00:52:04,870 --> 00:52:06,969 and buried in like one micron 1627 00:52:06,970 --> 00:52:07,989 CMOs anyways. 1628 00:52:07,990 --> 00:52:10,089 So, um, so 1629 00:52:10,090 --> 00:52:11,019 yeah. I mean it would have been great if 1630 00:52:11,020 --> 00:52:12,069 we could find something that could 1631 00:52:12,070 --> 00:52:13,749 offload that from the CPU, but we 1632 00:52:13,750 --> 00:52:15,519 couldn't we couldn't find anything like 1633 00:52:15,520 --> 00:52:16,520 that. 1634 00:52:17,080 --> 00:52:18,129 We have one more question from the 1635 00:52:18,130 --> 00:52:19,389 Internet and then we might try and 1636 00:52:19,390 --> 00:52:21,339 squeeze two more questions in. 1637 00:52:21,340 --> 00:52:23,319 OK, question from Twitter. 1638 00:52:23,320 --> 00:52:25,539 Do you know about the Calliope Mini and 1639 00:52:25,540 --> 00:52:27,909 the McRobert Edu and are these comparable 1640 00:52:27,910 --> 00:52:30,219 to your attempt to Kallio 1641 00:52:30,220 --> 00:52:31,809 Mini? And the micro bits are what 1642 00:52:33,670 --> 00:52:36,669 my Cubitt audio you said, um, 1643 00:52:36,670 --> 00:52:38,289 that was not included in the XML. 1644 00:52:38,290 --> 00:52:40,439 Let's try and see that answer. 1645 00:52:40,440 --> 00:52:41,379 I do. 1646 00:52:41,380 --> 00:52:43,749 I do know about the micro bit 1647 00:52:43,750 --> 00:52:45,159 and that one's a very interesting one. 1648 00:52:46,630 --> 00:52:48,529 I was I was trying to hear said that 1649 00:52:48,530 --> 00:52:49,779 Microfit audio was like, oh, do they are 1650 00:52:49,780 --> 00:52:51,519 they doing audio programing too or not. 1651 00:52:51,520 --> 00:52:53,049 But I think the MacRobert is more 1652 00:52:53,050 --> 00:52:54,159 conventionally programed 1653 00:52:55,720 --> 00:52:57,339 microcontroller. I haven't heard about 1654 00:52:57,340 --> 00:52:59,469 the other one, but as 1655 00:52:59,470 --> 00:53:01,449 far as I know, I think we're the only one 1656 00:53:01,450 --> 00:53:03,549 that does a SK based 1657 00:53:03,550 --> 00:53:05,799 programing, audio based programing, 1658 00:53:05,800 --> 00:53:07,599 which allows you to sort of open up to a 1659 00:53:07,600 --> 00:53:09,549 much broader range of devices of the 1660 00:53:09,550 --> 00:53:10,780 reason it turns out that 1661 00:53:12,020 --> 00:53:14,019 it was so important for us to get into 1662 00:53:14,020 --> 00:53:16,239 audio programing is that a weird 1663 00:53:16,240 --> 00:53:17,709 thing is happening in the world, that 1664 00:53:17,710 --> 00:53:19,449 kids don't have notebooks today. 1665 00:53:19,450 --> 00:53:21,099 They don't get laptops. 1666 00:53:21,100 --> 00:53:23,289 The first computer kid gets is 1667 00:53:23,290 --> 00:53:25,059 a tablet or a smartphone. 1668 00:53:25,060 --> 00:53:27,369 And so when they particularly a younger 1669 00:53:27,370 --> 00:53:28,869 age, if they're introduced to coding and 1670 00:53:28,870 --> 00:53:30,369 they give me a homework exercise and they 1671 00:53:30,370 --> 00:53:31,599 come home and say, Mom, Dad, I have to 1672 00:53:31,600 --> 00:53:33,669 use your like your work computer 1673 00:53:33,670 --> 00:53:35,769 to do my homework, they say like, 1674 00:53:35,770 --> 00:53:38,259 sorry, use your use your smartphone. 1675 00:53:38,260 --> 00:53:40,300 Right. And so and so 1676 00:53:41,320 --> 00:53:42,999 we really wanted to create something that 1677 00:53:43,000 --> 00:53:45,219 would enable 1678 00:53:45,220 --> 00:53:47,109 kids who are then the dominant thing to 1679 00:53:47,110 --> 00:53:48,129 get you to, say, a smartphones and 1680 00:53:48,130 --> 00:53:50,319 tablets to be able to try 1681 00:53:50,320 --> 00:53:51,939 to learn coding. It's admittedly very 1682 00:53:51,940 --> 00:53:54,099 difficult to code on a touch 1683 00:53:54,100 --> 00:53:55,749 screen because touchscreen keyboards are 1684 00:53:55,750 --> 00:53:57,909 crap for that. But I'm really hoping that 1685 00:53:57,910 --> 00:53:59,559 I think that's a problem that's solvable. 1686 00:53:59,560 --> 00:54:00,849 If someone actually cared to write a 1687 00:54:00,850 --> 00:54:03,159 better keyboard interface for coding, 1688 00:54:03,160 --> 00:54:04,329 it's like right now they're all just 1689 00:54:04,330 --> 00:54:05,499 optimized for texting. 1690 00:54:06,930 --> 00:54:07,930 Microphone number two. 1691 00:54:09,140 --> 00:54:11,439 I'm kind of surprised the 1692 00:54:11,440 --> 00:54:13,579 the taping down copper 1693 00:54:13,580 --> 00:54:15,649 and soldering on paper works as 1694 00:54:15,650 --> 00:54:17,289 well as you like. 1695 00:54:17,290 --> 00:54:18,559 Did you have problems that you had to 1696 00:54:18,560 --> 00:54:20,359 solve to get that to work? 1697 00:54:20,360 --> 00:54:22,519 And is soldering is 1698 00:54:22,520 --> 00:54:24,649 there not a better option than suffering 1699 00:54:24,650 --> 00:54:26,359 for for that? 1700 00:54:26,360 --> 00:54:28,309 So so maybe I didn't make this very 1701 00:54:28,310 --> 00:54:30,529 clear, but so so copper tape 1702 00:54:30,530 --> 00:54:32,750 and paper works great, first of all. 1703 00:54:33,950 --> 00:54:35,599 I mean, copper tape itself has a nice 1704 00:54:35,600 --> 00:54:36,859 property. It's very easy to cut into 1705 00:54:36,860 --> 00:54:38,179 finer pieces. So if you need to go a 1706 00:54:38,180 --> 00:54:40,249 finer pitch, you just slice off a piece 1707 00:54:40,250 --> 00:54:42,169 and you can do like sixteen's and 1708 00:54:42,170 --> 00:54:43,170 associates and stuff. 1709 00:54:44,720 --> 00:54:46,579 The soldering is only necessary if you 1710 00:54:46,580 --> 00:54:47,719 don't have a Saulteaux method. 1711 00:54:47,720 --> 00:54:50,449 So the typical way we do 1712 00:54:50,450 --> 00:54:51,979 teach with, for example, the LEDs that 1713 00:54:51,980 --> 00:54:53,839 you have sticker's, we actually use a 1714 00:54:53,840 --> 00:54:55,999 conductive adhesive on the back 1715 00:54:56,000 --> 00:54:57,889 of flexible circuit circuit board so that 1716 00:54:57,890 --> 00:54:59,599 when you craft your first circuit, you 1717 00:54:59,600 --> 00:55:01,729 just lay down copper tape, you put 1718 00:55:01,730 --> 00:55:03,469 a sticker down, you fold over the corner, 1719 00:55:03,470 --> 00:55:05,329 put the battery in, it lights up. 1720 00:55:05,330 --> 00:55:06,439 So there's no soldering involved. 1721 00:55:06,440 --> 00:55:07,399 That's that's actually one of the 1722 00:55:07,400 --> 00:55:09,469 constraints of our technologies to 1723 00:55:09,470 --> 00:55:11,299 get the dangerous soldering iron. 1724 00:55:11,300 --> 00:55:13,249 Apparently, soldering is forbidden in the 1725 00:55:13,250 --> 00:55:14,689 center. We were told that earlier, like 1726 00:55:14,690 --> 00:55:16,070 it's a dangerous activity. 1727 00:55:17,120 --> 00:55:18,319 And so we had to get that out of the 1728 00:55:18,320 --> 00:55:19,320 classroom. 1729 00:55:20,060 --> 00:55:21,649 And so and so. 1730 00:55:21,650 --> 00:55:23,759 So, yes, actually, once once you get into 1731 00:55:23,760 --> 00:55:26,209 the once you have the conductive 1732 00:55:26,210 --> 00:55:28,339 adhesives, it's pretty easy to 1733 00:55:28,340 --> 00:55:30,619 use. And surprisingly, 1734 00:55:30,620 --> 00:55:32,749 like paper itself is doesn't burn 1735 00:55:32,750 --> 00:55:33,750 at all when you saw to it, 1736 00:55:35,060 --> 00:55:36,679 that's that's something that originally 1737 00:55:36,680 --> 00:55:38,089 when when G showed me the technique, I 1738 00:55:38,090 --> 00:55:39,619 was like, can you really do that? 1739 00:55:39,620 --> 00:55:41,139 It's going to catch fire. 1740 00:55:41,140 --> 00:55:42,529 And they know it's actually it works 1741 00:55:42,530 --> 00:55:43,939 pretty well. The copper tape itself is a 1742 00:55:43,940 --> 00:55:45,709 really good heat sink, so pulls out 1743 00:55:45,710 --> 00:55:47,329 almost all the heat away from that from 1744 00:55:47,330 --> 00:55:48,479 the paper. I mean, if you just stick that 1745 00:55:48,480 --> 00:55:50,689 Sadr tip on the paper, you'll burn a hole 1746 00:55:50,690 --> 00:55:52,369 through it. But if you're soldering the 1747 00:55:52,370 --> 00:55:54,259 copper tape itself, so much heat gets 1748 00:55:54,260 --> 00:55:55,849 whisked away that it doesn't end up 1749 00:55:55,850 --> 00:55:56,850 affecting the paper. 1750 00:55:59,560 --> 00:56:01,269 Good, excellent. I think we don't have 1751 00:56:01,270 --> 00:56:03,789 any more questions, could you please give 1752 00:56:03,790 --> 00:56:06,549 a warm round of applause? 1753 00:56:06,550 --> 00:56:07,550 Thank you.