WEBVTT 00:00:04.542 --> 00:00:07.546 MIRABAI: Howdy. 00:00:07.546 --> 00:00:09.413 So, first off, who am I? 00:00:09.413 --> 00:00:11.587 My name is Mirabai Knight, I'm based in New York City, 00:00:11.587 --> 00:00:17.373 and I'm a professional stenographer for Deaf and hard of hearing college students and professionals. 00:00:17.373 --> 00:00:22.593 About six years ago, I got really frustrated with my proprietary steno software. 00:00:22.593 --> 00:00:27.127 It was, like, $4,000, you know, $700 bucks a year for upgrades, really buggy, 00:00:27.127 --> 00:00:29.037 bloated, terrible DRM. 00:00:29.037 --> 00:00:30.566 It was just driving me nuts, right? 00:00:30.566 --> 00:00:36.841 So I decided there needed to be an open source alternative to steno -- professional, realtime, 00:00:36.841 --> 00:00:39.877 computer-connected stenography. 00:00:39.877 --> 00:00:41.794 So I figured no one else was going to write it, 00:00:41.794 --> 00:00:42.948 if I didn't do it myself. 00:00:42.948 --> 00:00:48.619 I tried to find a Python tutor, and I was extremely lucky to happen upon Joshua Lifton, PhD, 00:00:48.619 --> 00:00:50.553 recently of the MIT Media Lab, 00:00:50.553 --> 00:00:55.725 who started out tutoring me in Python, and then got so wrapped up in the project 00:00:55.725 --> 00:00:57.207 that he basically came to me and said -- 00:00:57.207 --> 00:00:58.991 listen, I'll develop this for you. 00:00:58.991 --> 00:01:00.331 You can pay me whatever you can afford, 00:01:00.331 --> 00:01:02.133 but I want to make this happen. 00:01:02.133 --> 00:01:03.710 So he took over the project. 00:01:03.710 --> 00:01:05.165 Has been coding it ever since, 00:01:05.165 --> 00:01:08.612 and then, when he had to sort of tone down the amount of time he could give to it, 00:01:08.612 --> 00:01:10.005 because of his full-time job, 00:01:10.005 --> 00:01:12.294 Hesky Fisher, whose day job is at Google, 00:01:12.294 --> 00:01:13.743 took over the project. 00:01:13.743 --> 00:01:18.546 So I've been just ridiculously fortunate to get these incredible top coders to help me with the project. 00:01:18.546 --> 00:01:23.352 Also, we've got about 200 users who weigh in, bug testing, giving input. 00:01:23.352 --> 00:01:25.085 It's been a really cool project. 00:01:25.085 --> 00:01:26.626 It's been around for about three years now, 00:01:26.626 --> 00:01:29.026 and it's going strong. 00:01:29.026 --> 00:01:30.872 What is stenography? 00:01:30.872 --> 00:01:34.798 It's a phonetic-mnemonic text input system. 00:01:34.798 --> 00:01:36.897 It's been around since about 1911, 00:01:36.897 --> 00:01:40.503 and to be a professional stenographer, like me, 00:01:40.503 --> 00:01:43.502 you basically need a speed of 240 words per minute, 00:01:43.502 --> 00:01:45.939 with 99.9% accuracy. 00:01:45.939 --> 00:01:50.585 That means an error or omission about every thousand words or four pages. 00:01:50.585 --> 00:01:54.796 You can see this old-fashioned steno machine obviously doesn't hook up to a computer. 00:01:54.796 --> 00:01:56.320 That's from around 1930. 00:01:56.320 --> 00:01:58.020 Cost about $50. 00:01:58.020 --> 00:02:02.868 This much bigger sort of split, ergonomic steno machine, which is the one I use professionally, 00:02:02.868 --> 00:02:05.247 costs $4,000. 00:02:05.247 --> 00:02:07.828 But this one down here, which just looks like a regular qwerty keyboard, 00:02:07.828 --> 00:02:13.200 except for some mysterious rectangular keys pasted onto it, 00:02:13.200 --> 00:02:18.375 costs about $50 for the keyboard and $20 for our laser cut steno keys, which we sell 00:02:18.375 --> 00:02:19.543 through the Plover store. 00:02:19.543 --> 00:02:26.222 That is the main innovation of Plover, that we're basically cutting the hardware cost from $4,000 down to $50. 00:02:26.222 --> 00:02:28.985 But why should you care? 00:02:28.985 --> 00:02:29.919 You're all developers. 00:02:29.919 --> 00:02:30.453 I'm not. 00:02:30.453 --> 00:02:32.690 I'm still trying to learn Python, but it's a hard slog. 00:02:32.690 --> 00:02:36.045 And when you think of stenographers, you probably think of, you know, 00:02:36.045 --> 00:02:40.428 old-fashioned ladies with buns in their hair, sitting in a courtroom, going, "La la la la la!" 00:02:40.428 --> 00:02:41.497 Why should you care? 00:02:41.497 --> 00:02:44.216 It's not interesting, it's not cool, it's not useful. 00:02:44.216 --> 00:02:46.834 But you're wrong. 00:02:46.834 --> 00:02:49.038 Steno is good for a ridiculous amount of things. 00:02:49.038 --> 00:02:51.272 It's incredibly elegant, useful, efficient. 00:02:51.272 --> 00:02:55.777 I won't really go into all the details of these six things here. 00:02:55.777 --> 00:03:00.424 I wrote a series of essays detailing each one of them. 00:03:00.424 --> 00:03:01.749 Speed, wearability, ergonomics -- 00:03:01.749 --> 00:03:05.053 if you're interested in them, check out the link from my PyCon speakers page. 00:03:05.053 --> 00:03:09.296 But I'll go briefly into paying work and accessibility for people with disabilities. 00:03:09.296 --> 00:03:13.275 Mostly, I'll focus on the last one, which is fluency and efficiency of text entry, 00:03:13.275 --> 00:03:15.230 which is why you guys might care. 00:03:15.230 --> 00:03:17.498 So this speech will have sort of a two-pronged approach. 00:03:17.498 --> 00:03:21.210 First I'm going to give you the hard sell to try to convince you that you, as a coder, 00:03:21.210 --> 00:03:26.132 should learn steno to write code, blog posts, emails, novels -- whatever you want to do with it. 00:03:26.132 --> 00:03:29.202 That it's incredibly useful, and that you personally should learn it. 00:03:29.202 --> 00:03:30.573 That might work for some of you. 00:03:30.573 --> 00:03:32.073 Probably won't work for all of you. 00:03:32.073 --> 00:03:33.678 So at the end of that section, 00:03:33.678 --> 00:03:38.581 I'll go on to sort of talking about why you might care about steno being out there in the world in general. 00:03:38.581 --> 00:03:40.014 Even if you don't personally learn it, 00:03:40.014 --> 00:03:44.687 why it's really important that other people have the opportunity to use it. 00:03:44.687 --> 00:03:46.524 This is just the steno alphabet. 00:03:46.524 --> 00:03:51.793 I'm not going to go into details, but my slides are up on the page, so you can check this out at your leisure later. 00:03:51.793 --> 00:03:55.365 The steno keyboard has 22 keys. 00:03:55.365 --> 00:04:00.070 Basically it's a two-dimensional syllabic input system, 00:04:00.070 --> 00:04:01.724 as opposed to the qwerty system, 00:04:01.724 --> 00:04:05.967 where obviously you take any word, break it down into its component letters, 00:04:05.967 --> 00:04:08.440 and then type out each letter one by one. 00:04:08.440 --> 00:04:12.219 With steno, you input each syllable in a single stroke, 00:04:12.219 --> 00:04:16.453 though sometimes you can actually get more syllables per stroke, depending on the word. 00:04:16.453 --> 00:04:19.920 So the left hand handles the initial consonants of the word, 00:04:19.920 --> 00:04:21.791 the right hand handles the final consonants, 00:04:21.791 --> 00:04:24.058 and the thumbs handle the vowels in the middle. 00:04:24.058 --> 00:04:26.764 There's no spacebar. 00:04:26.764 --> 00:04:29.999 Each stroke is submitted after all of the keys are released. 00:04:29.999 --> 00:04:32.567 And most words can be written phonetically. 00:04:32.567 --> 00:04:34.604 One example here is "straps". 00:04:34.604 --> 00:04:36.273 You can look on the steno keyboard. 00:04:36.273 --> 00:04:38.239 S-T-R-A-P-S. 00:04:38.239 --> 00:04:41.517 You hit all of those together in one stroke, and it comes out "straps". 00:04:41.517 --> 00:04:42.911 Very intuitive. 00:04:42.911 --> 00:04:49.049 Now, Plover is unique -- as opposed to all the other proprietary steno software, 00:04:49.049 --> 00:04:51.448 in that it is essentially a keyboard emulator. 00:04:51.448 --> 00:04:55.090 Most proprietary software is a word processor, 00:04:55.090 --> 00:04:59.149 and if you want to interact with the rest of the OS, it's in this very sort of awkward sandboxed system, 00:04:59.149 --> 00:05:01.231 with lots of delays and convoluted things. 00:05:01.231 --> 00:05:02.695 It's very inconvenient. 00:05:02.695 --> 00:05:06.733 But Plover is stripped down and designed just to let you interact with your system, 00:05:06.733 --> 00:05:10.811 as if you were using a qwerty keyboard. 00:05:10.811 --> 00:05:13.506 So, for an example, if you wanted to do a two-syllable word, 00:05:13.506 --> 00:05:15.972 you start out with PAOEU. 00:05:15.972 --> 00:05:17.579 P, long I; PAOEU. 00:05:17.579 --> 00:05:18.786 And you get the word "pie". 00:05:18.786 --> 00:05:20.013 P-I-E. 00:05:20.013 --> 00:05:21.415 Then you add on THON, 00:05:21.415 --> 00:05:24.719 and suddenly Plover will delete the I and the E of "pie", 00:05:24.719 --> 00:05:28.656 and send out Y-T-H-O-N, to get python. 00:05:28.656 --> 00:05:31.024 Very simple. 00:05:31.024 --> 00:05:32.366 As I mentioned, 00:05:32.366 --> 00:05:34.321 there are some words which you can write in a single stroke, 00:05:34.321 --> 00:05:38.866 even if they're ten letters and four syllables long, 00:05:38.866 --> 00:05:40.032 such as deplorable. 00:05:40.032 --> 00:05:42.868 D-P-L-O-R-B-L, dplorbl. 00:05:42.868 --> 00:05:47.881 Peripheral, P-R-I-F-R-L, prifrl. 00:05:47.881 --> 00:05:49.950 I'm going to -- oh, yes, question? 00:05:49.950 --> 00:05:51.780 AUDIENCE MEMBER: Could you go back to deplorable for a second? 00:05:51.780 --> 00:05:53.150 MIRABAI: Go back to deplorable? 00:05:53.150 --> 00:05:53.914 AUDIENCE MEMBER: Yes. 00:05:53.914 --> 00:05:57.085 MIRABAI: Are you confused about why there's no D on the left side of the keyboard? 00:05:57.085 --> 00:05:59.686 Yes, I guess I should have mentioned that, 00:05:59.686 --> 00:06:02.321 since the steno keyboard only has 22 keys, 00:06:02.321 --> 00:06:07.333 the letters that don't appear are produced by specific chords. 00:06:07.333 --> 00:06:13.877 So in this case, TK is D, HR is L, and down here, EU is I. 00:06:13.877 --> 00:06:20.111 You can see that in more detail if you look at the steno alphabet that I posted earlier. 00:06:20.111 --> 00:06:25.152 So I'm going to show you an example of me inputting a very small snippet from Codecademy, 00:06:25.152 --> 00:06:28.285 which I'm trying to use to learn Python, with steno. 00:06:28.285 --> 00:06:30.148 But just to keep in mind, while you're watching this, 00:06:30.148 --> 00:06:34.126 it took 143 keystrokes to do the same amount of code in qwerty, 00:06:34.126 --> 00:06:39.362 whereas it took 54 keystrokes to do it in steno. 00:06:39.362 --> 00:06:42.753 All right, let me rewind here. 00:06:42.753 --> 00:06:48.840 Down below, you can see the phonetic equivalent of the steno that I'm writing. 00:07:03.084 --> 00:07:05.153 Pretty simple. 00:07:05.153 --> 00:07:10.460 (applause) 00:07:10.460 --> 00:07:13.459 All right, let me go back here. 00:07:13.459 --> 00:07:14.890 Right. 00:07:14.890 --> 00:07:20.068 Another big advantage of this two-dimensional versus one-dimensional text input system 00:07:20.068 --> 00:07:25.006 is that you can have mnemonic hooks for all of your words and commands. 00:07:25.006 --> 00:07:26.306 So I'm a Vim user. 00:07:26.306 --> 00:07:27.739 AUDIENCE MEMBER: Woo! 00:07:27.739 --> 00:07:28.888 MIRABAI: Yeah, Vim! 00:07:28.888 --> 00:07:29.551 Woo! 00:07:29.551 --> 00:07:35.121 And most of these sort of one-letter commands in Vim are sort of intuitive. 00:07:35.121 --> 00:07:36.914 You know, back is go back one word. 00:07:36.914 --> 00:07:37.452 That makes sense, right? 00:07:37.452 --> 00:07:41.655 But r is used -- say if you want to record a macro, right? 00:07:41.655 --> 00:07:43.254 R is used for replace a letter. 00:07:43.254 --> 00:07:45.225 M is used for mark my spot. 00:07:45.225 --> 00:07:49.290 So you have to have these weird, convoluted things like reQord maQro, with a q. 00:07:49.290 --> 00:07:50.496 It doesn't really work. 00:07:50.496 --> 00:07:53.734 Because you only have one letter to sort of hang your mnemonic hook on. 00:07:53.734 --> 00:07:56.542 Whereas, with steno, since you have an entire syllable per stroke, 00:07:56.542 --> 00:08:00.089 you can do really complex commands like GLERCH, 00:08:00.089 --> 00:08:02.083 for "launch browser and perform a Google search", 00:08:02.083 --> 00:08:08.030 or QUARN, short for "quarantine", which -- when I make an error in Python -- er, in Plover -- 00:08:08.030 --> 00:08:11.659 I can cut that highlighted text and append it to a document that I review later 00:08:11.659 --> 00:08:16.496 to help fix bugs in Plover's orthographic system. 00:08:16.496 --> 00:08:22.858 Now, I might have convinced some of you that steno is cool and useful and efficient and awesome 00:08:22.858 --> 00:08:23.810 and you want to learn it. 00:08:23.810 --> 00:08:24.746 I might not have. 00:08:24.746 --> 00:08:28.406 But I want to make the larger case that steno is really important to have in the world. 00:08:28.406 --> 00:08:30.586 The altruistic argument. 00:08:30.586 --> 00:08:33.082 In this country, there are 35 million people with hearing loss, 00:08:33.082 --> 00:08:35.648 and about 2% of those know Sign Language, 00:08:35.648 --> 00:08:38.987 so 98% can only really be helped by realtime captioning. 00:08:38.987 --> 00:08:43.262 There's only 400 certified captioners like me in this country, and most of them are near retirement age. 00:08:43.262 --> 00:08:46.902 Plus there are 3 to 8 million people who can't use their voices to speak, 00:08:46.902 --> 00:08:51.297 and steno is virtually the only technology that would allow them to converse with people they know 00:08:51.297 --> 00:08:55.241 in a truly realtime way, at true conversational speeds, 00:08:55.241 --> 00:09:01.781 as opposed to tapping things out in a pictographic system that's very slow and awkward. 00:09:01.781 --> 00:09:06.312 Unfortunately, the reason why there are so few stenographers and why so many of them are so old 00:09:06.312 --> 00:09:10.951 is because the only way to learn steno these days is through for-profit trade schools 00:09:10.951 --> 00:09:14.162 that are really kind of scams, you know? 00:09:14.162 --> 00:09:15.755 They'll let anybody in. 00:09:15.755 --> 00:09:21.095 They'll cost a huge amount of money in tuition, plus buying the machine, buying the software, 00:09:21.095 --> 00:09:24.899 and the national dropout rate is 85%. 00:09:24.899 --> 00:09:28.734 Because, honestly, most of the people going to steno school don't have other prospects 00:09:28.734 --> 00:09:31.741 and aren't really well suited to learn the system. 00:09:31.741 --> 00:09:38.076 Most people can reach about 140 to 160 words per minute in steno in, I would say, three to six months. 00:09:38.076 --> 00:09:43.316 But getting that extra additional speed from 160 to 225, which is graduation speed, 00:09:43.316 --> 00:09:45.364 can take two to six years. 00:09:45.364 --> 00:09:51.024 The problem is that we currently don't have any amateurs or hobbyists or tinkerers, 00:09:51.024 --> 00:09:56.773 or anyone who wants to pick up steno for fun, for free, or at least low cost, considering this $50 system that we've got. 00:09:56.773 --> 00:10:02.902 It's like if the only way you could learn guitar is if you had to go to music school and buy a jewel encrusted, 00:10:02.902 --> 00:10:08.270 professional-level guitar, that you had to go through a four-year program, before you could even use it. 00:10:08.270 --> 00:10:11.243 If there's no amateurs, there's no future for the program. 00:10:11.243 --> 00:10:12.545 And that's what's happening with steno. 00:10:12.545 --> 00:10:13.352 It's disappearing. 00:10:13.352 --> 00:10:18.255 People aren't using this technology, because they're locked into this proprietary system. 00:10:18.255 --> 00:10:22.527 That's why Plover now is totally free software, 00:10:22.527 --> 00:10:26.430 the hardware is really much more affordable than the $4,000 proprietary software (sic), 00:10:26.430 --> 00:10:31.999 and our next sort of endeavor is going to be trying to raise money for a video game system 00:10:31.999 --> 00:10:37.178 that will teach Plover in an addictive way, kind of retro-style arcade games. 00:10:37.178 --> 00:10:43.442 Because gamification is a big buzzword in learning these days, but for steno, it's really, really perfect. 00:10:43.442 --> 00:10:45.209 You start slow, you get faster, 00:10:45.209 --> 00:10:49.940 you start with simple words, you sort of build up your wordhoard, as you go along. 00:10:49.940 --> 00:10:53.415 It's almost like an RPG plus a platformer, combined. 00:10:53.415 --> 00:10:55.521 So we're hoping that, as the steno community grows, 00:10:55.521 --> 00:10:58.989 we'll be able to get more people in, to help develop this system of video games, 00:10:58.989 --> 00:11:03.329 and then the steno community hopefully will just explode. 00:11:03.329 --> 00:11:06.563 There's a bunch of resources online. 00:11:06.563 --> 00:11:08.976 If you go to ploversteno.org. 00:11:08.976 --> 00:11:14.273 User groups, forums, mailing lists, all sorts of stuff. 00:11:14.273 --> 00:11:16.474 And you can teach yourself steno on your own, try it out. 00:11:16.474 --> 00:11:22.254 And I would also be happy to answer any questions at this point. 00:11:22.254 --> 00:11:23.480 (applause) 00:11:23.480 --> 00:11:28.553 Oh, thank you. 00:11:28.553 --> 00:11:29.784 AUDIENCE MEMBER: More demos. 00:11:29.784 --> 00:11:30.789 MIRABAI: More demos? 00:11:30.789 --> 00:11:32.793 Okay. 00:11:32.793 --> 00:11:34.191 AUDIENCE MEMBER: Or questions. 00:11:34.191 --> 00:11:36.510 MIRABAI: First I'll ask for questions. 00:11:36.510 --> 00:11:38.304 If there are no more questions, I'll give you more demos. 00:11:38.304 --> 00:11:41.602 No questions? 00:11:41.602 --> 00:11:43.369 AUDIENCE MEMBER: Hi. 00:11:43.369 --> 00:11:46.702 I switched to Colemak this year, 00:11:46.702 --> 00:11:48.439 which is just a different keyboard layout. 00:11:48.439 --> 00:11:50.675 It's more... I don't know. 00:11:50.675 --> 00:11:52.582 It's better. 00:11:52.582 --> 00:11:54.046 Whatever you want to call it. 00:11:54.046 --> 00:11:59.384 And I found that I accidentally locked myself out of everybody else's computers. 00:11:59.384 --> 00:12:04.026 Because I can't type on other people's computers anymore. 00:12:04.026 --> 00:12:06.057 Which kind of sucks. 00:12:06.057 --> 00:12:07.259 I don't know. 00:12:07.259 --> 00:12:09.093 The jury's still out. 00:12:09.093 --> 00:12:13.863 I wonder if you experience this at all, with steno. 00:12:13.863 --> 00:12:17.801 You sit down at a library computer. 00:12:17.801 --> 00:12:19.169 MIRABAI: I mean, it is a disadvantage. 00:12:19.169 --> 00:12:20.671 It's annoying having to switch back to qwerty. 00:12:20.671 --> 00:12:25.207 We're currently looking at possible commercial solutions, 00:12:25.207 --> 00:12:26.878 for a low cost, very portable steno machine, 00:12:26.878 --> 00:12:30.581 that you can just plug into any computer, and it'll work as a qwerty keyboard. 00:12:30.581 --> 00:12:32.984 Sort of emulate a qwerty keyboard, without having to install any software. 00:12:32.984 --> 00:12:34.661 Which I think will help. 00:12:34.661 --> 00:12:36.253 I mean, it's annoying having to carry a keyboard around, 00:12:36.253 --> 00:12:38.497 but that might be a sort of compromise solution. 00:12:38.497 --> 00:12:46.733 AUDIENCE MEMBER: Since Colemak is still the same shape as qwerty, it overrode qwerty in my brain. 00:12:46.733 --> 00:12:48.309 It replaced it. 00:12:48.309 --> 00:12:50.704 Does steno do that to you? 00:12:50.704 --> 00:12:53.505 MIRABAI: No, I'm still pretty good with qwerty, yeah. 00:12:53.505 --> 00:12:59.714 It's just annoying. 00:12:59.714 --> 00:13:00.315 AUDIENCE MEMBER: Hi. 00:13:00.315 --> 00:13:06.054 I'm an iPhone 5 user, and I always have a problem with the qwerty keyboard on it. 00:13:06.054 --> 00:13:10.230 Really hard to use, to send emails and so forth. 00:13:10.230 --> 00:13:17.672 Do you think steno will be a good application for the iPhone 5, for regular users, for the faster typing? 00:13:17.672 --> 00:13:21.477 MIRABAI: Well, because it's a two-handed system, it's not too easy to transfer. 00:13:21.477 --> 00:13:23.637 I hope eventually there will be a wearable solution, 00:13:23.637 --> 00:13:28.344 where basically you have the keyboard, you know, on your pants, and you can just walk around. 00:13:28.344 --> 00:13:31.076 I think this really sort of rises and falls 00:13:31.076 --> 00:13:34.423 depending on whether Google Glass takes off or sinks like a stone. 00:13:34.423 --> 00:13:36.139 If people start having wearable options, 00:13:36.139 --> 00:13:38.279 and then get frustrated with the input methods available, 00:13:38.279 --> 00:13:40.591 I think steno could be a really good solution to that, 00:13:40.591 --> 00:13:45.048 but if wearable computing is really just relegated back to the '90s, who knows? 00:13:45.048 --> 00:13:50.090 I don't think that it's going to be usable for the next few years, unfortunately. 00:13:50.090 --> 00:13:51.195 AUDIENCE MEMBER: Thank you very much. 00:13:51.195 --> 00:13:53.355 MIRABAI: Sure. 00:13:53.355 --> 00:13:57.125 AUDIENCE MEMBER: So as a Vim addict, I'm glad to hear that you are one too, 00:13:57.125 --> 00:14:02.096 because Dvorak was always a no-go for me, because the colon's in the wrong place, 00:14:02.096 --> 00:14:05.269 and the hj keys are a no-go. 00:14:05.269 --> 00:14:07.036 So how do you handle that? 00:14:07.036 --> 00:14:10.707 And also maybe you could address how you handle things like parens and square brackets. 00:14:10.707 --> 00:14:12.845 Things of that nature. 00:14:12.845 --> 00:14:20.883 MIRABAI: Well, let me put this back up again, because I use both parentheses and square brackets in this demo. 00:14:20.883 --> 00:14:26.004 Basically, for me, the sort of iconic Python double parentheses with nothing in them 00:14:26.004 --> 00:14:27.922 I just defined as PRENS. 00:14:27.922 --> 00:14:29.157 I write it out at PRENS. 00:14:29.157 --> 00:14:31.322 If I want an open parenthesis, I do PREN, 00:14:31.322 --> 00:14:33.262 and if I want a closed one, I do PRENT. 00:14:33.262 --> 00:14:35.506 Brackets are BRKT and BR*KT. 00:14:35.506 --> 00:14:37.702 It's actually fairly intuitive, once you get used to them. 00:14:37.702 --> 00:14:41.705 And the nice thing about steno is that your fingers never stray from the home row, 00:14:41.705 --> 00:14:46.339 so you're not doing that sort of tippy-tappy thing with the qwerty or even the Dvorak keyboard. 00:14:46.339 --> 00:14:51.345 You just stay there, and you make all the possible combinations that you can with the 22 keys 00:14:51.345 --> 00:14:53.179 underneath your fingers. 00:14:53.179 --> 00:15:00.123 AUDIENCE MEMBER: So then moving around is also chording now, instead of using -- like, hjkl keys for moving around? 00:15:00.123 --> 00:15:03.625 MIRABAI: Yeah, you do them sort of like this. 00:15:03.625 --> 00:15:05.358 It's very simple. 00:15:05.358 --> 00:15:06.727 AUDIENCE MEMBER: Where does that configuration live? 00:15:06.727 --> 00:15:08.331 MIRABAI: Say again? 00:15:08.331 --> 00:15:10.238 AUDIENCE MEMBER: Where does that configuration live? 00:15:10.238 --> 00:15:13.135 Is that your vimrc, or is that the steno? 00:15:13.135 --> 00:15:15.172 MIRABAI: Oh, no, no, I still just use regular Vim mappings. 00:15:15.172 --> 00:15:17.273 Like, if I want to go back a word, I still write b. 00:15:17.273 --> 00:15:20.921 I just write b on the steno keyboard, which is PW plus asterisk. 00:15:20.921 --> 00:15:25.114 (laughter) 00:15:25.114 --> 00:15:28.149 AUDIENCE MEMBER: You said it takes two to six years to become a fully trained steno. 00:15:28.149 --> 00:15:29.152 MIRABAI: To get really fast, yeah. 00:15:29.152 --> 00:15:33.594 AUDIENCE MEMBER: How much time would it take to get faster than you are as a qwerty -- 00:15:33.594 --> 00:15:38.533 MIRABAI: My estimate is it's probably around two to three months, depending on how much time you put into it, 00:15:38.533 --> 00:15:41.564 and how quickly you pick it up, but not that much. 00:15:41.564 --> 00:15:42.436 AUDIENCE MEMBER: Thanks. 00:15:42.436 --> 00:15:43.503 MIRABAI: Yeah, sure. 00:15:43.503 --> 00:15:47.674 AUDIENCE MEMBER: Probably about the same time as learning Dvorak, honestly. 00:15:47.674 --> 00:15:50.704 AUDIENCE MEMBER: Do you know anything about the state of the art for languages other than English? 00:15:50.704 --> 00:15:55.175 So, for example, I am from Russia, so I would have to type Cyrillics if I were to use this thing. 00:15:55.175 --> 00:15:57.576 MIRABAI: Yes, this is about foreign languages in steno. 00:15:57.576 --> 00:16:00.589 We actually do have a number of people on the Plover user group from other countries. 00:16:00.589 --> 00:16:02.882 There's one from Poland. 00:16:02.882 --> 00:16:07.654 I think there's a Russian-American who is interested in using steno in Russian. 00:16:07.654 --> 00:16:11.188 AUDIENCE MEMBER: Polish uses the Latin alphabet. 00:16:11.188 --> 00:16:13.092 MIRABAI: Yeah, no, I know. 00:16:13.092 --> 00:16:17.227 But basically, Plover can output anything in the Unicode character set. 00:16:17.227 --> 00:16:21.168 And I think there are stenographic theories for other languages. 00:16:21.168 --> 00:16:23.009 Some of them you might have to start from scratch, 00:16:23.009 --> 00:16:26.064 but I think for most European languages, there already is an established stenographic theory 00:16:26.064 --> 00:16:28.172 that you would just have to import into the Plover system. 00:16:28.172 --> 00:16:29.741 So there's a lot of potential there. 00:16:29.741 --> 00:16:32.314 Not many people are using it at this point. 00:16:32.314 --> 00:16:36.984 AUDIENCE MEMBER: I'm just curious whether you would have enough keys, because Russian has 33 letters rather than 26. 00:16:36.984 --> 00:16:38.564 MIRABAI: Quite possibly. 00:16:38.564 --> 00:16:40.435 Since it's phonetic. 00:16:40.435 --> 00:16:46.068 I believe there is a pre-existing Russian stenographic system, but I'm not completely positive. 00:16:46.068 --> 00:16:46.637 AUDIENCE MEMBER: Okay, thanks. 00:16:46.637 --> 00:16:48.385 MIRABAI: Sure. 00:16:48.385 --> 00:16:49.003 AUDIENCE MEMBER: Hi. 00:16:49.003 --> 00:16:53.270 I was just wondering -- so it looked in the picture like the $50 keyboard that you were talking about -- 00:16:53.270 --> 00:16:54.892 it looks like a normal keyboard. 00:16:54.892 --> 00:16:56.412 MIRABAI: Not quite. 00:16:56.412 --> 00:16:57.714 AUDIENCE MEMBER: So are there hardware differences? 00:16:57.714 --> 00:16:58.447 MIRABAI: There are, yeah. 00:16:58.447 --> 00:17:00.522 The main thing is that it needs to have n-key rollover. 00:17:00.522 --> 00:17:05.346 Because most keyboards won't accept chords of more than, like, two keys at a time. 00:17:05.346 --> 00:17:10.391 So the one we use -- the cheapest n-key rollover keyboard is the Microsoft Sidewinder X4, 00:17:10.391 --> 00:17:11.455 which is like a gaming keyboard. 00:17:14.055 --> 00:17:15.013 AUDIENCE MEMBER: Sorry, follow up. 00:17:15.013 --> 00:17:22.757 So is it possible to get, like, other keyboards other than that $50 one, or are they all more expensive than that? 00:17:22.757 --> 00:17:24.059 MIRABAI: They're all more expensive than that. 00:17:24.059 --> 00:17:26.979 Yeah, like the Majestouch costs about $120. 00:17:26.979 --> 00:17:27.556 Works great. 00:17:27.556 --> 00:17:31.000 But nothing cheaper than $50, unfortunately. 00:17:31.000 --> 00:17:32.664 AUDIENCE MEMBER: How did you come up with the name? 00:17:32.664 --> 00:17:33.722 MIRABAI: Oh, yes. 00:17:33.722 --> 00:17:36.506 Actually, let me show you the logo. 00:17:36.506 --> 00:17:37.574 If you can see this little guy -- 00:17:37.574 --> 00:17:39.406 a plover is a sort of a wading bird. 00:17:39.406 --> 00:17:42.243 I came up with it for two reasons. 00:17:42.243 --> 00:17:47.416 First of all, it's a two syllable, six letter word that you can play in one stroke on the steno keyboard, 00:17:47.416 --> 00:17:50.759 and secondly, I like that it's a phonetic system, 00:17:50.759 --> 00:17:52.753 but Plover is a non-phonetic word. 00:17:52.753 --> 00:17:54.087 Sort of perverse that way. 00:17:54.087 --> 00:17:55.625 But you can see on his little wing there -- 00:17:55.625 --> 00:17:59.970 the dark brown patches spell out Plover. 00:17:59.970 --> 00:18:01.630 Because his little wing is a steno keyboard. 00:18:01.630 --> 00:18:04.223 So P-L-O-F-R spells out Plover. 00:18:04.223 --> 00:18:08.207 (applause) 00:18:08.207 --> 00:18:10.505 AUDIENCE MEMBER: You mentioned just a few moments ago 00:18:10.505 --> 00:18:13.309 that you type bracket and paren by typing combinations of... 00:18:13.309 --> 00:18:16.745 Like, that sound like bracket and paren. 00:18:16.745 --> 00:18:19.890 What do you do when you actually want to type the word bracket? 00:18:19.890 --> 00:18:21.482 MIRABAI: Oh, well, that's yet another definition. 00:18:21.482 --> 00:18:26.062 Basically, for the actual character bracket, I take out the vowel. 00:18:26.062 --> 00:18:31.500 So it's sort of BRKT and BR*KT, but for the word "bracket", I just write BRAKT, which is one stroke, again. 00:18:31.500 --> 00:18:32.869 AUDIENCE MEMBER: Like everything. 00:18:32.869 --> 00:18:34.870 MIRABAI: Yeah! 00:18:34.870 --> 00:18:36.814 AUDIENCE MEMBER: So this is really cool. 00:18:36.814 --> 00:18:41.446 My question is: You mentioned that you have, like, a personal dictionary. 00:18:41.446 --> 00:18:42.479 MIRABAI: Yes. 00:18:42.479 --> 00:18:44.212 AUDIENCE MEMBER: How is that formed? 00:18:44.212 --> 00:18:45.881 And sort of what's the interface for that? 00:18:45.881 --> 00:18:47.149 MIRABAI: Sure. 00:18:47.149 --> 00:18:49.013 AUDIENCE MEMBER: And I guess the other question is... 00:18:49.013 --> 00:18:53.922 Let's assume that this comes to dominate, like, the hacker world. 00:18:53.922 --> 00:18:54.821 MIRABAI: I hope so! 00:18:54.821 --> 00:18:57.226 That's what I'm going for! 00:18:57.226 --> 00:19:03.037 AUDIENCE MEMBER: How would we do interoperability if we all have personal dictionaries, basically, to use with this? 00:19:03.037 --> 00:19:05.948 MIRABAI: Yeah, well, I mean, that goes back to the question of what you have to do 00:19:05.948 --> 00:19:07.738 when you're using someone else's computer. 00:19:07.738 --> 00:19:10.115 But the dictionary is inherent. 00:19:10.115 --> 00:19:11.874 Each stenographer has their own dictionary. 00:19:11.874 --> 00:19:16.476 And I was going to record a demo of using the steno keyboard to define a new word, 00:19:16.476 --> 00:19:18.047 but it was a little bit clumsy. 00:19:18.047 --> 00:19:19.453 It's actually working pretty well now. 00:19:19.453 --> 00:19:20.847 It's one of our new features. 00:19:20.847 --> 00:19:22.083 It's really useful. 00:19:22.083 --> 00:19:24.362 But yeah, you would have to have some way of transporting your dictionary. 00:19:24.362 --> 00:19:26.153 But it's, like, a 4-meg text file. 00:19:26.153 --> 00:19:31.793 It's not that hard to -- you can use a thumb drive, or if we do get this $200 solution 00:19:31.793 --> 00:19:36.451 of just a plug-in keyboard that works with any computer, the dictionary will be on there. 00:19:36.451 --> 00:19:40.167 AUDIENCE MEMBER: And to define those words, you, I assume, do another chord 00:19:40.167 --> 00:19:43.072 That says, "I'm going to define a new word and here it is?" 00:19:43.072 --> 00:19:44.379 MIRABAI: Correct, yep. 00:19:44.379 --> 00:19:45.575 Yeah, it's actually pretty seamless. 00:19:45.575 --> 00:19:48.210 AUDIENCE MEMBER: Cool! 00:19:48.210 --> 00:19:51.311 AUDIENCE MEMBER: Hi, I used to work at a court reporting firm, actually, 00:19:51.311 --> 00:19:53.118 so this all sounds too familiar. 00:19:53.118 --> 00:19:59.454 And reading the description, this will be great for a realtime court reporting application. 00:19:59.454 --> 00:20:03.224 Do you have plans for expanding this in the future, in a commercial way? 00:20:03.224 --> 00:20:04.492 MIRABAI: No. 00:20:04.492 --> 00:20:06.062 I want Plover to remain open source. 00:20:06.062 --> 00:20:09.364 Honestly, I'm not really interested in breaking into the court reporting market, 00:20:09.364 --> 00:20:10.705 because I don't do court reporting, 00:20:10.705 --> 00:20:12.700 and I find that stuff incredibly tedious. 00:20:12.700 --> 00:20:17.673 So the $4,000 proprietary software already handles the court reporting. 00:20:17.673 --> 00:20:20.910 But I do, you know, realtime stenography for the Deaf and hard of hearing. 00:20:20.910 --> 00:20:26.145 AUDIENCE MEMBER: Cool, thank you. 00:20:26.145 --> 00:20:30.865 AUDIENCE MEMBER: At 240 words per minute, you'd think you would be a great candidate for the MUD gaming community. 00:20:30.865 --> 00:20:32.720 Have you talked to these people yet? 00:20:32.720 --> 00:20:34.324 MIRABAI: No, actually. 00:20:34.324 --> 00:20:35.991 That's a really good idea. 00:20:35.991 --> 00:20:40.069 Yeah, I'd love for there to be, like, a text-based RPG that teaches you steno. 00:20:40.069 --> 00:20:41.611 I think that would be a really good application, 00:20:41.611 --> 00:20:45.843 and a lot cheaper to develop than a big graphics extravaganza. 00:20:45.843 --> 00:20:49.972 Yeah, right now the typing game community are pretty excited about Plover. 00:20:49.972 --> 00:20:57.012 But that's a pretty small niche in the total online gaming world. So we'll see what happens. 00:20:57.012 --> 00:20:58.481 Demos? 00:20:58.481 --> 00:21:03.017 All right. I got a whole playlist here. 00:21:03.017 --> 00:21:04.228 AUDIENCE MEMBER: You went too fast! 00:21:04.228 --> 00:21:05.518 MIRABAI: Sorry about that. 00:21:05.518 --> 00:21:10.730 (humming) 00:21:10.730 --> 00:21:17.565 MIRABAI: See, I gave the exact same presentation in New York City, and I didn't have enough time. 00:21:17.565 --> 00:21:22.777 I think I must have just gone on adrenaline this time. 00:21:22.777 --> 00:21:24.107 AUDIENCE MEMBER: Sorry, may I ask another quick question? 00:21:24.107 --> 00:21:24.738 MIRABAI: Sure! 00:21:24.738 --> 00:21:26.108 AUDIENCE MEMBER: So how does it work with the thumbs? 00:21:26.108 --> 00:21:30.892 So the vowels are on the thumbs, and you have to press either one or two keys 00:21:30.892 --> 00:21:32.615 at the same time with your thumb, right? 00:21:32.615 --> 00:21:33.782 MIRABAI: Exactly, yes. 00:21:33.782 --> 00:21:35.117 AUDIENCE MEMBER: Okay, cool. 00:21:35.117 --> 00:21:36.351 MIRABAI: Yep, that's exactly right. 00:21:36.351 --> 00:21:37.927 AUDIENCE MEMBER: It's convenient to press two keys at once? 00:21:37.927 --> 00:21:39.189 MIRABAI: It is, yeah. 00:21:39.189 --> 00:21:40.390 I mean, the steno keyboard is designed that way. 00:21:40.390 --> 00:21:43.229 Basically the footprint of the steno keyboard is very small. 00:21:43.229 --> 00:21:46.195 It's basically the size of a typical hand, you know. 00:21:46.195 --> 00:21:49.482 AUDIENCE MEMBER: Okay, that makes sense, yeah. 00:21:49.482 --> 00:21:53.836 MIRABAI: So here is a short demo of me using the Filco Majestouch that I mentioned earlier, 00:21:53.836 --> 00:22:00.743 which is about a $120 qwerty keyboard, to write in Plover, with the corresponding keys that I'm pressing. 00:22:00.743 --> 00:22:02.350 I'm not sure how visible that is. 00:22:02.350 --> 00:22:04.145 Eh, I should have made it bigger. 00:22:04.145 --> 00:22:08.615 Let me give you another one. 00:22:08.615 --> 00:22:11.987 Here is the online typing game that I mentioned. 00:22:11.987 --> 00:22:16.824 It's called Typeracer. 00:22:16.824 --> 00:22:17.975 AUDIENCE MEMBER: Are you the world record holder? 00:22:17.975 --> 00:22:19.328 MIRABAI: I'm not, actually. 00:22:19.328 --> 00:22:20.484 AUDIENCE MEMBER: Who is? 00:22:20.484 --> 00:22:21.567 MIRABAI: I get too nervous. 00:22:21.567 --> 00:22:26.033 Well, the guy who's the world record holder on Typeracer is a qwerty typist. 00:22:26.033 --> 00:22:26.986 AUDIENCE MEMBER: What? 00:22:26.986 --> 00:22:27.905 MIRABAI: I know. 00:22:27.905 --> 00:22:29.004 It's ridiculous, right? 00:22:29.004 --> 00:22:31.820 Honestly, I get too nervous, and I get sort of hung up on it. 00:22:31.820 --> 00:22:32.880 I'm pretty close. 00:22:32.880 --> 00:22:34.610 I think I beat him in several races. 00:22:34.610 --> 00:22:37.316 But he's just really focused. 00:22:37.316 --> 00:22:39.612 (laughter) 00:22:39.612 --> 00:22:41.319 But I certainly beat Jumbo here. 00:22:41.319 --> 00:22:42.184 Jimbo. 00:22:42.184 --> 00:22:44.086 Whoever it was. 00:22:44.086 --> 00:22:45.493 (laughter) 00:22:45.493 --> 00:22:52.592 And here's another application that I can't really give you the benefit of the voice, particularly. 00:22:52.592 --> 00:22:58.835 ESPEAK VOICE: This is a demonstration of how Plover can be used to speak at a normal conversational pace. 00:22:58.835 --> 00:23:02.169 You can see that I'm triggering the speech engine manually, 00:23:02.169 --> 00:23:05.675 but while the computer is speaking the previous sentence, 00:23:05.675 --> 00:23:07.809 I'm able to write out the next one, 00:23:07.809 --> 00:23:11.683 resulting in a smooth and even flow of speech. 00:23:11.683 --> 00:23:17.092 This demonstration uses eSpeak, which is a free program included with Linux, 00:23:17.092 --> 00:23:22.496 but Plover works with all realtime text-to-speech engines, 00:23:22.496 --> 00:23:27.968 and can be used to do virtually anything the qwerty keyboard can do. 00:23:27.968 --> 00:23:31.412 Why is it so much faster and more efficient than qwerty? 00:23:31.412 --> 00:23:36.651 For a steno machine, an entire syllable, word, or phrase... 00:23:36.651 --> 00:23:40.011 MIRABAI: Anyway, that's a small example of how people can use... 00:23:40.011 --> 00:23:43.717 (applause) 00:23:43.717 --> 00:23:47.464 How people can use Plover to speak if they can't speak with their voices, 00:23:47.464 --> 00:23:51.155 whether due to surgery, or whether they have congenital malformations, or whatever, 00:23:51.155 --> 00:23:53.227 which is a surprising number of people. 00:23:53.227 --> 00:23:55.963 And it's very difficult for them to converse at a conversational pace 00:23:55.963 --> 00:23:58.732 without a realtime system like this. 00:23:58.732 --> 00:23:59.999 Another question? 00:23:59.999 --> 00:24:01.969 AUDIENCE MEMBER: How big is the dictionary you use? 00:24:01.969 --> 00:24:04.799 MIRABAI: My dictionary is currently about 160,000 words, 00:24:04.799 --> 00:24:07.309 though there are dictionaries that are 200,000, you know. 00:24:07.309 --> 00:24:08.909 It's a good starter dictionary. 00:24:08.909 --> 00:24:11.352 I use my own dictionary as the sort of Plover default dictionary, 00:24:11.352 --> 00:24:16.375 which people can then download and alter and add to at their heart's delight. 00:24:16.375 --> 00:24:20.629 AUDIENCE MEMBER: I was wondering, if it's not too deep of a hole to fall into, 00:24:20.629 --> 00:24:21.986 how... 00:24:21.986 --> 00:24:25.298 How do I ask this? 00:24:25.298 --> 00:24:29.464 Is it emulating an input source, essentially? 00:24:29.464 --> 00:24:32.705 So as far as your computer is concerned, these are the letters that you typed? 00:24:32.705 --> 00:24:34.069 MIRABAI: Yes, absolutely. 00:24:34.069 --> 00:24:40.627 AUDIENCE MEMBER: Okay, and then it's designed to have different types of output for different systems 00:24:40.627 --> 00:24:42.445 that expect things? 00:24:42.445 --> 00:24:45.046 MIRABAI: No, it's just a qwerty keyboard emulator. 00:24:45.046 --> 00:24:46.548 It sends out -- 00:24:46.548 --> 00:24:48.550 you write the letter in one stroke, 00:24:48.550 --> 00:24:51.883 but then it's the one that does the work of converting those into individual letters, 00:24:51.883 --> 00:24:53.921 and then in the example that I showed, 00:24:53.921 --> 00:24:55.428 where I wrote PAOEU, and it said pie, 00:24:55.428 --> 00:24:57.089 and then I wrote THON, 00:24:57.089 --> 00:24:58.297 it deleted "ie", 00:24:58.297 --> 00:25:00.194 and then sent out "thon". 00:25:00.194 --> 00:25:02.396 So it is basically using delete tokens and send tokens. 00:25:02.396 --> 00:25:05.332 AUDIENCE MEMBER: Okay, so it is actually piping out a couple of backspaces, and then... 00:25:05.332 --> 00:25:08.378 MIRABAI: Exactly, yeah, so it's really transferable to just about every program. 00:25:08.378 --> 00:25:09.603 AUDIENCE MEMBER: Cool. 00:25:09.603 --> 00:25:12.103 MIRABAI: Yeah. 00:25:12.103 --> 00:25:14.794 AUDIENCE MEMBER: How would you compare qwerty to steno for hand strain? 00:25:14.794 --> 00:25:17.176 Because it looks so elegant and just, like, gentle. 00:25:17.176 --> 00:25:17.910 MIRABAI: Yes, absolutely. 00:25:17.910 --> 00:25:19.446 It's something I didn't go into too much, 00:25:19.446 --> 00:25:21.317 but the ergonomic argument is a really powerful one. 00:25:21.317 --> 00:25:23.217 I started out as a qwerty transcriptionist, 00:25:23.217 --> 00:25:24.984 and I could type around 110 words per minute, 00:25:24.984 --> 00:25:27.297 but after doing that for eight hours a day, 00:25:27.297 --> 00:25:29.256 my wrists and my hands were just killing me. 00:25:29.256 --> 00:25:29.757 And I was worried -- 00:25:29.757 --> 00:25:30.991 at the time, I was in steno school, 00:25:30.991 --> 00:25:34.496 and I was worried that I would just jeopardize my entire career by, you know, burning out my hands. 00:25:34.496 --> 00:25:37.713 And as soon as I switched to steno, it was miraculous. 00:25:37.713 --> 00:25:40.214 I mean, I do use the split ergonomic steno keyboard, 00:25:40.214 --> 00:25:43.334 but it's much more like playing the piano than playing a typewriter. 00:25:43.334 --> 00:25:46.638 You're stroking, and then you can relax, and then you stroke, and then you can relax. 00:25:46.638 --> 00:25:49.841 So you're not constantly moving your fingers without any cessation, 00:25:49.841 --> 00:25:51.678 and you're not keeping that tension in your fingers. 00:25:51.678 --> 00:25:56.458 So I can type, you know, at around 200 words per minute for eight hours without a break, 00:25:56.458 --> 00:26:01.695 and I don't feel any pain at all. 00:26:01.695 --> 00:26:06.993 AUDIENCE MEMBER: I was just curious if there were any special cases where it breaks, like words like there, their, and they're, 00:26:06.993 --> 00:26:08.763 or anagrams, or, like -- 00:26:08.763 --> 00:26:10.430 MIRABAI: Yeah, homonyms are handled really well. 00:26:10.430 --> 00:26:14.102 I mean, you have to sort of either make up or learn the specific rules of differentiating them. 00:26:14.102 --> 00:26:18.375 But yeah, I don't have any issues with homonyms, particularly. 00:26:18.375 --> 00:26:19.415 AUDIENCE MEMBER: Awesome, thank you. 00:26:19.415 --> 00:26:20.607 MIRABAI: Sure. 00:26:20.607 --> 00:26:23.046 AUDIENCE MEMBER: Hey, I just thought of another one. 00:26:23.046 --> 00:26:25.243 So you know, when you learn a totally new skill, 00:26:25.243 --> 00:26:28.289 there's sort of a point, a ramp-up period, 00:26:28.289 --> 00:26:30.757 where you have to devote yourself and be disciplined to learn the skill, 00:26:30.757 --> 00:26:32.579 and there's a point, like, where you're hooked. 00:26:32.579 --> 00:26:34.721 And from that point on, it's all coasting. 00:26:34.721 --> 00:26:36.213 It's like -- okay, you want to learn more of the language. 00:26:36.213 --> 00:26:37.966 You want to learn more of the vocabulary. 00:26:37.966 --> 00:26:43.048 So if you were speaking to a person who's, like, grown up on qwerty, like, what does it take to get to the -- 00:26:43.048 --> 00:26:44.932 okay, now you're obsessed. 00:26:44.932 --> 00:26:47.167 Like, you've got to learn how to do this -- point? 00:26:47.167 --> 00:26:48.005 MIRABAI: Yeah, that's a really good question. 00:26:48.005 --> 00:26:49.230 And it is quite variable. 00:26:49.230 --> 00:26:51.266 There is a fairly steep initial learning curve. 00:26:51.266 --> 00:26:56.504 You can type really simple phonetic words like cat and straps once you learn the chording keyboard, 00:26:56.504 --> 00:26:59.707 but there's a certain point where the frustration sets in, 00:26:59.707 --> 00:27:01.442 and you're writing words that you think are phonetic, 00:27:01.442 --> 00:27:03.506 and they don't necessarily translate the way you want them to. 00:27:03.506 --> 00:27:06.179 We're definitely working to make that much easier. 00:27:06.179 --> 00:27:08.167 You know, having sort of a prompting system, 00:27:08.167 --> 00:27:12.854 that if you type out a word letter by letter, it'll show you the equivalent steno chord for it. 00:27:12.854 --> 00:27:18.459 Or, you know, the video game, I think, will really help people to sort of just put in concentrated 00:27:18.459 --> 00:27:23.341 sort of flow-state work into it, and then suddenly wake up and be like -- 00:27:23.341 --> 00:27:27.102 I've been doing this for two hours, and now I can actually write this email without ever getting frustrated 00:27:27.102 --> 00:27:30.439 or having to stop or having to look up a word specifically. 00:27:30.439 --> 00:27:33.042 So right now, Plover is not particularly user friendly, 00:27:33.042 --> 00:27:37.482 but I think it will become more so. 00:27:37.482 --> 00:27:41.679 AUDIENCE MEMBER: How do keys such as control, alt, meta, and shift work? 00:27:41.679 --> 00:27:43.690 MIRABAI: Again, they're just defined in the dictionary. 00:27:43.690 --> 00:27:48.006 We have a special command syntax, so alt is... ALT. 00:27:48.006 --> 00:27:49.965 AUDIENCE MEMBER: Sweet. 00:27:49.965 --> 00:27:51.256 MIRABAI: Yeah. 00:27:51.256 --> 00:27:56.061 AUDIENCE MEMBER: How you do combine, say, control and shift? 00:27:56.061 --> 00:27:57.865 Is that, again... Alt-shift? 00:27:57.865 --> 00:28:00.100 MIRABAI: Well, I don't believe that right now 00:28:00.100 --> 00:28:07.921 we're able to have a sort of "hold down shift while I write the next word", but you can sort of nest the commands 00:28:07.921 --> 00:28:09.696 in a single dictionary definition. 00:28:09.696 --> 00:28:12.667 So for me, alt-tab is TABLT. 00:28:12.667 --> 00:28:14.606 So that'll just do alt-tab. 00:28:14.606 --> 00:28:18.097 But I think eventually, we do want to implement sort of a stickykey situation, 00:28:18.097 --> 00:28:22.109 where if you write one, you'll know that the next one that's written will be combined with the previous. 00:28:22.109 --> 00:28:22.800 AUDIENCE MEMBER: Thank you. 00:28:22.800 --> 00:28:25.111 MIRABAI: Sure. 00:28:25.111 --> 00:28:32.446 AUDIENCE MEMBER: Okay, I saw your demo, where there was stenographic input, and the output 00:28:32.446 --> 00:28:37.817 was valid Python chords or functions, and so on. 00:28:37.817 --> 00:28:40.217 I didn't understand how that works. 00:28:40.217 --> 00:28:49.726 Because -- are you using pre-canned special things that you trigger, or are you really freely programming 00:28:49.726 --> 00:28:55.034 with brackets and braces and curly things and all the punctuation? 00:28:55.034 --> 00:28:58.612 MIRABAI: Well, one thing that's really great about Python, as you guys know, is that it's very readable. 00:28:58.612 --> 00:29:04.876 It doesn't use that much specific syntax or punctuation that isn't common in English speech. 00:29:04.876 --> 00:29:08.190 So, you know, you can see a lot of these things are just simple English words. 00:29:08.190 --> 00:29:09.980 Original is ORJ. 00:29:09.980 --> 00:29:11.114 You know, lower is LOER. 00:29:11.114 --> 00:29:12.716 WORD, FIRST, PRINT, FIRST. 00:29:12.716 --> 00:29:19.626 All of these commands -- you know, I did define raw input as RIPT, which was raw_input(" 00:29:19.626 --> 00:29:22.363 so that's a single stroke for that specific Python command, 00:29:22.363 --> 00:29:24.530 but that's something that you'll use all the time, 00:29:24.530 --> 00:29:27.032 so it's worth defining it once, 00:29:27.032 --> 00:29:28.565 and then being able to do it in a single stroke. 00:29:28.565 --> 00:29:31.940 Similarly for variables, if you come up with a specific variable 00:29:31.940 --> 00:29:34.480 that you know you're going to be writing in your program many times over, 00:29:34.480 --> 00:29:38.243 you can just take a second, define it as a one stroke, mnemonic syllable, 00:29:38.243 --> 00:29:42.684 and then every time you reference that variable in the future, you just have to do that one stroke to get it. 00:29:42.684 --> 00:29:43.816 AUDIENCE MEMBER: Okay. 00:29:43.816 --> 00:29:46.603 I was just wondering whether I can write a new program, 00:29:46.603 --> 00:29:48.721 which is not yet defined, 00:29:48.721 --> 00:29:54.094 and I have certain identifiers which are new, and all of that. 00:29:54.094 --> 00:29:56.462 MIRABAI: Oh, absolutely, yes. 00:29:56.462 --> 00:29:57.364 AUDIENCE MEMBER: Okay, I'll try it. 00:29:57.364 --> 00:29:58.766 Thank you. 00:29:58.766 --> 00:29:59.800 MIRABAI: Yes, it's pretty simple. 00:29:59.800 --> 00:30:03.269 Anything -- you know, again, basically you can output anything that the qwerty keyboard can. 00:30:03.269 --> 00:30:09.942 So you just have to know what strokes correspond to which letters or punctuation or whatever you're using. 00:30:09.942 --> 00:30:13.913 AUDIENCE MEMBER: Okay. 00:30:13.913 --> 00:30:16.149 AUDIENCE MEMBER: Do you have any issues with screen? 00:30:16.149 --> 00:30:17.618 MIRABAI: I'm sorry? 00:30:17.618 --> 00:30:18.434 AUDIENCE MEMBER: Screen? 00:30:18.434 --> 00:30:22.221 Control-A, control-left-right, screen? 00:30:22.221 --> 00:30:28.961 You know, for -- you SSH something, and then you start screen, and then you have multiple screen sessions on it. 00:30:28.961 --> 00:30:32.298 MIRABAI: That hasn't really come up. 00:30:32.298 --> 00:30:41.040 I imagine it would be handled similarly to the way one handles it using just a qwerty keyboard. 00:30:41.040 --> 00:30:44.810 AUDIENCE MEMBER: But there's a lot of metakey combinations that one uses with screen. 00:30:44.810 --> 00:30:50.450 Like, in parallel, where you're doing control-A and something else all at the same time on qwerty. 00:30:50.450 --> 00:30:52.991 MIRABAI: You can nest those in any dictionary definition. 00:30:52.991 --> 00:30:56.517 AUDIENCE MEMBER: Okay, so you would do, like, two different chords, then? 00:30:56.517 --> 00:31:01.294 MIRABAI: Well, I sort of like to see it at a higher level, where if there's a particular command, 00:31:01.294 --> 00:31:05.431 you would just assign sort of a mnemonic hook to that command, 00:31:05.431 --> 00:31:08.640 and then assign that to whatever metakey combinations are necessary to produce it. 00:31:08.640 --> 00:31:10.176 AUDIENCE MEMBER: Cool, thank you. 00:31:10.176 --> 00:31:12.939 MIRABAI: Sure. 00:31:12.939 --> 00:31:18.586 AUDIENCE MEMBER: I think I know the answer to this question, but there's no way to get this to work on a laptop right now? 00:31:18.586 --> 00:31:19.812 MIRABAI: Unfortunately, no. 00:31:19.812 --> 00:31:21.435 There are no n-key rollover laptops. 00:31:21.435 --> 00:31:25.048 It's really frustrating, because I would pay any amount to get one, but currently, no. 00:31:25.048 --> 00:31:26.483 Yeah. 00:31:30.107 --> 00:31:31.079 AUDIENCE MEMBER: Hi. 00:31:31.079 --> 00:31:34.010 Are you familiar with transcriptionist work? 00:31:34.010 --> 00:31:36.477 MIRABAI: Yes, I was a transcriptionist for many years. 00:31:36.477 --> 00:31:39.349 AUDIENCE MEMBER: Okay, so how does this compare to, like, their crazy macro systems? 00:31:39.349 --> 00:31:40.666 MIRABAI: It's much better. 00:31:40.666 --> 00:31:42.015 Much more efficient. 00:31:42.015 --> 00:31:44.669 Yeah, with transcriptionists, mostly they use, like, text expansion systems, 00:31:44.669 --> 00:31:48.291 where they have to write the first two or three letters of a word, and then it'll sort of expand out, 00:31:48.291 --> 00:31:52.762 but with steno, most of those you can do in one stroke, so it's still almost triple the efficiency. 00:31:52.762 --> 00:31:53.912 AUDIENCE MEMBER: Wow, thanks. 00:31:53.912 --> 00:31:56.299 MIRABAI: Sure. 00:31:56.299 --> 00:31:58.835 AUDIENCE MEMBER: So thank you for captioning the Ada Initiative's latest video. 00:31:58.835 --> 00:32:00.035 MIRABAI: Absolutely! 00:32:00.035 --> 00:32:03.904 AUDIENCE MEMBER: I didn't realize how lucky we were to get one of the 400. 00:32:03.904 --> 00:32:10.285 But I just imagine that when you have a very -- you can hear code in your head, when you're writing these things. 00:32:10.285 --> 00:32:15.251 I was wondering if you could record a video of you speaking your code, or maybe speak it right now. 00:32:15.251 --> 00:32:16.685 MIRABAI: Sure! 00:32:16.685 --> 00:32:25.100 So let me start with this one here. 00:32:25.100 --> 00:32:29.334 All right, this is a sdration of how Plover can be ufed to speak at a nol kfrbl pace. 00:32:29.334 --> 00:32:32.413 You can see tha I'm trirging the speech engine manwael, 00:32:32.413 --> 00:32:37.204 but while the kpurt is spaoeg the praoef snens, I'm able to write out the negt one, 00:32:37.204 --> 00:32:41.176 rulting in a smooth and aoen flow of speech. 00:32:41.176 --> 00:32:42.416 This sdraition uses espeak... 00:32:42.416 --> 00:32:44.640 AUDIENCE MEMBER: Can you do it for code? 00:32:44.640 --> 00:32:45.584 Your code one? 00:32:45.584 --> 00:32:52.224 MIRABAI: Oh my code one, sure, yeah, absolutely. 00:32:52.224 --> 00:32:53.358 Yeah, you can see it's captioned down at the bottom. 00:32:53.358 --> 00:33:02.002 Orj kwals ript kpa ent ai word kln prent rr f orj pp s afl prens kln rr tab word kwals orj 00:33:02.002 --> 00:33:09.117 pp loer prens rr tab firs kwals word brkt 0 br*kt rr tab print firs rr else kln 00:33:09.117 --> 00:33:14.424 rr tab print kwgs kpa not ai word tppl kwgs 00:33:14.424 --> 00:33:16.981 (applause) 00:33:16.981 --> 00:33:22.321 Yeah, that is literally what's going on in my head as I'm writing steno. 00:33:22.321 --> 00:33:24.158 So there you go. 00:33:24.158 --> 00:33:27.928 MIRABAI: No more questions? 00:33:27.928 --> 00:33:30.698 All right, then I guess I will -- oh, is there one? 00:33:30.698 --> 00:33:32.311 Yeah, okay. 00:33:32.311 --> 00:33:38.239 AUDIENCE MEMBER: So I was just pulling up your website, and seeing that these are sort of acrylic pieces 00:33:38.239 --> 00:33:39.807 that I glue on my keyboard, basically. 00:33:39.807 --> 00:33:40.841 MIRABAI: Yeah, laser cut acrylic. 00:33:40.841 --> 00:33:44.744 AUDIENCE MEMBER: Do you see any prospects for maybe a little more sophisticated hardware improving things? 00:33:44.744 --> 00:33:45.946 MIRABAI: Absolutely! 00:33:45.946 --> 00:33:48.480 AUDIENCE MEMBER: I mean, a lot of people are now getting hobbyist 3D printers. 00:33:48.480 --> 00:33:52.086 Do you imagine people printing out their own steno keyboards or something? 00:33:52.086 --> 00:33:55.662 MIRABAI: I was actually talking about a possibility of a Raspberry Pi-based sort of steno kit, 00:33:55.662 --> 00:33:58.190 that we could sell for people to assemble, 00:33:58.190 --> 00:34:02.396 and as I said, we are also thinking about a commercial venture of just selling sort of low cost, 00:34:02.396 --> 00:34:03.832 pre-made steno machines. 00:34:03.832 --> 00:34:05.763 So yeah, there's a lot of potential in that. 00:34:05.763 --> 00:34:06.836 AUDIENCE MEMBER: From Adafruit! 00:34:06.836 --> 00:34:08.003 MIRABAI: From Adafruit? 00:34:08.003 --> 00:34:09.807 Maybe! 00:34:09.807 --> 00:34:10.437 We'll see what happens. 00:34:10.437 --> 00:34:12.670 AUDIENCE MEMBER: So is it just 22 switches, basically, that you would need for one of these? 00:34:12.670 --> 00:34:13.605 MIRABAI: Exactly, yeah. 00:34:13.605 --> 00:34:14.167 Absolutely. 00:34:14.167 --> 00:34:19.079 It's very simple. 00:34:19.079 --> 00:34:19.948 All right, so I guess that's it. 00:34:19.948 --> 99:59:59.999 Thank you!