1 00:00:04,542 --> 00:00:07,546 MIRABAI: Howdy. 2 00:00:07,546 --> 00:00:09,413 So, first off, who am I? 3 00:00:09,413 --> 00:00:11,587 My name is Mirabai Knight, I'm based in New York City, 4 00:00:11,587 --> 00:00:17,373 and I'm a professional stenographer for Deaf and hard of hearing college students and professionals. 5 00:00:17,373 --> 00:00:22,593 About six years ago, I got really frustrated with my proprietary steno software. 6 00:00:22,593 --> 00:00:27,127 It was, like, $4,000, you know, $700 bucks a year for upgrades, really buggy, 7 00:00:27,127 --> 00:00:29,037 bloated, terrible DRM. 8 00:00:29,037 --> 00:00:30,566 It was just driving me nuts, right? 9 00:00:30,566 --> 00:00:36,841 So I decided there needed to be an open source alternative to steno -- professional, realtime, 10 00:00:36,841 --> 00:00:39,877 computer-connected stenography. 11 00:00:39,877 --> 00:00:41,794 So I figured no one else was going to write it, 12 00:00:41,794 --> 00:00:42,948 if I didn't do it myself. 13 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, 14 00:00:48,619 --> 00:00:50,553 recently of the MIT Media Lab, 15 00:00:50,553 --> 00:00:55,725 who started out tutoring me in Python, and then got so wrapped up in the project 16 00:00:55,725 --> 00:00:57,207 that he basically came to me and said -- 17 00:00:57,207 --> 00:00:58,991 listen, I'll develop this for you. 18 00:00:58,991 --> 00:01:00,331 You can pay me whatever you can afford, 19 00:01:00,331 --> 00:01:02,133 but I want to make this happen. 20 00:01:02,133 --> 00:01:03,710 So he took over the project. 21 00:01:03,710 --> 00:01:05,165 Has been coding it ever since, 22 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, 23 00:01:08,612 --> 00:01:10,005 because of his full-time job, 24 00:01:10,005 --> 00:01:12,294 Hesky Fisher, whose day job is at Google, 25 00:01:12,294 --> 00:01:13,743 took over the project. 26 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. 27 00:01:18,546 --> 00:01:23,352 Also, we've got about 200 users who weigh in, bug testing, giving input. 28 00:01:23,352 --> 00:01:25,085 It's been a really cool project. 29 00:01:25,085 --> 00:01:26,626 It's been around for about three years now, 30 00:01:26,626 --> 00:01:29,026 and it's going strong. 31 00:01:29,026 --> 00:01:30,872 What is stenography? 32 00:01:30,872 --> 00:01:34,798 It's a phonetic-mnemonic text input system. 33 00:01:34,798 --> 00:01:36,897 It's been around since about 1911, 34 00:01:36,897 --> 00:01:40,503 and to be a professional stenographer, like me, 35 00:01:40,503 --> 00:01:43,502 you basically need a speed of 240 words per minute, 36 00:01:43,502 --> 00:01:45,939 with 99.9% accuracy. 37 00:01:45,939 --> 00:01:50,585 That means an error or omission about every thousand words or four pages. 38 00:01:50,585 --> 00:01:54,796 You can see this old-fashioned steno machine obviously doesn't hook up to a computer. 39 00:01:54,796 --> 00:01:56,320 That's from around 1930. 40 00:01:56,320 --> 00:01:58,020 Cost about $50. 41 00:01:58,020 --> 00:02:02,868 This much bigger sort of split, ergonomic steno machine, which is the one I use professionally, 42 00:02:02,868 --> 00:02:05,247 costs $4,000. 43 00:02:05,247 --> 00:02:07,828 But this one down here, which just looks like a regular qwerty keyboard, 44 00:02:07,828 --> 00:02:13,200 except for some mysterious rectangular keys pasted onto it, 45 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 46 00:02:18,375 --> 00:02:19,543 through the Plover store. 47 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. 48 00:02:26,222 --> 00:02:28,985 But why should you care? 49 00:02:28,985 --> 00:02:29,919 You're all developers. 50 00:02:29,919 --> 00:02:30,453 I'm not. 51 00:02:30,453 --> 00:02:32,690 I'm still trying to learn Python, but it's a hard slog. 52 00:02:32,690 --> 00:02:36,045 And when you think of stenographers, you probably think of, you know, 53 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!" 54 00:02:40,428 --> 00:02:41,497 Why should you care? 55 00:02:41,497 --> 00:02:44,216 It's not interesting, it's not cool, it's not useful. 56 00:02:44,216 --> 00:02:46,834 But you're wrong. 57 00:02:46,834 --> 00:02:49,038 Steno is good for a ridiculous amount of things. 58 00:02:49,038 --> 00:02:51,272 It's incredibly elegant, useful, efficient. 59 00:02:51,272 --> 00:02:55,777 I won't really go into all the details of these six things here. 60 00:02:55,777 --> 00:03:00,424 I wrote a series of essays detailing each one of them. 61 00:03:00,424 --> 00:03:01,749 Speed, wearability, ergonomics -- 62 00:03:01,749 --> 00:03:05,053 if you're interested in them, check out the link from my PyCon speakers page. 63 00:03:05,053 --> 00:03:09,296 But I'll go briefly into paying work and accessibility for people with disabilities. 64 00:03:09,296 --> 00:03:13,275 Mostly, I'll focus on the last one, which is fluency and efficiency of text entry, 65 00:03:13,275 --> 00:03:15,230 which is why you guys might care. 66 00:03:15,230 --> 00:03:17,498 So this speech will have sort of a two-pronged approach. 67 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, 68 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. 69 00:03:26,132 --> 00:03:29,202 That it's incredibly useful, and that you personally should learn it. 70 00:03:29,202 --> 00:03:30,573 That might work for some of you. 71 00:03:30,573 --> 00:03:32,073 Probably won't work for all of you. 72 00:03:32,073 --> 00:03:33,678 So at the end of that section, 73 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. 74 00:03:38,581 --> 00:03:40,014 Even if you don't personally learn it, 75 00:03:40,014 --> 00:03:44,687 why it's really important that other people have the opportunity to use it. 76 00:03:44,687 --> 00:03:46,524 This is just the steno alphabet. 77 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. 78 00:03:51,793 --> 00:03:55,365 The steno keyboard has 22 keys. 79 00:03:55,365 --> 00:04:00,070 Basically it's a two-dimensional syllabic input system, 80 00:04:00,070 --> 00:04:01,724 as opposed to the qwerty system, 81 00:04:01,724 --> 00:04:05,967 where obviously you take any word, break it down into its component letters, 82 00:04:05,967 --> 00:04:08,440 and then type out each letter one by one. 83 00:04:08,440 --> 00:04:12,219 With steno, you input each syllable in a single stroke, 84 00:04:12,219 --> 00:04:16,453 though sometimes you can actually get more syllables per stroke, depending on the word. 85 00:04:16,453 --> 00:04:19,920 So the left hand handles the initial consonants of the word, 86 00:04:19,920 --> 00:04:21,791 the right hand handles the final consonants, 87 00:04:21,791 --> 00:04:24,058 and the thumbs handle the vowels in the middle. 88 00:04:24,058 --> 00:04:26,764 There's no spacebar. 89 00:04:26,764 --> 00:04:29,999 Each stroke is submitted after all of the keys are released. 90 00:04:29,999 --> 00:04:32,567 And most words can be written phonetically. 91 00:04:32,567 --> 00:04:34,604 One example here is "straps". 92 00:04:34,604 --> 00:04:36,273 You can look on the steno keyboard. 93 00:04:36,273 --> 00:04:38,239 S-T-R-A-P-S. 94 00:04:38,239 --> 00:04:41,517 You hit all of those together in one stroke, and it comes out "straps". 95 00:04:41,517 --> 00:04:42,911 Very intuitive. 96 00:04:42,911 --> 00:04:49,049 Now, Plover is unique -- as opposed to all the other proprietary steno software, 97 00:04:49,049 --> 00:04:51,448 in that it is essentially a keyboard emulator. 98 00:04:51,448 --> 00:04:55,090 Most proprietary software is a word processor, 99 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, 100 00:04:59,149 --> 00:05:01,231 with lots of delays and convoluted things. 101 00:05:01,231 --> 00:05:02,695 It's very inconvenient. 102 00:05:02,695 --> 00:05:06,733 But Plover is stripped down and designed just to let you interact with your system, 103 00:05:06,733 --> 00:05:10,811 as if you were using a qwerty keyboard. 104 00:05:10,811 --> 00:05:13,506 So, for an example, if you wanted to do a two-syllable word, 105 00:05:13,506 --> 00:05:15,972 you start out with PAOEU. 106 00:05:15,972 --> 00:05:17,579 P, long I; PAOEU. 107 00:05:17,579 --> 00:05:18,786 And you get the word "pie". 108 00:05:18,786 --> 00:05:20,013 P-I-E. 109 00:05:20,013 --> 00:05:21,415 Then you add on THON, 110 00:05:21,415 --> 00:05:24,719 and suddenly Plover will delete the I and the E of "pie", 111 00:05:24,719 --> 00:05:28,656 and send out Y-T-H-O-N, to get python. 112 00:05:28,656 --> 00:05:31,024 Very simple. 113 00:05:31,024 --> 00:05:32,366 As I mentioned, 114 00:05:32,366 --> 00:05:34,321 there are some words which you can write in a single stroke, 115 00:05:34,321 --> 00:05:38,866 even if they're ten letters and four syllables long, 116 00:05:38,866 --> 00:05:40,032 such as deplorable. 117 00:05:40,032 --> 00:05:42,868 D-P-L-O-R-B-L, dplorbl. 118 00:05:42,868 --> 00:05:47,881 Peripheral, P-R-I-F-R-L, prifrl. 119 00:05:47,881 --> 00:05:49,950 I'm going to -- oh, yes, question? 120 00:05:49,950 --> 00:05:51,780 AUDIENCE MEMBER: Could you go back to deplorable for a second? 121 00:05:51,780 --> 00:05:53,150 MIRABAI: Go back to deplorable? 122 00:05:53,150 --> 00:05:53,914 AUDIENCE MEMBER: Yes. 123 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? 124 00:05:57,085 --> 00:05:59,686 Yes, I guess I should have mentioned that, 125 00:05:59,686 --> 00:06:02,321 since the steno keyboard only has 22 keys, 126 00:06:02,321 --> 00:06:07,333 the letters that don't appear are produced by specific chords. 127 00:06:07,333 --> 00:06:13,877 So in this case, TK is D, HR is L, and down here, EU is I. 128 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. 129 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, 130 00:06:25,152 --> 00:06:28,285 which I'm trying to use to learn Python, with steno. 131 00:06:28,285 --> 00:06:30,148 But just to keep in mind, while you're watching this, 132 00:06:30,148 --> 00:06:34,126 it took 143 keystrokes to do the same amount of code in qwerty, 133 00:06:34,126 --> 00:06:39,362 whereas it took 54 keystrokes to do it in steno. 134 00:06:39,362 --> 00:06:42,753 All right, let me rewind here. 135 00:06:42,753 --> 00:06:48,840 Down below, you can see the phonetic equivalent of the steno that I'm writing. 136 00:07:03,084 --> 00:07:05,153 Pretty simple. 137 00:07:05,153 --> 00:07:10,460 (applause) 138 00:07:10,460 --> 00:07:13,459 All right, let me go back here. 139 00:07:13,459 --> 00:07:14,890 Right. 140 00:07:14,890 --> 00:07:20,068 Another big advantage of this two-dimensional versus one-dimensional text input system 141 00:07:20,068 --> 00:07:25,006 is that you can have mnemonic hooks for all of your words and commands. 142 00:07:25,006 --> 00:07:26,306 So I'm a Vim user. 143 00:07:26,306 --> 00:07:27,739 AUDIENCE MEMBER: Woo! 144 00:07:27,739 --> 00:07:28,888 MIRABAI: Yeah, Vim! 145 00:07:28,888 --> 00:07:29,551 Woo! 146 00:07:29,551 --> 00:07:35,121 And most of these sort of one-letter commands in Vim are sort of intuitive. 147 00:07:35,121 --> 00:07:36,914 You know, back is go back one word. 148 00:07:36,914 --> 00:07:37,452 That makes sense, right? 149 00:07:37,452 --> 00:07:41,655 But r is used -- say if you want to record a macro, right? 150 00:07:41,655 --> 00:07:43,254 R is used for replace a letter. 151 00:07:43,254 --> 00:07:45,225 M is used for mark my spot. 152 00:07:45,225 --> 00:07:49,290 So you have to have these weird, convoluted things like reQord maQro, with a q. 153 00:07:49,290 --> 00:07:50,496 It doesn't really work. 154 00:07:50,496 --> 00:07:53,734 Because you only have one letter to sort of hang your mnemonic hook on. 155 00:07:53,734 --> 00:07:56,542 Whereas, with steno, since you have an entire syllable per stroke, 156 00:07:56,542 --> 00:08:00,089 you can do really complex commands like GLERCH, 157 00:08:00,089 --> 00:08:02,083 for "launch browser and perform a Google search", 158 00:08:02,083 --> 00:08:08,030 or QUARN, short for "quarantine", which -- when I make an error in Python -- er, in Plover -- 159 00:08:08,030 --> 00:08:11,659 I can cut that highlighted text and append it to a document that I review later 160 00:08:11,659 --> 00:08:16,496 to help fix bugs in Plover's orthographic system. 161 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 162 00:08:22,858 --> 00:08:23,810 and you want to learn it. 163 00:08:23,810 --> 00:08:24,746 I might not have. 164 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. 165 00:08:28,406 --> 00:08:30,586 The altruistic argument. 166 00:08:30,586 --> 00:08:33,082 In this country, there are 35 million people with hearing loss, 167 00:08:33,082 --> 00:08:35,648 and about 2% of those know Sign Language, 168 00:08:35,648 --> 00:08:38,987 so 98% can only really be helped by realtime captioning. 169 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. 170 00:08:43,262 --> 00:08:46,902 Plus there are 3 to 8 million people who can't use their voices to speak, 171 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 172 00:08:51,297 --> 00:08:55,241 in a truly realtime way, at true conversational speeds, 173 00:08:55,241 --> 00:09:01,781 as opposed to tapping things out in a pictographic system that's very slow and awkward. 174 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 175 00:09:06,312 --> 00:09:10,951 is because the only way to learn steno these days is through for-profit trade schools 176 00:09:10,951 --> 00:09:14,162 that are really kind of scams, you know? 177 00:09:14,162 --> 00:09:15,755 They'll let anybody in. 178 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, 179 00:09:21,095 --> 00:09:24,899 and the national dropout rate is 85%. 180 00:09:24,899 --> 00:09:28,734 Because, honestly, most of the people going to steno school don't have other prospects 181 00:09:28,734 --> 00:09:31,741 and aren't really well suited to learn the system. 182 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. 183 00:09:38,076 --> 00:09:43,316 But getting that extra additional speed from 160 to 225, which is graduation speed, 184 00:09:43,316 --> 00:09:45,364 can take two to six years. 185 00:09:45,364 --> 00:09:51,024 The problem is that we currently don't have any amateurs or hobbyists or tinkerers, 186 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. 187 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, 188 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. 189 00:10:08,270 --> 00:10:11,243 If there's no amateurs, there's no future for the program. 190 00:10:11,243 --> 00:10:12,545 And that's what's happening with steno. 191 00:10:12,545 --> 00:10:13,352 It's disappearing. 192 00:10:13,352 --> 00:10:18,255 People aren't using this technology, because they're locked into this proprietary system. 193 00:10:18,255 --> 00:10:22,527 That's why Plover now is totally free software, 194 00:10:22,527 --> 00:10:26,430 the hardware is really much more affordable than the $4,000 proprietary software (sic), 195 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 196 00:10:31,999 --> 00:10:37,178 that will teach Plover in an addictive way, kind of retro-style arcade games. 197 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. 198 00:10:43,442 --> 00:10:45,209 You start slow, you get faster, 199 00:10:45,209 --> 00:10:49,940 you start with simple words, you sort of build up your wordhoard, as you go along. 200 00:10:49,940 --> 00:10:53,415 It's almost like an RPG plus a platformer, combined. 201 00:10:53,415 --> 00:10:55,521 So we're hoping that, as the steno community grows, 202 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, 203 00:10:58,989 --> 00:11:03,329 and then the steno community hopefully will just explode. 204 00:11:03,329 --> 00:11:06,563 There's a bunch of resources online. 205 00:11:06,563 --> 00:11:08,976 If you go to ploversteno.org. 206 00:11:08,976 --> 00:11:14,273 User groups, forums, mailing lists, all sorts of stuff. 207 00:11:14,273 --> 00:11:16,474 And you can teach yourself steno on your own, try it out. 208 00:11:16,474 --> 00:11:22,254 And I would also be happy to answer any questions at this point. 209 00:11:22,254 --> 00:11:23,480 (applause) 210 00:11:23,480 --> 00:11:28,553 Oh, thank you. 211 00:11:28,553 --> 00:11:29,784 AUDIENCE MEMBER: More demos. 212 00:11:29,784 --> 00:11:30,789 MIRABAI: More demos? 213 00:11:30,789 --> 00:11:32,793 Okay. 214 00:11:32,793 --> 00:11:34,191 AUDIENCE MEMBER: Or questions. 215 00:11:34,191 --> 00:11:36,510 MIRABAI: First I'll ask for questions. 216 00:11:36,510 --> 00:11:38,304 If there are no more questions, I'll give you more demos. 217 00:11:38,304 --> 00:11:41,602 No questions? 218 00:11:41,602 --> 00:11:43,369 AUDIENCE MEMBER: Hi. 219 00:11:43,369 --> 00:11:46,702 I switched to Colemak this year, 220 00:11:46,702 --> 00:11:48,439 which is just a different keyboard layout. 221 00:11:48,439 --> 00:11:50,675 It's more... I don't know. 222 00:11:50,675 --> 00:11:52,582 It's better. 223 00:11:52,582 --> 00:11:54,046 Whatever you want to call it. 224 00:11:54,046 --> 00:11:59,384 And I found that I accidentally locked myself out of everybody else's computers. 225 00:11:59,384 --> 00:12:04,026 Because I can't type on other people's computers anymore. 226 00:12:04,026 --> 00:12:06,057 Which kind of sucks. 227 00:12:06,057 --> 00:12:07,259 I don't know. 228 00:12:07,259 --> 00:12:09,093 The jury's still out. 229 00:12:09,093 --> 00:12:13,863 I wonder if you experience this at all, with steno. 230 00:12:13,863 --> 00:12:17,801 You sit down at a library computer. 231 00:12:17,801 --> 00:12:19,169 MIRABAI: I mean, it is a disadvantage. 232 00:12:19,169 --> 00:12:20,671 It's annoying having to switch back to qwerty. 233 00:12:20,671 --> 00:12:25,207 We're currently looking at possible commercial solutions, 234 00:12:25,207 --> 00:12:26,878 for a low cost, very portable steno machine, 235 00:12:26,878 --> 00:12:30,581 that you can just plug into any computer, and it'll work as a qwerty keyboard. 236 00:12:30,581 --> 00:12:32,984 Sort of emulate a qwerty keyboard, without having to install any software. 237 00:12:32,984 --> 00:12:34,661 Which I think will help. 238 00:12:34,661 --> 00:12:36,253 I mean, it's annoying having to carry a keyboard around, 239 00:12:36,253 --> 00:12:38,497 but that might be a sort of compromise solution. 240 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. 241 00:12:46,733 --> 00:12:48,309 It replaced it. 242 00:12:48,309 --> 00:12:50,704 Does steno do that to you? 243 00:12:50,704 --> 00:12:53,505 MIRABAI: No, I'm still pretty good with qwerty, yeah. 244 00:12:53,505 --> 00:12:59,714 It's just annoying. 245 00:12:59,714 --> 00:13:00,315 AUDIENCE MEMBER: Hi. 246 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. 247 00:13:06,054 --> 00:13:10,230 Really hard to use, to send emails and so forth. 248 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? 249 00:13:17,672 --> 00:13:21,477 MIRABAI: Well, because it's a two-handed system, it's not too easy to transfer. 250 00:13:21,477 --> 00:13:23,637 I hope eventually there will be a wearable solution, 251 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. 252 00:13:28,344 --> 00:13:31,076 I think this really sort of rises and falls 253 00:13:31,076 --> 00:13:34,423 depending on whether Google Glass takes off or sinks like a stone. 254 00:13:34,423 --> 00:13:36,139 If people start having wearable options, 255 00:13:36,139 --> 00:13:38,279 and then get frustrated with the input methods available, 256 00:13:38,279 --> 00:13:40,591 I think steno could be a really good solution to that, 257 00:13:40,591 --> 00:13:45,048 but if wearable computing is really just relegated back to the '90s, who knows? 258 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. 259 00:13:50,090 --> 00:13:51,195 AUDIENCE MEMBER: Thank you very much. 260 00:13:51,195 --> 00:13:53,355 MIRABAI: Sure. 261 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, 262 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, 263 00:14:02,096 --> 00:14:05,269 and the hj keys are a no-go. 264 00:14:05,269 --> 00:14:07,036 So how do you handle that? 265 00:14:07,036 --> 00:14:10,707 And also maybe you could address how you handle things like parens and square brackets. 266 00:14:10,707 --> 00:14:12,845 Things of that nature. 267 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. 268 00:14:20,883 --> 00:14:26,004 Basically, for me, the sort of iconic Python double parentheses with nothing in them 269 00:14:26,004 --> 00:14:27,922 I just defined as PRENS. 270 00:14:27,922 --> 00:14:29,157 I write it out at PRENS. 271 00:14:29,157 --> 00:14:31,322 If I want an open parenthesis, I do PREN, 272 00:14:31,322 --> 00:14:33,262 and if I want a closed one, I do PRENT. 273 00:14:33,262 --> 00:14:35,506 Brackets are BRKT and BR*KT. 274 00:14:35,506 --> 00:14:37,702 It's actually fairly intuitive, once you get used to them. 275 00:14:37,702 --> 00:14:41,705 And the nice thing about steno is that your fingers never stray from the home row, 276 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. 277 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 278 00:14:51,345 --> 00:14:53,179 underneath your fingers. 279 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? 280 00:15:00,123 --> 00:15:03,625 MIRABAI: Yeah, you do them sort of like this. 281 00:15:03,625 --> 00:15:05,358 It's very simple. 282 00:15:05,358 --> 00:15:06,727 AUDIENCE MEMBER: Where does that configuration live? 283 00:15:06,727 --> 00:15:08,331 MIRABAI: Say again? 284 00:15:08,331 --> 00:15:10,238 AUDIENCE MEMBER: Where does that configuration live? 285 00:15:10,238 --> 00:15:13,135 Is that your vimrc, or is that the steno? 286 00:15:13,135 --> 00:15:15,172 MIRABAI: Oh, no, no, I still just use regular Vim mappings. 287 00:15:15,172 --> 00:15:17,273 Like, if I want to go back a word, I still write b. 288 00:15:17,273 --> 00:15:20,921 I just write b on the steno keyboard, which is PW plus asterisk. 289 00:15:20,921 --> 00:15:25,114 (laughter) 290 00:15:25,114 --> 00:15:28,149 AUDIENCE MEMBER: You said it takes two to six years to become a fully trained steno. 291 00:15:28,149 --> 00:15:29,152 MIRABAI: To get really fast, yeah. 292 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 -- 293 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, 294 00:15:38,533 --> 00:15:41,564 and how quickly you pick it up, but not that much. 295 00:15:41,564 --> 00:15:42,436 AUDIENCE MEMBER: Thanks. 296 00:15:42,436 --> 00:15:43,503 MIRABAI: Yeah, sure. 297 00:15:43,503 --> 00:15:47,674 AUDIENCE MEMBER: Probably about the same time as learning Dvorak, honestly. 298 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? 299 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. 300 00:15:55,175 --> 00:15:57,576 MIRABAI: Yes, this is about foreign languages in steno. 301 00:15:57,576 --> 00:16:00,589 We actually do have a number of people on the Plover user group from other countries. 302 00:16:00,589 --> 00:16:02,882 There's one from Poland. 303 00:16:02,882 --> 00:16:07,654 I think there's a Russian-American who is interested in using steno in Russian. 304 00:16:07,654 --> 00:16:11,188 AUDIENCE MEMBER: Polish uses the Latin alphabet. 305 00:16:11,188 --> 00:16:13,092 MIRABAI: Yeah, no, I know. 306 00:16:13,092 --> 00:16:17,227 But basically, Plover can output anything in the Unicode character set. 307 00:16:17,227 --> 00:16:21,168 And I think there are stenographic theories for other languages. 308 00:16:21,168 --> 00:16:23,009 Some of them you might have to start from scratch, 309 00:16:23,009 --> 00:16:26,064 but I think for most European languages, there already is an established stenographic theory 310 00:16:26,064 --> 00:16:28,172 that you would just have to import into the Plover system. 311 00:16:28,172 --> 00:16:29,741 So there's a lot of potential there. 312 00:16:29,741 --> 00:16:32,314 Not many people are using it at this point. 313 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. 314 00:16:36,984 --> 00:16:38,564 MIRABAI: Quite possibly. 315 00:16:38,564 --> 00:16:40,435 Since it's phonetic. 316 00:16:40,435 --> 00:16:46,068 I believe there is a pre-existing Russian stenographic system, but I'm not completely positive. 317 00:16:46,068 --> 00:16:46,637 AUDIENCE MEMBER: Okay, thanks. 318 00:16:46,637 --> 00:16:48,385 MIRABAI: Sure. 319 00:16:48,385 --> 00:16:49,003 AUDIENCE MEMBER: Hi. 320 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 -- 321 00:16:53,270 --> 00:16:54,892 it looks like a normal keyboard. 322 00:16:54,892 --> 00:16:56,412 MIRABAI: Not quite. 323 00:16:56,412 --> 00:16:57,714 AUDIENCE MEMBER: So are there hardware differences? 324 00:16:57,714 --> 00:16:58,447 MIRABAI: There are, yeah. 325 00:16:58,447 --> 00:17:00,522 The main thing is that it needs to have n-key rollover. 326 00:17:00,522 --> 00:17:05,346 Because most keyboards won't accept chords of more than, like, two keys at a time. 327 00:17:05,346 --> 00:17:10,391 So the one we use -- the cheapest n-key rollover keyboard is the Microsoft Sidewinder X4, 328 00:17:10,391 --> 00:17:11,455 which is like a gaming keyboard. 329 00:17:14,055 --> 00:17:15,013 AUDIENCE MEMBER: Sorry, follow up. 330 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? 331 00:17:22,757 --> 00:17:24,059 MIRABAI: They're all more expensive than that. 332 00:17:24,059 --> 00:17:26,979 Yeah, like the Majestouch costs about $120. 333 00:17:26,979 --> 00:17:27,556 Works great. 334 00:17:27,556 --> 00:17:31,000 But nothing cheaper than $50, unfortunately. 335 00:17:31,000 --> 00:17:32,664 AUDIENCE MEMBER: How did you come up with the name? 336 00:17:32,664 --> 00:17:33,722 MIRABAI: Oh, yes. 337 00:17:33,722 --> 00:17:36,506 Actually, let me show you the logo. 338 00:17:36,506 --> 00:17:37,574 If you can see this little guy -- 339 00:17:37,574 --> 00:17:39,406 a plover is a sort of a wading bird. 340 00:17:39,406 --> 00:17:42,243 I came up with it for two reasons. 341 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, 342 00:17:47,416 --> 00:17:50,759 and secondly, I like that it's a phonetic system, 343 00:17:50,759 --> 00:17:52,753 but Plover is a non-phonetic word. 344 00:17:52,753 --> 00:17:54,087 Sort of perverse that way. 345 00:17:54,087 --> 00:17:55,625 But you can see on his little wing there -- 346 00:17:55,625 --> 00:17:59,970 the dark brown patches spell out Plover. 347 00:17:59,970 --> 00:18:01,630 Because his little wing is a steno keyboard. 348 00:18:01,630 --> 00:18:04,223 So P-L-O-F-R spells out Plover. 349 00:18:04,223 --> 00:18:08,207 (applause) 350 00:18:08,207 --> 00:18:10,505 AUDIENCE MEMBER: You mentioned just a few moments ago 351 00:18:10,505 --> 00:18:13,309 that you type bracket and paren by typing combinations of... 352 00:18:13,309 --> 00:18:16,745 Like, that sound like bracket and paren. 353 00:18:16,745 --> 00:18:19,890 What do you do when you actually want to type the word bracket? 354 00:18:19,890 --> 00:18:21,482 MIRABAI: Oh, well, that's yet another definition. 355 00:18:21,482 --> 00:18:26,062 Basically, for the actual character bracket, I take out the vowel. 356 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. 357 00:18:31,500 --> 00:18:32,869 AUDIENCE MEMBER: Like everything. 358 00:18:32,869 --> 00:18:34,870 MIRABAI: Yeah! 359 00:18:34,870 --> 00:18:36,814 AUDIENCE MEMBER: So this is really cool. 360 00:18:36,814 --> 00:18:41,446 My question is: You mentioned that you have, like, a personal dictionary. 361 00:18:41,446 --> 00:18:42,479 MIRABAI: Yes. 362 00:18:42,479 --> 00:18:44,212 AUDIENCE MEMBER: How is that formed? 363 00:18:44,212 --> 00:18:45,881 And sort of what's the interface for that? 364 00:18:45,881 --> 00:18:47,149 MIRABAI: Sure. 365 00:18:47,149 --> 00:18:49,013 AUDIENCE MEMBER: And I guess the other question is... 366 00:18:49,013 --> 00:18:53,922 Let's assume that this comes to dominate, like, the hacker world. 367 00:18:53,922 --> 00:18:54,821 MIRABAI: I hope so! 368 00:18:54,821 --> 00:18:57,226 That's what I'm going for! 369 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? 370 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 371 00:19:05,948 --> 00:19:07,738 when you're using someone else's computer. 372 00:19:07,738 --> 00:19:10,115 But the dictionary is inherent. 373 00:19:10,115 --> 00:19:11,874 Each stenographer has their own dictionary. 374 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, 375 00:19:16,476 --> 00:19:18,047 but it was a little bit clumsy. 376 00:19:18,047 --> 00:19:19,453 It's actually working pretty well now. 377 00:19:19,453 --> 00:19:20,847 It's one of our new features. 378 00:19:20,847 --> 00:19:22,083 It's really useful. 379 00:19:22,083 --> 00:19:24,362 But yeah, you would have to have some way of transporting your dictionary. 380 00:19:24,362 --> 00:19:26,153 But it's, like, a 4-meg text file. 381 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 382 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. 383 00:19:36,451 --> 00:19:40,167 AUDIENCE MEMBER: And to define those words, you, I assume, do another chord 384 00:19:40,167 --> 00:19:43,072 That says, "I'm going to define a new word and here it is?" 385 00:19:43,072 --> 00:19:44,379 MIRABAI: Correct, yep. 386 00:19:44,379 --> 00:19:45,575 Yeah, it's actually pretty seamless. 387 00:19:45,575 --> 00:19:48,210 AUDIENCE MEMBER: Cool! 388 00:19:48,210 --> 00:19:51,311 AUDIENCE MEMBER: Hi, I used to work at a court reporting firm, actually, 389 00:19:51,311 --> 00:19:53,118 so this all sounds too familiar. 390 00:19:53,118 --> 00:19:59,454 And reading the description, this will be great for a realtime court reporting application. 391 00:19:59,454 --> 00:20:03,224 Do you have plans for expanding this in the future, in a commercial way? 392 00:20:03,224 --> 00:20:04,492 MIRABAI: No. 393 00:20:04,492 --> 00:20:06,062 I want Plover to remain open source. 394 00:20:06,062 --> 00:20:09,364 Honestly, I'm not really interested in breaking into the court reporting market, 395 00:20:09,364 --> 00:20:10,705 because I don't do court reporting, 396 00:20:10,705 --> 00:20:12,700 and I find that stuff incredibly tedious. 397 00:20:12,700 --> 00:20:17,673 So the $4,000 proprietary software already handles the court reporting. 398 00:20:17,673 --> 00:20:20,910 But I do, you know, realtime stenography for the Deaf and hard of hearing. 399 00:20:20,910 --> 00:20:26,145 AUDIENCE MEMBER: Cool, thank you. 400 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. 401 00:20:30,865 --> 00:20:32,720 Have you talked to these people yet? 402 00:20:32,720 --> 00:20:34,324 MIRABAI: No, actually. 403 00:20:34,324 --> 00:20:35,991 That's a really good idea. 404 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. 405 00:20:40,069 --> 00:20:41,611 I think that would be a really good application, 406 00:20:41,611 --> 00:20:45,843 and a lot cheaper to develop than a big graphics extravaganza. 407 00:20:45,843 --> 00:20:49,972 Yeah, right now the typing game community are pretty excited about Plover. 408 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. 409 00:20:57,012 --> 00:20:58,481 Demos? 410 00:20:58,481 --> 00:21:03,017 All right. I got a whole playlist here. 411 00:21:03,017 --> 00:21:04,228 AUDIENCE MEMBER: You went too fast! 412 00:21:04,228 --> 00:21:05,518 MIRABAI: Sorry about that. 413 00:21:05,518 --> 00:21:10,730 (humming) 414 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. 415 00:21:17,565 --> 00:21:22,777 I think I must have just gone on adrenaline this time. 416 00:21:22,777 --> 00:21:24,107 AUDIENCE MEMBER: Sorry, may I ask another quick question? 417 00:21:24,107 --> 00:21:24,738 MIRABAI: Sure! 418 00:21:24,738 --> 00:21:26,108 AUDIENCE MEMBER: So how does it work with the thumbs? 419 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 420 00:21:30,892 --> 00:21:32,615 at the same time with your thumb, right? 421 00:21:32,615 --> 00:21:33,782 MIRABAI: Exactly, yes. 422 00:21:33,782 --> 00:21:35,117 AUDIENCE MEMBER: Okay, cool. 423 00:21:35,117 --> 00:21:36,351 MIRABAI: Yep, that's exactly right. 424 00:21:36,351 --> 00:21:37,927 AUDIENCE MEMBER: It's convenient to press two keys at once? 425 00:21:37,927 --> 00:21:39,189 MIRABAI: It is, yeah. 426 00:21:39,189 --> 00:21:40,390 I mean, the steno keyboard is designed that way. 427 00:21:40,390 --> 00:21:43,229 Basically the footprint of the steno keyboard is very small. 428 00:21:43,229 --> 00:21:46,195 It's basically the size of a typical hand, you know. 429 00:21:46,195 --> 00:21:49,482 AUDIENCE MEMBER: Okay, that makes sense, yeah. 430 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, 431 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. 432 00:22:00,743 --> 00:22:02,350 I'm not sure how visible that is. 433 00:22:02,350 --> 00:22:04,145 Eh, I should have made it bigger. 434 00:22:04,145 --> 00:22:08,615 Let me give you another one. 435 00:22:08,615 --> 00:22:11,987 Here is the online typing game that I mentioned. 436 00:22:11,987 --> 00:22:16,824 It's called Typeracer. 437 00:22:16,824 --> 00:22:17,975 AUDIENCE MEMBER: Are you the world record holder? 438 00:22:17,975 --> 00:22:19,328 MIRABAI: I'm not, actually. 439 00:22:19,328 --> 00:22:20,484 AUDIENCE MEMBER: Who is? 440 00:22:20,484 --> 00:22:21,567 MIRABAI: I get too nervous. 441 00:22:21,567 --> 00:22:26,033 Well, the guy who's the world record holder on Typeracer is a qwerty typist. 442 00:22:26,033 --> 00:22:26,986 AUDIENCE MEMBER: What? 443 00:22:26,986 --> 00:22:27,905 MIRABAI: I know. 444 00:22:27,905 --> 00:22:29,004 It's ridiculous, right? 445 00:22:29,004 --> 00:22:31,820 Honestly, I get too nervous, and I get sort of hung up on it. 446 00:22:31,820 --> 00:22:32,880 I'm pretty close. 447 00:22:32,880 --> 00:22:34,610 I think I beat him in several races. 448 00:22:34,610 --> 00:22:37,316 But he's just really focused. 449 00:22:37,316 --> 00:22:39,612 (laughter) 450 00:22:39,612 --> 00:22:41,319 But I certainly beat Jumbo here. 451 00:22:41,319 --> 00:22:42,184 Jimbo. 452 00:22:42,184 --> 00:22:44,086 Whoever it was. 453 00:22:44,086 --> 00:22:45,493 (laughter) 454 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. 455 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. 456 00:22:58,835 --> 00:23:02,169 You can see that I'm triggering the speech engine manually, 457 00:23:02,169 --> 00:23:05,675 but while the computer is speaking the previous sentence, 458 00:23:05,675 --> 00:23:07,809 I'm able to write out the next one, 459 00:23:07,809 --> 00:23:11,683 resulting in a smooth and even flow of speech. 460 00:23:11,683 --> 00:23:17,092 This demonstration uses eSpeak, which is a free program included with Linux, 461 00:23:17,092 --> 00:23:22,496 but Plover works with all realtime text-to-speech engines, 462 00:23:22,496 --> 00:23:27,968 and can be used to do virtually anything the qwerty keyboard can do. 463 00:23:27,968 --> 00:23:31,412 Why is it so much faster and more efficient than qwerty? 464 00:23:31,412 --> 00:23:36,651 For a steno machine, an entire syllable, word, or phrase... 465 00:23:36,651 --> 00:23:40,011 MIRABAI: Anyway, that's a small example of how people can use... 466 00:23:40,011 --> 00:23:43,717 (applause) 467 00:23:43,717 --> 00:23:47,464 How people can use Plover to speak if they can't speak with their voices, 468 00:23:47,464 --> 00:23:51,155 whether due to surgery, or whether they have congenital malformations, or whatever, 469 00:23:51,155 --> 00:23:53,227 which is a surprising number of people. 470 00:23:53,227 --> 00:23:55,963 And it's very difficult for them to converse at a conversational pace 471 00:23:55,963 --> 00:23:58,732 without a realtime system like this. 472 00:23:58,732 --> 00:23:59,999 Another question? 473 00:23:59,999 --> 00:24:01,969 AUDIENCE MEMBER: How big is the dictionary you use? 474 00:24:01,969 --> 00:24:04,799 MIRABAI: My dictionary is currently about 160,000 words, 475 00:24:04,799 --> 00:24:07,309 though there are dictionaries that are 200,000, you know. 476 00:24:07,309 --> 00:24:08,909 It's a good starter dictionary. 477 00:24:08,909 --> 00:24:11,352 I use my own dictionary as the sort of Plover default dictionary, 478 00:24:11,352 --> 00:24:16,375 which people can then download and alter and add to at their heart's delight. 479 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, 480 00:24:20,629 --> 00:24:21,986 how... 481 00:24:21,986 --> 00:24:25,298 How do I ask this? 482 00:24:25,298 --> 00:24:29,464 Is it emulating an input source, essentially? 483 00:24:29,464 --> 00:24:32,705 So as far as your computer is concerned, these are the letters that you typed? 484 00:24:32,705 --> 00:24:34,069 MIRABAI: Yes, absolutely. 485 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 486 00:24:40,627 --> 00:24:42,445 that expect things? 487 00:24:42,445 --> 00:24:45,046 MIRABAI: No, it's just a qwerty keyboard emulator. 488 00:24:45,046 --> 00:24:46,548 It sends out -- 489 00:24:46,548 --> 00:24:48,550 you write the letter in one stroke, 490 00:24:48,550 --> 00:24:51,883 but then it's the one that does the work of converting those into individual letters, 491 00:24:51,883 --> 00:24:53,921 and then in the example that I showed, 492 00:24:53,921 --> 00:24:55,428 where I wrote PAOEU, and it said pie, 493 00:24:55,428 --> 00:24:57,089 and then I wrote THON, 494 00:24:57,089 --> 00:24:58,297 it deleted "ie", 495 00:24:58,297 --> 00:25:00,194 and then sent out "thon". 496 00:25:00,194 --> 00:25:02,396 So it is basically using delete tokens and send tokens. 497 00:25:02,396 --> 00:25:05,332 AUDIENCE MEMBER: Okay, so it is actually piping out a couple of backspaces, and then... 498 00:25:05,332 --> 00:25:08,378 MIRABAI: Exactly, yeah, so it's really transferable to just about every program. 499 00:25:08,378 --> 00:25:09,603 AUDIENCE MEMBER: Cool. 500 00:25:09,603 --> 00:25:12,103 MIRABAI: Yeah. 501 00:25:12,103 --> 00:25:14,794 AUDIENCE MEMBER: How would you compare qwerty to steno for hand strain? 502 00:25:14,794 --> 00:25:17,176 Because it looks so elegant and just, like, gentle. 503 00:25:17,176 --> 00:25:17,910 MIRABAI: Yes, absolutely. 504 00:25:17,910 --> 00:25:19,446 It's something I didn't go into too much, 505 00:25:19,446 --> 00:25:21,317 but the ergonomic argument is a really powerful one. 506 00:25:21,317 --> 00:25:23,217 I started out as a qwerty transcriptionist, 507 00:25:23,217 --> 00:25:24,984 and I could type around 110 words per minute, 508 00:25:24,984 --> 00:25:27,297 but after doing that for eight hours a day, 509 00:25:27,297 --> 00:25:29,256 my wrists and my hands were just killing me. 510 00:25:29,256 --> 00:25:29,757 And I was worried -- 511 00:25:29,757 --> 00:25:30,991 at the time, I was in steno school, 512 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. 513 00:25:34,496 --> 00:25:37,713 And as soon as I switched to steno, it was miraculous. 514 00:25:37,713 --> 00:25:40,214 I mean, I do use the split ergonomic steno keyboard, 515 00:25:40,214 --> 00:25:43,334 but it's much more like playing the piano than playing a typewriter. 516 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. 517 00:25:46,638 --> 00:25:49,841 So you're not constantly moving your fingers without any cessation, 518 00:25:49,841 --> 00:25:51,678 and you're not keeping that tension in your fingers. 519 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, 520 00:25:56,458 --> 00:26:01,695 and I don't feel any pain at all. 521 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, 522 00:26:06,993 --> 00:26:08,763 or anagrams, or, like -- 523 00:26:08,763 --> 00:26:10,430 MIRABAI: Yeah, homonyms are handled really well. 524 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. 525 00:26:14,102 --> 00:26:18,375 But yeah, I don't have any issues with homonyms, particularly. 526 00:26:18,375 --> 00:26:19,415 AUDIENCE MEMBER: Awesome, thank you. 527 00:26:19,415 --> 00:26:20,607 MIRABAI: Sure. 528 00:26:20,607 --> 00:26:23,046 AUDIENCE MEMBER: Hey, I just thought of another one. 529 00:26:23,046 --> 00:26:25,243 So you know, when you learn a totally new skill, 530 00:26:25,243 --> 00:26:28,289 there's sort of a point, a ramp-up period, 531 00:26:28,289 --> 00:26:30,757 where you have to devote yourself and be disciplined to learn the skill, 532 00:26:30,757 --> 00:26:32,579 and there's a point, like, where you're hooked. 533 00:26:32,579 --> 00:26:34,721 And from that point on, it's all coasting. 534 00:26:34,721 --> 00:26:36,213 It's like -- okay, you want to learn more of the language. 535 00:26:36,213 --> 00:26:37,966 You want to learn more of the vocabulary. 536 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 -- 537 00:26:43,048 --> 00:26:44,932 okay, now you're obsessed. 538 00:26:44,932 --> 00:26:47,167 Like, you've got to learn how to do this -- point? 539 00:26:47,167 --> 00:26:48,005 MIRABAI: Yeah, that's a really good question. 540 00:26:48,005 --> 00:26:49,230 And it is quite variable. 541 00:26:49,230 --> 00:26:51,266 There is a fairly steep initial learning curve. 542 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, 543 00:26:56,504 --> 00:26:59,707 but there's a certain point where the frustration sets in, 544 00:26:59,707 --> 00:27:01,442 and you're writing words that you think are phonetic, 545 00:27:01,442 --> 00:27:03,506 and they don't necessarily translate the way you want them to. 546 00:27:03,506 --> 00:27:06,179 We're definitely working to make that much easier. 547 00:27:06,179 --> 00:27:08,167 You know, having sort of a prompting system, 548 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. 549 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 550 00:27:18,459 --> 00:27:23,341 sort of flow-state work into it, and then suddenly wake up and be like -- 551 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 552 00:27:27,102 --> 00:27:30,439 or having to stop or having to look up a word specifically. 553 00:27:30,439 --> 00:27:33,042 So right now, Plover is not particularly user friendly, 554 00:27:33,042 --> 00:27:37,482 but I think it will become more so. 555 00:27:37,482 --> 00:27:41,679 AUDIENCE MEMBER: How do keys such as control, alt, meta, and shift work? 556 00:27:41,679 --> 00:27:43,690 MIRABAI: Again, they're just defined in the dictionary. 557 00:27:43,690 --> 00:27:48,006 We have a special command syntax, so alt is... ALT. 558 00:27:48,006 --> 00:27:49,965 AUDIENCE MEMBER: Sweet. 559 00:27:49,965 --> 00:27:51,256 MIRABAI: Yeah. 560 00:27:51,256 --> 00:27:56,061 AUDIENCE MEMBER: How you do combine, say, control and shift? 561 00:27:56,061 --> 00:27:57,865 Is that, again... Alt-shift? 562 00:27:57,865 --> 00:28:00,100 MIRABAI: Well, I don't believe that right now 563 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 564 00:28:07,921 --> 00:28:09,696 in a single dictionary definition. 565 00:28:09,696 --> 00:28:12,667 So for me, alt-tab is TABLT. 566 00:28:12,667 --> 00:28:14,606 So that'll just do alt-tab. 567 00:28:14,606 --> 00:28:18,097 But I think eventually, we do want to implement sort of a stickykey situation, 568 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. 569 00:28:22,109 --> 00:28:22,800 AUDIENCE MEMBER: Thank you. 570 00:28:22,800 --> 00:28:25,111 MIRABAI: Sure. 571 00:28:25,111 --> 00:28:32,446 AUDIENCE MEMBER: Okay, I saw your demo, where there was stenographic input, and the output 572 00:28:32,446 --> 00:28:37,817 was valid Python chords or functions, and so on. 573 00:28:37,817 --> 00:28:40,217 I didn't understand how that works. 574 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 575 00:28:49,726 --> 00:28:55,034 with brackets and braces and curly things and all the punctuation? 576 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. 577 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. 578 00:29:04,876 --> 00:29:08,190 So, you know, you can see a lot of these things are just simple English words. 579 00:29:08,190 --> 00:29:09,980 Original is ORJ. 580 00:29:09,980 --> 00:29:11,114 You know, lower is LOER. 581 00:29:11,114 --> 00:29:12,716 WORD, FIRST, PRINT, FIRST. 582 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(" 583 00:29:19,626 --> 00:29:22,363 so that's a single stroke for that specific Python command, 584 00:29:22,363 --> 00:29:24,530 but that's something that you'll use all the time, 585 00:29:24,530 --> 00:29:27,032 so it's worth defining it once, 586 00:29:27,032 --> 00:29:28,565 and then being able to do it in a single stroke. 587 00:29:28,565 --> 00:29:31,940 Similarly for variables, if you come up with a specific variable 588 00:29:31,940 --> 00:29:34,480 that you know you're going to be writing in your program many times over, 589 00:29:34,480 --> 00:29:38,243 you can just take a second, define it as a one stroke, mnemonic syllable, 590 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. 591 00:29:42,684 --> 00:29:43,816 AUDIENCE MEMBER: Okay. 592 00:29:43,816 --> 00:29:46,603 I was just wondering whether I can write a new program, 593 00:29:46,603 --> 00:29:48,721 which is not yet defined, 594 00:29:48,721 --> 00:29:54,094 and I have certain identifiers which are new, and all of that. 595 00:29:54,094 --> 00:29:56,462 MIRABAI: Oh, absolutely, yes. 596 00:29:56,462 --> 00:29:57,364 AUDIENCE MEMBER: Okay, I'll try it. 597 00:29:57,364 --> 00:29:58,766 Thank you. 598 00:29:58,766 --> 00:29:59,800 MIRABAI: Yes, it's pretty simple. 599 00:29:59,800 --> 00:30:03,269 Anything -- you know, again, basically you can output anything that the qwerty keyboard can. 600 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. 601 00:30:09,942 --> 00:30:13,913 AUDIENCE MEMBER: Okay. 602 00:30:13,913 --> 00:30:16,149 AUDIENCE MEMBER: Do you have any issues with screen? 603 00:30:16,149 --> 00:30:17,618 MIRABAI: I'm sorry? 604 00:30:17,618 --> 00:30:18,434 AUDIENCE MEMBER: Screen? 605 00:30:18,434 --> 00:30:22,221 Control-A, control-left-right, screen? 606 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. 607 00:30:28,961 --> 00:30:32,298 MIRABAI: That hasn't really come up. 608 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. 609 00:30:41,040 --> 00:30:44,810 AUDIENCE MEMBER: But there's a lot of metakey combinations that one uses with screen. 610 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. 611 00:30:50,450 --> 00:30:52,991 MIRABAI: You can nest those in any dictionary definition. 612 00:30:52,991 --> 00:30:56,517 AUDIENCE MEMBER: Okay, so you would do, like, two different chords, then? 613 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, 614 00:31:01,294 --> 00:31:05,431 you would just assign sort of a mnemonic hook to that command, 615 00:31:05,431 --> 00:31:08,640 and then assign that to whatever metakey combinations are necessary to produce it. 616 00:31:08,640 --> 00:31:10,176 AUDIENCE MEMBER: Cool, thank you. 617 00:31:10,176 --> 00:31:12,939 MIRABAI: Sure. 618 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? 619 00:31:18,586 --> 00:31:19,812 MIRABAI: Unfortunately, no. 620 00:31:19,812 --> 00:31:21,435 There are no n-key rollover laptops. 621 00:31:21,435 --> 00:31:25,048 It's really frustrating, because I would pay any amount to get one, but currently, no. 622 00:31:25,048 --> 00:31:26,483 Yeah. 623 00:31:30,107 --> 00:31:31,079 AUDIENCE MEMBER: Hi. 624 00:31:31,079 --> 00:31:34,010 Are you familiar with transcriptionist work? 625 00:31:34,010 --> 00:31:36,477 MIRABAI: Yes, I was a transcriptionist for many years. 626 00:31:36,477 --> 00:31:39,349 AUDIENCE MEMBER: Okay, so how does this compare to, like, their crazy macro systems? 627 00:31:39,349 --> 00:31:40,666 MIRABAI: It's much better. 628 00:31:40,666 --> 00:31:42,015 Much more efficient. 629 00:31:42,015 --> 00:31:44,669 Yeah, with transcriptionists, mostly they use, like, text expansion systems, 630 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, 631 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. 632 00:31:52,762 --> 00:31:53,912 AUDIENCE MEMBER: Wow, thanks. 633 00:31:53,912 --> 00:31:56,299 MIRABAI: Sure. 634 00:31:56,299 --> 00:31:58,835 AUDIENCE MEMBER: So thank you for captioning the Ada Initiative's latest video. 635 00:31:58,835 --> 00:32:00,035 MIRABAI: Absolutely! 636 00:32:00,035 --> 00:32:03,904 AUDIENCE MEMBER: I didn't realize how lucky we were to get one of the 400. 637 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. 638 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. 639 00:32:15,251 --> 00:32:16,685 MIRABAI: Sure! 640 00:32:16,685 --> 00:32:25,100 So let me start with this one here. 641 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. 642 00:32:29,334 --> 00:32:32,413 You can see tha I'm trirging the speech engine manwael, 643 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, 644 00:32:37,204 --> 00:32:41,176 rulting in a smooth and aoen flow of speech. 645 00:32:41,176 --> 00:32:42,416 This sdraition uses espeak... 646 00:32:42,416 --> 00:32:44,640 AUDIENCE MEMBER: Can you do it for code? 647 00:32:44,640 --> 00:32:45,584 Your code one? 648 00:32:45,584 --> 00:32:52,224 MIRABAI: Oh my code one, sure, yeah, absolutely. 649 00:32:52,224 --> 00:32:53,358 Yeah, you can see it's captioned down at the bottom. 650 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 651 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 652 00:33:09,117 --> 00:33:14,424 rr tab print kwgs kpa not ai word tppl kwgs 653 00:33:14,424 --> 00:33:16,981 (applause) 654 00:33:16,981 --> 00:33:22,321 Yeah, that is literally what's going on in my head as I'm writing steno. 655 00:33:22,321 --> 00:33:24,158 So there you go. 656 00:33:24,158 --> 00:33:27,928 MIRABAI: No more questions? 657 00:33:27,928 --> 00:33:30,698 All right, then I guess I will -- oh, is there one? 658 00:33:30,698 --> 00:33:32,311 Yeah, okay. 659 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 660 00:33:38,239 --> 00:33:39,807 that I glue on my keyboard, basically. 661 00:33:39,807 --> 00:33:40,841 MIRABAI: Yeah, laser cut acrylic. 662 00:33:40,841 --> 00:33:44,744 AUDIENCE MEMBER: Do you see any prospects for maybe a little more sophisticated hardware improving things? 663 00:33:44,744 --> 00:33:45,946 MIRABAI: Absolutely! 664 00:33:45,946 --> 00:33:48,480 AUDIENCE MEMBER: I mean, a lot of people are now getting hobbyist 3D printers. 665 00:33:48,480 --> 00:33:52,086 Do you imagine people printing out their own steno keyboards or something? 666 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, 667 00:33:55,662 --> 00:33:58,190 that we could sell for people to assemble, 668 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, 669 00:34:02,396 --> 00:34:03,832 pre-made steno machines. 670 00:34:03,832 --> 00:34:05,763 So yeah, there's a lot of potential in that. 671 00:34:05,763 --> 00:34:06,836 AUDIENCE MEMBER: From Adafruit! 672 00:34:06,836 --> 00:34:08,003 MIRABAI: From Adafruit? 673 00:34:08,003 --> 00:34:09,807 Maybe! 674 00:34:09,807 --> 00:34:10,437 We'll see what happens. 675 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? 676 00:34:12,670 --> 00:34:13,605 MIRABAI: Exactly, yeah. 677 00:34:13,605 --> 00:34:14,167 Absolutely. 678 00:34:14,167 --> 00:34:19,079 It's very simple. 679 00:34:19,079 --> 00:34:19,948 All right, so I guess that's it. 680 00:34:19,948 --> 99:59:59,999 Thank you!