WEBVTT 00:00:00.000 --> 00:00:12.025 align:middle line:90% 00:00:12.025 --> 00:00:14.710 align:middle line:84% OK, folks thanks for joining us today. 00:00:17.770 --> 00:00:21.080 align:middle line:84% For those of you that I don't know, my name's Brianna Blaser. 00:00:21.080 --> 00:00:25.660 align:middle line:84% And I work with our AccessCSforAll project 00:00:25.660 --> 00:00:27.778 align:middle line:84% here at the University of Washington. 00:00:27.778 --> 00:00:30.070 align:middle line:84% And one of the things that we're doing for this project 00:00:30.070 --> 00:00:31.780 align:middle line:84% is trying to get together and talk 00:00:31.780 --> 00:00:36.700 align:middle line:84% about accessible programming and accessible programming tools. 00:00:36.700 --> 00:00:40.630 align:middle line:84% Earlier this year, Julia Ferraioli came to an event 00:00:40.630 --> 00:00:43.765 align:middle line:84% we had that was funded by Google at UW, 00:00:43.765 --> 00:00:45.900 align:middle line:84% and was talking about this work that she's doing. 00:00:45.900 --> 00:00:47.150 align:middle line:90% And it was really interesting. 00:00:47.150 --> 00:00:50.320 align:middle line:84% So we wanted to have a chance to share it with you all. 00:00:50.320 --> 00:00:53.620 align:middle line:84% And Julia was game to join us and do this. 00:00:53.620 --> 00:00:55.805 align:middle line:84% So I'm really excited about this today. 00:00:55.805 --> 00:00:57.430 align:middle line:84% A couple of things, I just want to make 00:00:57.430 --> 00:00:59.852 align:middle line:84% sure that anybody that needs it, knows 00:00:59.852 --> 00:01:01.060 align:middle line:90% that captioning is available. 00:01:01.060 --> 00:01:03.970 align:middle line:84% So you should be able to turn on the captions 00:01:03.970 --> 00:01:06.405 align:middle line:90% at the bottom of your screen. 00:01:06.405 --> 00:01:07.780 align:middle line:84% And if that doesn't work, there's 00:01:07.780 --> 00:01:10.150 align:middle line:84% a link that I put in the chat that you can use 00:01:10.150 --> 00:01:14.740 align:middle line:90% as well to access the captions. 00:01:14.740 --> 00:01:16.965 align:middle line:84% And I will be monitoring the chat. 00:01:16.965 --> 00:01:18.340 align:middle line:84% And if you have questions, I know 00:01:18.340 --> 00:01:21.430 align:middle line:84% we have some time for discussion at the end. 00:01:21.430 --> 00:01:24.255 align:middle line:84% And I'll let Julia, take it from there. 00:01:24.255 --> 00:01:25.630 align:middle line:84% Thanks, Brianna. 00:01:25.630 --> 00:01:28.030 align:middle line:90% I appreciate it. 00:01:28.030 --> 00:01:29.770 align:middle line:90% So, hi, everyone. 00:01:29.770 --> 00:01:31.480 align:middle line:90% I'm Julia Ferraioli. 00:01:31.480 --> 00:01:35.930 align:middle line:84% I work in the Open Source Programs office at Google, 00:01:35.930 --> 00:01:40.030 align:middle line:84% which means that I do various things around sustainability 00:01:40.030 --> 00:01:42.280 align:middle line:90% of open source software. 00:01:42.280 --> 00:01:44.560 align:middle line:84% Has absolutely nothing to do with what 00:01:44.560 --> 00:01:45.650 align:middle line:90% I'm talking about today. 00:01:45.650 --> 00:01:48.125 align:middle line:90% Sp I won't dwell on that. 00:01:48.125 --> 00:01:49.750 align:middle line:84% As Brianna mentioned, this is something 00:01:49.750 --> 00:01:50.875 align:middle line:90% I have been thinking about. 00:01:50.875 --> 00:01:54.250 align:middle line:84% But it's definitely not my time full-time job. 00:01:54.250 --> 00:02:00.670 align:middle line:84% So it's generally what lurks in the back of my mind 00:02:00.670 --> 00:02:03.020 align:middle line:84% when I go to sleep or something like that. 00:02:03.020 --> 00:02:11.490 align:middle line:84% So, I have been what would I kind of call low vision off 00:02:11.490 --> 00:02:16.440 align:middle line:84% and on for the past, actually like three years, 00:02:16.440 --> 00:02:17.970 align:middle line:90% apparently now. 00:02:17.970 --> 00:02:23.750 align:middle line:84% And I kind of say I say it's off and on because my eyes work 00:02:23.750 --> 00:02:25.610 align:middle line:84% kind of like an auto-focused camera that 00:02:25.610 --> 00:02:27.920 align:middle line:90% doesn't know what to do. 00:02:27.920 --> 00:02:31.780 align:middle line:84% In which, it will zoom in on something and then zoom out. 00:02:31.780 --> 00:02:36.950 align:middle line:84% And it makes things blurry pretty much all the time. 00:02:36.950 --> 00:02:39.530 align:middle line:90% 00:02:39.530 --> 00:02:44.740 align:middle line:84% So I'm going to show a pretty good approximation of how 00:02:44.740 --> 00:02:46.880 align:middle line:90% I see most of the time. 00:02:46.880 --> 00:02:50.390 align:middle line:84% But if you're prone to motion sickness, look away. 00:02:50.390 --> 00:02:53.920 align:middle line:84% I'll tell you when it's safe to look back. 00:02:53.920 --> 00:02:56.605 align:middle line:84% And I'll describe what's going on in the demo. 00:02:56.605 --> 00:03:00.970 align:middle line:90% 00:03:00.970 --> 00:03:06.420 align:middle line:84% So this is a GIF of a camera focused on some sort of plant. 00:03:06.420 --> 00:03:11.010 align:middle line:84% It's using a specific micro photography technique 00:03:11.010 --> 00:03:12.430 align:middle line:90% that I don't know what it is. 00:03:12.430 --> 00:03:14.370 align:middle line:84% But it's slowly zooming in and out, 00:03:14.370 --> 00:03:18.060 align:middle line:84% bringing different parts of the plant in and out of focus. 00:03:18.060 --> 00:03:20.370 align:middle line:84% It's pretty dizzying and nauseating. 00:03:20.370 --> 00:03:24.280 align:middle line:90% So I'm going to stop now. 00:03:24.280 --> 00:03:29.690 align:middle line:84% So it's safe to come back to this slide deck. 00:03:29.690 --> 00:03:33.040 align:middle line:84% So that's kind of what I experience most of the time. 00:03:33.040 --> 00:03:41.020 align:middle line:84% I can force my eyes to focus for brief seconds. 00:03:41.020 --> 00:03:45.690 align:middle line:84% But, generally speaking, that winds up 00:03:45.690 --> 00:03:48.430 align:middle line:84% with a headache that lasts the rest of the day. 00:03:48.430 --> 00:03:52.180 align:middle line:84% And I really don't enjoy that headache much at all. 00:03:52.180 --> 00:03:59.160 align:middle line:84% So the worst thing that an engineer can really face-- 00:03:59.160 --> 00:04:04.290 align:middle line:84% and at the time of this talk, I was a full-time engineer-- 00:04:04.290 --> 00:04:06.360 align:middle line:84% but the worst thing I could think of 00:04:06.360 --> 00:04:08.010 align:middle line:90% was an intermittent failure. 00:04:08.010 --> 00:04:13.260 align:middle line:84% And I was dealing with a biological version of one. 00:04:13.260 --> 00:04:16.890 align:middle line:84% So they make debugging really difficult. 00:04:16.890 --> 00:04:19.320 align:middle line:84% So I tried various forms of debugging. 00:04:19.320 --> 00:04:22.890 align:middle line:84% I got a beautiful, high resolution screen 00:04:22.890 --> 00:04:26.400 align:middle line:84% which meant that my blurry vision was 00:04:26.400 --> 00:04:29.170 align:middle line:90% really high resolution. 00:04:29.170 --> 00:04:31.890 align:middle line:84% So that didn't really work for me. 00:04:31.890 --> 00:04:35.880 align:middle line:84% I got glasses-- very specialized glasses-- 00:04:35.880 --> 00:04:38.520 align:middle line:84% that were a little bit more than what you 00:04:38.520 --> 00:04:41.130 align:middle line:90% can pick up at the drugstore. 00:04:41.130 --> 00:04:44.050 align:middle line:84% And those actually made everything worse, 00:04:44.050 --> 00:04:45.420 align:middle line:90% including the headaches. 00:04:45.420 --> 00:04:48.330 align:middle line:90% So I stopped wearing them. 00:04:48.330 --> 00:04:52.330 align:middle line:84% And I tried some, onboard my Mac, assistive tech 00:04:52.330 --> 00:04:57.590 align:middle line:84% like increased contrast, bigger font sizes, et cetera. 00:04:57.590 --> 00:05:03.050 align:middle line:84% And those were moderately successful, I would say, 00:05:03.050 --> 00:05:06.290 align:middle line:90% but still not really enough. 00:05:06.290 --> 00:05:09.020 align:middle line:84% So I had to really make peace with the fact 00:05:09.020 --> 00:05:15.410 align:middle line:84% that I was, am, and probably always will be disabled. 00:05:15.410 --> 00:05:17.580 align:middle line:84% My eyes are never going to get better. 00:05:17.580 --> 00:05:19.910 align:middle line:90% So, what do I do now? 00:05:19.910 --> 00:05:23.025 align:middle line:90% 00:05:23.025 --> 00:05:26.380 align:middle line:84% So, I'm probably preaching to the choir here, 00:05:26.380 --> 00:05:31.740 align:middle line:84% but the definition of disability given by the WHO 00:05:31.740 --> 00:05:35.880 align:middle line:90% is probably one of my favorites. 00:05:35.880 --> 00:05:39.510 align:middle line:84% It's when there's this gap between the environment 00:05:39.510 --> 00:05:43.050 align:middle line:84% a person lives in and the capabilities of their body. 00:05:43.050 --> 00:05:46.050 align:middle line:84% And I was living in a development environment 00:05:46.050 --> 00:05:51.510 align:middle line:84% that my body was not made for anymore. 00:05:51.510 --> 00:05:55.980 align:middle line:84% And my eyes had to work harder to do my job than any 00:05:55.980 --> 00:06:00.030 align:middle line:84% of my colleagues because the environment was 00:06:00.030 --> 00:06:02.430 align:middle line:90% built for them, and not for me. 00:06:02.430 --> 00:06:06.110 align:middle line:90% 00:06:06.110 --> 00:06:10.140 align:middle line:84% But how does it apply to actual development? 00:06:10.140 --> 00:06:13.350 align:middle line:84% I want you to kind of think about your development 00:06:13.350 --> 00:06:15.160 align:middle line:90% environment. 00:06:15.160 --> 00:06:17.010 align:middle line:84% So when we get going from scratch when 00:06:17.010 --> 00:06:20.340 align:middle line:84% we've got a nice, green field to work with, 00:06:20.340 --> 00:06:22.110 align:middle line:84% we have so many tools to configure, 00:06:22.110 --> 00:06:28.530 align:middle line:84% from as basic as the operating system, to your editor, 00:06:28.530 --> 00:06:31.320 align:middle line:84% to your debugger, the version control system. 00:06:31.320 --> 00:06:34.590 align:middle line:84% And that's not even getting to actually launching anything 00:06:34.590 --> 00:06:37.570 align:middle line:90% and maintaining anything. 00:06:37.570 --> 00:06:43.680 align:middle line:84% So I did not know how well any of my toolset that I was using 00:06:43.680 --> 00:06:47.970 align:middle line:84% worked with assistive technology until I tried. 00:06:47.970 --> 00:06:52.170 align:middle line:84% And it turned out to be extremely disappointing. 00:06:52.170 --> 00:06:57.890 align:middle line:84% So, blind text is a very popular editor, text editor, 00:06:57.890 --> 00:06:59.780 align:middle line:90% in the development world. 00:06:59.780 --> 00:07:02.510 align:middle line:84% And it does not work with voiceover 00:07:02.510 --> 00:07:07.377 align:middle line:84% at all, which I found very surprising. 00:07:07.377 --> 00:07:10.720 align:middle line:90% 00:07:10.720 --> 00:07:17.380 align:middle line:84% So when you think about all of the different tools 00:07:17.380 --> 00:07:21.590 align:middle line:84% that we make use when developing technology, 00:07:21.590 --> 00:07:23.560 align:middle line:84% they're often coming from different companies. 00:07:23.560 --> 00:07:25.900 align:middle line:84% They're coming from companies with different levels 00:07:25.900 --> 00:07:28.320 align:middle line:90% of commitment to accessibility. 00:07:28.320 --> 00:07:29.800 align:middle line:84% And they're not necessarily always 00:07:29.800 --> 00:07:33.130 align:middle line:90% consistent in how they work. 00:07:33.130 --> 00:07:34.940 align:middle line:90% So it's an uphill battle. 00:07:34.940 --> 00:07:42.830 align:middle line:84% And so it struck me that, while we make a big effort 00:07:42.830 --> 00:07:47.110 align:middle line:84% to make the products we build accessible, 00:07:47.110 --> 00:07:49.450 align:middle line:84% we don't make the processes that we 00:07:49.450 --> 00:07:53.250 align:middle line:90% use to build them accessible. 00:07:53.250 --> 00:07:55.840 align:middle line:84% Our development practices themselves 00:07:55.840 --> 00:07:57.370 align:middle line:90% are rather inaccessible. 00:07:57.370 --> 00:07:59.740 align:middle line:84% And that's what I was really struggling with, 00:07:59.740 --> 00:08:04.360 align:middle line:84% having done as much as I could to try to optimize 00:08:04.360 --> 00:08:05.860 align:middle line:90% my development environment. 00:08:05.860 --> 00:08:09.460 align:middle line:90% 00:08:09.460 --> 00:08:12.670 align:middle line:90% So, tooling isn't enough. 00:08:12.670 --> 00:08:17.320 align:middle line:84% We need to do more to make the entire experience of developing 00:08:17.320 --> 00:08:20.740 align:middle line:84% more accessible, to close that gap between the capabilities 00:08:20.740 --> 00:08:23.740 align:middle line:84% of our body and our development environment. 00:08:23.740 --> 00:08:27.120 align:middle line:90% 00:08:27.120 --> 00:08:29.840 align:middle line:84% So if we do some brainstorming and really think 00:08:29.840 --> 00:08:34.760 align:middle line:84% about software development, we engage in different modes 00:08:34.760 --> 00:08:37.220 align:middle line:90% when creating software. 00:08:37.220 --> 00:08:43.669 align:middle line:84% So I came up with a very simplified version of stages 00:08:43.669 --> 00:08:44.960 align:middle line:90% of software development. 00:08:44.960 --> 00:08:49.470 align:middle line:84% And I'm sure everyone can see the holes in them. 00:08:49.470 --> 00:08:51.470 align:middle line:90% So the first is research. 00:08:51.470 --> 00:08:55.390 align:middle line:84% What's been done on the problem that I'm trying to tackle? 00:08:55.390 --> 00:09:00.330 align:middle line:84% And what gaps in knowledge do I have that I need to fill in? 00:09:00.330 --> 00:09:04.680 align:middle line:84% If it's part of a larger project that I'm adding to, 00:09:04.680 --> 00:09:07.950 align:middle line:84% I need to read the existing code to figure out 00:09:07.950 --> 00:09:09.630 align:middle line:90% how my part is going to fit in. 00:09:09.630 --> 00:09:12.320 align:middle line:90% 00:09:12.320 --> 00:09:18.260 align:middle line:84% Then we get into designing, then implementing and debugging. 00:09:18.260 --> 00:09:21.590 align:middle line:84% Because it never works on the first try, ever. 00:09:21.590 --> 00:09:24.980 align:middle line:90% 00:09:24.980 --> 00:09:28.940 align:middle line:84% So to make things a little bit more simple, 00:09:28.940 --> 00:09:33.980 align:middle line:84% I'm going to take designing and debugging out of the mix mostly 00:09:33.980 --> 00:09:39.290 align:middle line:84% because I'm still trying to figure out that designing part. 00:09:39.290 --> 00:09:42.650 align:middle line:84% And my answer to how to make debugging accessible 00:09:42.650 --> 00:09:45.200 align:middle line:90% is to not write bugs right now. 00:09:45.200 --> 00:09:50.750 align:middle line:84% So, yeah, if you have ideas, I am so open to them. 00:09:50.750 --> 00:09:53.790 align:middle line:90% 00:09:53.790 --> 00:09:56.120 align:middle line:84% So our contrived example that we're going to use 00:09:56.120 --> 00:10:02.030 align:middle line:84% is to implement some vector math according to a specification. 00:10:02.030 --> 00:10:05.120 align:middle line:90% I love matrices. 00:10:05.120 --> 00:10:11.220 align:middle line:84% And I use one by n matrices all the time. 00:10:11.220 --> 00:10:14.945 align:middle line:90% So that's my own personal bias. 00:10:14.945 --> 00:10:17.510 align:middle line:90% 00:10:17.510 --> 00:10:21.850 align:middle line:84% So the first thing we do is we do some research, right? 00:10:21.850 --> 00:10:22.990 align:middle line:90% What do I know? 00:10:22.990 --> 00:10:25.930 align:middle line:90% What do I need to know? 00:10:25.930 --> 00:10:29.630 align:middle line:90% And where do I go to find it? 00:10:29.630 --> 00:10:34.020 align:middle line:84% So this is the cover of my very own, very well-worn 00:10:34.020 --> 00:10:35.580 align:middle line:90% linear algebra textbook. 00:10:35.580 --> 00:10:37.748 align:middle line:90% I'm very fond of it. 00:10:37.748 --> 00:10:39.540 align:middle line:84% And as we're getting started with research, 00:10:39.540 --> 00:10:43.920 align:middle line:84% we want to figure out which equations are relevant, 00:10:43.920 --> 00:10:48.740 align:middle line:84% where do we find them, and, because, mathematical notation 00:10:48.740 --> 00:10:56.540 align:middle line:84% isn't always self-explanatory to folks working in software, 00:10:56.540 --> 00:10:59.970 align:middle line:90% what do they actually do? 00:10:59.970 --> 00:11:02.150 align:middle line:84% So I'm really hoping that one of the settings that 00:11:02.150 --> 00:11:06.220 align:middle line:84% are enabled for the screen share works, 00:11:06.220 --> 00:11:12.160 align:middle line:84% I have the mathematical formula for vector addition in a PDF. 00:11:12.160 --> 00:11:14.740 align:middle line:90% 00:11:14.740 --> 00:11:18.270 align:middle line:84% And if this works, you'll be able to hear it. 00:11:18.270 --> 00:11:21.430 align:middle line:90% 00:11:21.430 --> 00:11:23.740 align:middle line:84% U plus v equals 0 [INAUDIBLE].. 00:11:23.740 --> 00:11:27.310 align:middle line:90% 00:11:27.310 --> 00:11:29.290 align:middle line:84% Can someone raise their hand 00:11:29.290 --> 00:11:31.310 align:middle line:90% if they heard that? 00:11:31.310 --> 00:11:32.190 align:middle line:90% OK, cool. 00:11:32.190 --> 00:11:34.820 align:middle line:90% Thank you. 00:11:34.820 --> 00:11:37.520 align:middle line:84% So this is the equation for vector addition 00:11:37.520 --> 00:11:42.950 align:middle line:84% in lab tech with text to speech reading it out. 00:11:42.950 --> 00:11:49.640 align:middle line:84% So it's u plus v equals parens u0 plus v0 all the way down 00:11:49.640 --> 00:11:56.810 align:middle line:84% to u sub n minus 1 plus v7 minus 1, end parens. 00:11:56.810 --> 00:12:02.900 align:middle line:84% But I didn't get that out of the reading of the equation. 00:12:02.900 --> 00:12:04.340 align:middle line:90% That is not what I heard. 00:12:04.340 --> 00:12:07.220 align:middle line:84% And I have carried this countless times 00:12:07.220 --> 00:12:13.040 align:middle line:84% and I just now realized that when it says "un," 00:12:13.040 --> 00:12:16.890 align:middle line:90% it's actually u sub n. 00:12:16.890 --> 00:12:19.380 align:middle line:84% Just got that, like literally just now. 00:12:19.380 --> 00:12:21.650 align:middle line:90% So, interesting. 00:12:21.650 --> 00:12:23.970 align:middle line:90% OK. 00:12:23.970 --> 00:12:27.810 align:middle line:84% So I took that equation and I turned it into LaTeX. 00:12:27.810 --> 00:12:29.730 align:middle line:90% It compiled it to PDF, right? 00:12:29.730 --> 00:12:31.970 align:middle line:90% It's kind of contrived. 00:12:31.970 --> 00:12:35.540 align:middle line:84% So some of the problems that we may have heard 00:12:35.540 --> 00:12:37.980 align:middle line:84% were, well, what did that actually say? 00:12:37.980 --> 00:12:43.910 align:middle line:84% Because I wasn't sure about at least one of the components 00:12:43.910 --> 00:12:46.280 align:middle line:90% until just now. 00:12:46.280 --> 00:12:48.380 align:middle line:90% How do I translate that to code? 00:12:48.380 --> 00:12:51.800 align:middle line:90% 00:12:51.800 --> 00:12:58.580 align:middle line:84% And how long is it going to take me to learn one formula? 00:12:58.580 --> 00:13:00.620 align:middle line:90% Right? 00:13:00.620 --> 00:13:02.578 align:middle line:84% So let's go to Wikipedia instead, 00:13:02.578 --> 00:13:03.620 align:middle line:90% and see if that's better. 00:13:03.620 --> 00:13:10.710 align:middle line:90% 00:13:10.710 --> 00:13:12.210 align:middle line:84% Heading level three. 00:13:12.210 --> 00:13:14.377 align:middle line:84% Addition and subtraction, edit, further information, 00:13:14.377 --> 00:13:15.752 align:middle line:84% vector space assume not [? and ?] 00:13:15.752 --> 00:13:17.282 align:middle line:84% b are not necessarily equal vectors, 00:13:17.282 --> 00:13:19.740 align:middle line:84% but that they may have different magnitudes and directions. 00:13:19.740 --> 00:13:23.070 align:middle line:90% The sum of a and b is. 00:13:23.070 --> 00:13:25.440 align:middle line:84% Left brace or right brace plus backslash [? math. ?] 00:13:25.440 --> 00:13:28.680 align:middle line:84% Left brace b right brace equals underscore left brace 1 00:13:28.680 --> 00:13:30.360 align:middle line:90% right brace plus b underscore. 00:13:30.360 --> 00:13:32.880 align:middle line:84% Left brace 1 right brace backslash [? math. ?] Left 00:13:32.880 --> 00:13:34.590 align:middle line:90% brace b right brace underscore. 00:13:34.590 --> 00:13:37.350 align:middle line:84% Left brace 1 right brace plus underscore left 00:13:37.350 --> 00:13:39.630 align:middle line:84% brace to right brace plus b underscore left 00:13:39.630 --> 00:13:42.150 align:middle line:84% brace to brace backslash [? math. ?] Left brace 00:13:42.150 --> 00:13:44.400 align:middle line:84% e right brace underscore left brace 2 00:13:44.400 --> 00:13:47.760 align:middle line:84% right brace plus underscore left brace 3 right brace plus b 00:13:47.760 --> 00:13:49.910 align:middle line:84% underscore left brace 3 right brace. 00:13:49.910 --> 00:13:53.760 align:middle line:84% So I think you may get the point here. 00:13:53.760 --> 00:13:57.900 align:middle line:84% So Wikipedia actually has all of their equations 00:13:57.900 --> 00:14:02.180 align:middle line:84% as images and the Alt text that they 00:14:02.180 --> 00:14:11.090 align:middle line:84% use is actually the LaTeX source used to compile the image. 00:14:11.090 --> 00:14:15.770 align:middle line:84% So you heard the LaTeX source, which if you know LaTeX really 00:14:15.770 --> 00:14:19.700 align:middle line:90% well, might be OK. 00:14:19.700 --> 00:14:24.740 align:middle line:84% But the majority of people actually don't know LaTeX. 00:14:24.740 --> 00:14:26.900 align:middle line:84% They either haven't learned it yet 00:14:26.900 --> 00:14:28.400 align:middle line:90% or they will never learn it. 00:14:28.400 --> 00:14:31.190 align:middle line:84% And therefore, that Alt text is going 00:14:31.190 --> 00:14:32.930 align:middle line:84% to be completely useless to them. 00:14:32.930 --> 00:14:35.550 align:middle line:90% 00:14:35.550 --> 00:14:38.280 align:middle line:84% So what are some things that we can take away 00:14:38.280 --> 00:14:40.860 align:middle line:90% with this, from this? 00:14:40.860 --> 00:14:44.340 align:middle line:84% So the first thing is that pseudocode is probably 00:14:44.340 --> 00:14:48.060 align:middle line:84% going to be your best bet, especially if you're 00:14:48.060 --> 00:14:49.810 align:middle line:90% going to be writing code. 00:14:49.810 --> 00:14:53.670 align:middle line:84% So finding references to equations 00:14:53.670 --> 00:14:56.970 align:middle line:84% that are in pseudocode are going to be preferable. 00:14:56.970 --> 00:15:00.120 align:middle line:90% 00:15:00.120 --> 00:15:02.580 align:middle line:90% Don't go the Wikipedia route. 00:15:02.580 --> 00:15:04.320 align:middle line:84% So if you're writing a design doc, 00:15:04.320 --> 00:15:08.580 align:middle line:84% if you're writing the specification for what 00:15:08.580 --> 00:15:13.750 align:middle line:84% you want somebody to implement, don't use images, 00:15:13.750 --> 00:15:17.180 align:middle line:90% especially without Alt text. 00:15:17.180 --> 00:15:20.605 align:middle line:84% And this is kind of my tongue in cheek recommendation. 00:15:20.605 --> 00:15:22.730 align:middle line:84% But don't just sprinkle some machine learning on it 00:15:22.730 --> 00:15:25.730 align:middle line:90% and hope it sorts out itself. 00:15:25.730 --> 00:15:30.308 align:middle line:84% Generally speaking, that tends to go poorly. 00:15:30.308 --> 00:15:31.475 align:middle line:90% And I like machine learning. 00:15:31.475 --> 00:15:34.040 align:middle line:90% 00:15:34.040 --> 00:15:37.830 align:middle line:84% But let's assume we've got our equations under our belts, 00:15:37.830 --> 00:15:40.340 align:middle line:84% we've found our reference pseudocode, 00:15:40.340 --> 00:15:42.200 align:middle line:90% we understand what's going on. 00:15:42.200 --> 00:15:43.590 align:middle line:84% We can move on to the next stage, 00:15:43.590 --> 00:15:45.740 align:middle line:90% which is actually reading code. 00:15:45.740 --> 00:15:49.100 align:middle line:90% 00:15:49.100 --> 00:15:51.920 align:middle line:84% Reading code-- not even editing or debugging-- 00:15:51.920 --> 00:15:54.290 align:middle line:84% can impose some issues with screen readers. 00:15:54.290 --> 00:15:57.740 align:middle line:84% And I wrote up a little main program in Go 00:15:57.740 --> 00:16:03.601 align:middle line:84% that will use the functions that we want to implement. 00:16:03.601 --> 00:16:06.370 align:middle line:90% 00:16:06.370 --> 00:16:12.250 align:middle line:84% So this is bad-ish code, which I fully own. 00:16:12.250 --> 00:16:13.493 align:middle line:90% And you'll hear why. 00:16:13.493 --> 00:16:14.910 align:middle line:84% Package menu line. 00:16:14.910 --> 00:16:16.380 align:middle line:84% New line in bold left go new line. 00:16:16.380 --> 00:16:17.740 align:middle line:90% Quote FMT quote new line. 00:16:17.740 --> 00:16:18.720 align:middle line:90% Right go new line. 00:16:18.720 --> 00:16:19.610 align:middle line:90% New line type vector. 00:16:19.610 --> 00:16:20.735 align:middle line:90% Left bracket right bracket. 00:16:20.735 --> 00:16:21.960 align:middle line:90% Float 64 new line. 00:16:21.960 --> 00:16:24.540 align:middle line:84% New line func main right code left code. left brace new line. 00:16:24.540 --> 00:16:27.250 align:middle line:84% Vector comma, vector comma, vector colon equals vector. 00:16:27.250 --> 00:16:28.130 align:middle line:90% Left brace 1 comma. 00:16:28.130 --> 00:16:30.200 align:middle line:84% 2 comma 3 right brace comma vector. 00:16:30.200 --> 00:16:33.310 align:middle line:84% Left brace 3 comma 5 comma 6 right brace comma vector 00:16:33.310 --> 00:16:36.510 align:middle line:84% left brace 7 backslash new line comma 8 comma 9 right brace. 00:16:36.510 --> 00:16:38.490 align:middle line:84% New line vector comma, vector comma, 00:16:38.490 --> 00:16:40.660 align:middle line:84% underscore equals SWP left paren [INAUDIBLE] comma. 00:16:40.660 --> 00:16:41.880 align:middle line:90% [INAUDIBLE] new line. 00:16:41.880 --> 00:16:42.930 align:middle line:90% T [INAUDIBLE] comma. 00:16:42.930 --> 00:16:44.700 align:middle line:84% Underscore colon equals [INAUDIBLE] vex left paren. 00:16:44.700 --> 00:16:46.200 align:middle line:84% Left bracket right bracket vector. 00:16:46.200 --> 00:16:47.280 align:middle line:90% Left brace [INAUDIBLE] comma. 00:16:47.280 --> 00:16:47.970 align:middle line:90% [INAUDIBLE] comma. 00:16:47.970 --> 00:16:48.840 align:middle line:90% [INAUDIBLE] right brace. 00:16:48.840 --> 00:16:50.260 align:middle line:84% Dot dot dot right paren new line. 00:16:50.260 --> 00:16:52.130 align:middle line:84% End colon equals [INAUDIBLE] new line. 00:16:52.130 --> 00:16:53.547 align:middle line:84% So again, I'm not 00:16:53.547 --> 00:16:57.840 align:middle line:84% going to go through the entire recording, 00:16:57.840 --> 00:17:03.470 align:middle line:84% but this is kind of hard to understand 00:17:03.470 --> 00:17:05.599 align:middle line:84% when we're listening to the code and trying 00:17:05.599 --> 00:17:09.260 align:middle line:90% to glean meaning from it. 00:17:09.260 --> 00:17:13.905 align:middle line:84% For the record, I had named this file vector underscore don't 00:17:13.905 --> 00:17:16.250 align:middle line:90% dot go, because it is bad code. 00:17:16.250 --> 00:17:19.400 align:middle line:84% And I wouldn't recommend anybody write this. 00:17:19.400 --> 00:17:22.270 align:middle line:84% I wrote-- writing bad code intentionally 00:17:22.270 --> 00:17:23.980 align:middle line:90% is a very interesting exercise. 00:17:23.980 --> 00:17:27.460 align:middle line:90% 00:17:27.460 --> 00:17:30.050 align:middle line:90% There were some problems. 00:17:30.050 --> 00:17:33.650 align:middle line:84% Voiceover is trying really hard to say everything. 00:17:33.650 --> 00:17:35.900 align:middle line:84% But it also thinks that it's reading English. 00:17:35.900 --> 00:17:39.310 align:middle line:84% And code is not a spoken language. 00:17:39.310 --> 00:17:44.410 align:middle line:84% If you ask somebody-- if you ask five people to read code, 00:17:44.410 --> 00:17:46.210 align:middle line:84% they're going to say it different ways, 00:17:46.210 --> 00:17:49.900 align:middle line:84% because their internal narrative is different. 00:17:49.900 --> 00:17:53.560 align:middle line:90% It was also really verbose. 00:17:53.560 --> 00:17:58.570 align:middle line:84% You probably noticed that it's very different than reading 00:17:58.570 --> 00:18:01.170 align:middle line:90% a paper, for instance. 00:18:01.170 --> 00:18:03.040 align:middle line:84% You heard all of the punctuation. 00:18:03.040 --> 00:18:06.580 align:middle line:84% You heard every new line pronounced, because all of that 00:18:06.580 --> 00:18:09.620 align:middle line:90% is really important. 00:18:09.620 --> 00:18:12.730 align:middle line:84% I need to know if there is a comma there. 00:18:12.730 --> 00:18:15.730 align:middle line:84% I need to know if I'm going to be 00:18:15.730 --> 00:18:18.190 align:middle line:84% declaring an array of something or if it's just 00:18:18.190 --> 00:18:19.610 align:middle line:90% a single variable. 00:18:19.610 --> 00:18:21.760 align:middle line:84% So I need everything to be pronounced. 00:18:21.760 --> 00:18:25.690 align:middle line:90% 00:18:25.690 --> 00:18:28.330 align:middle line:84% It's also kind of hard to remember 00:18:28.330 --> 00:18:32.680 align:middle line:84% all of the different elements of the main function. 00:18:32.680 --> 00:18:35.620 align:middle line:84% It's a lot to keep in your own buffer. 00:18:35.620 --> 00:18:39.200 align:middle line:84% It takes a lot of time to read, but it's 00:18:39.200 --> 00:18:42.710 align:middle line:84% hard to actually keep things in your head, 00:18:42.710 --> 00:18:45.950 align:middle line:84% especially when it's going at an accelerated speed. 00:18:45.950 --> 00:18:49.740 align:middle line:90% 00:18:49.740 --> 00:18:50.910 align:middle line:90% Where does this leave us? 00:18:50.910 --> 00:18:53.990 align:middle line:84% Do we say, OK, coding is not for me? 00:18:53.990 --> 00:18:55.560 align:middle line:90% Of course not. 00:18:55.560 --> 00:18:57.650 align:middle line:90% Of course not. 00:18:57.650 --> 00:19:02.863 align:middle line:84% We learn to write code that is itself more accessible. 00:19:02.863 --> 00:19:06.600 align:middle line:90% 00:19:06.600 --> 00:19:08.310 align:middle line:84% These are the kind of things that, again, 00:19:08.310 --> 00:19:11.190 align:middle line:84% sat in the back of my mind and I started unconsciously 00:19:11.190 --> 00:19:15.180 align:middle line:90% enforcing in my own code. 00:19:15.180 --> 00:19:17.850 align:middle line:84% Nothing is going to look revolutionary. 00:19:17.850 --> 00:19:21.840 align:middle line:84% These may even be practices that you're already following. 00:19:21.840 --> 00:19:26.990 align:middle line:84% But they may give you additional reasons for continuing them. 00:19:26.990 --> 00:19:29.660 align:middle line:84% Let's move on to our implementation 00:19:29.660 --> 00:19:33.290 align:middle line:84% stage and learn a little bit more 00:19:33.290 --> 00:19:36.100 align:middle line:84% about what accessible code looks like. 00:19:36.100 --> 00:19:39.170 align:middle line:90% 00:19:39.170 --> 00:19:45.770 align:middle line:84% The first lesson I've got is grouping code blocks logically. 00:19:45.770 --> 00:19:50.560 align:middle line:84% Here is a portion of the Main function that we heard earlier. 00:19:50.560 --> 00:19:55.110 align:middle line:84% We've got A, B, and C being declared as vectors 00:19:55.110 --> 00:19:58.110 align:middle line:84% and initialized on the same line. 00:19:58.110 --> 00:20:01.290 align:middle line:84% Then we go ahead and we swap them. 00:20:01.290 --> 00:20:09.350 align:middle line:84% We A and B. And we then sum up A, B, and C. 00:20:09.350 --> 00:20:10.600 align:middle line:90% You may see these underscores. 00:20:10.600 --> 00:20:13.580 align:middle line:84% If you're not familiar with Go, those 00:20:13.580 --> 00:20:15.030 align:middle line:90% underscores swallow errors. 00:20:15.030 --> 00:20:17.760 align:middle line:90% 00:20:17.760 --> 00:20:20.320 align:middle line:84% Just so you know, it's not best practice, 00:20:20.320 --> 00:20:25.930 align:middle line:84% but it would be a lot longer if I had to handle every error. 00:20:25.930 --> 00:20:28.990 align:middle line:84% That just means I'm going to ignore it for now. 00:20:28.990 --> 00:20:32.060 align:middle line:90% This is bad organization. 00:20:32.060 --> 00:20:35.950 align:middle line:84% What would something better look like? 00:20:35.950 --> 00:20:39.080 align:middle line:90% 00:20:39.080 --> 00:20:43.470 align:middle line:84% This is going to be functionally identical to the last slide. 00:20:43.470 --> 00:20:48.290 align:middle line:84% I'm going to declare A and B and initialize them 00:20:48.290 --> 00:20:50.170 align:middle line:90% in the same line. 00:20:50.170 --> 00:20:51.430 align:middle line:90% Then I'm going to swap them. 00:20:51.430 --> 00:20:54.240 align:middle line:90% I'm operating on them. 00:20:54.240 --> 00:20:56.700 align:middle line:90% Then I've got a new line. 00:20:56.700 --> 00:21:02.700 align:middle line:84% Then I declare C. And then I add them all up. 00:21:02.700 --> 00:21:05.580 align:middle line:84% I'm going to say this is good organization, even though it's 00:21:05.580 --> 00:21:08.150 align:middle line:90% functionally identical. 00:21:08.150 --> 00:21:13.500 align:middle line:84% Maybe that's because it's functionally identical. 00:21:13.500 --> 00:21:15.690 align:middle line:90% What are the lessons here? 00:21:15.690 --> 00:21:17.940 align:middle line:84% Well, you want to declare your variables 00:21:17.940 --> 00:21:20.940 align:middle line:84% close to where they're actually going to be used. 00:21:20.940 --> 00:21:24.330 align:middle line:84% We moved the declaration of C down to right 00:21:24.330 --> 00:21:27.940 align:middle line:84% before we were actually going to use it. 00:21:27.940 --> 00:21:30.970 align:middle line:84% You want to make sure that the context around your variables 00:21:30.970 --> 00:21:34.330 align:middle line:84% and your functions aren't lost by the time they 00:21:34.330 --> 00:21:36.750 align:middle line:90% come into play. 00:21:36.750 --> 00:21:39.970 align:middle line:84% The same goes for other types of declarations, like interfaces, 00:21:39.970 --> 00:21:43.220 align:middle line:90% structs, et cetera. 00:21:43.220 --> 00:21:47.420 align:middle line:84% By grouping components together logically, 00:21:47.420 --> 00:21:51.900 align:middle line:84% you have to keep less in your mental buffer, which is great 00:21:51.900 --> 00:21:53.880 align:middle line:90% if you use a screen reader. 00:21:53.880 --> 00:21:57.030 align:middle line:84% And you have to navigate around the code base less 00:21:57.030 --> 00:22:00.060 align:middle line:84% to find definitions or declarations, which 00:22:00.060 --> 00:22:03.450 align:middle line:84% is also great if you have difficulties with fine motor 00:22:03.450 --> 00:22:06.390 align:middle line:90% control. 00:22:06.390 --> 00:22:08.880 align:middle line:84% Either way, you're minimizing the amount 00:22:08.880 --> 00:22:14.600 align:middle line:84% of navigation required to comprehend a block of code. 00:22:14.600 --> 00:22:17.750 align:middle line:90% 00:22:17.750 --> 00:22:20.360 align:middle line:84% Next lesson is about variable names. 00:22:20.360 --> 00:22:21.200 align:middle line:90% Keep them short. 00:22:21.200 --> 00:22:25.340 align:middle line:90% 00:22:25.340 --> 00:22:28.210 align:middle line:84% Keep them short, which in the Go program language 00:22:28.210 --> 00:22:29.300 align:middle line:90% is encouraged anyway. 00:22:29.300 --> 00:22:32.140 align:middle line:90% 00:22:32.140 --> 00:22:41.450 align:middle line:84% If we look at this declaration of vector A, vector B vector, 00:22:41.450 --> 00:22:43.010 align:middle line:90% it's not recommended. 00:22:43.010 --> 00:22:48.380 align:middle line:84% Instead, use something like A comma B vector. 00:22:48.380 --> 00:22:49.430 align:middle line:90% Why? 00:22:49.430 --> 00:22:56.570 align:middle line:84% Well, it's faster, first of all, which is always a plus. 00:22:56.570 --> 00:23:00.840 align:middle line:84% And you eliminate redundancy, because we've already 00:23:00.840 --> 00:23:02.610 align:middle line:90% said that A and B are vectors. 00:23:02.610 --> 00:23:04.920 align:middle line:84% We don't need to repeat that in the variable name. 00:23:04.920 --> 00:23:08.580 align:middle line:90% 00:23:08.580 --> 00:23:10.010 align:middle line:90% It's also less effort to type. 00:23:10.010 --> 00:23:18.590 align:middle line:90% 00:23:18.590 --> 00:23:19.760 align:middle line:90% It's less effort to type. 00:23:19.760 --> 00:23:22.610 align:middle line:84% And the fewer times I have to hit the Shift key, 00:23:22.610 --> 00:23:23.600 align:middle line:90% I am a fan of that. 00:23:23.600 --> 00:23:27.250 align:middle line:90% 00:23:27.250 --> 00:23:30.880 align:middle line:84% What may seem contradictory to what I just said 00:23:30.880 --> 00:23:33.220 align:middle line:84% is you should use meaningful names. 00:23:33.220 --> 00:23:35.770 align:middle line:90% 00:23:35.770 --> 00:23:38.560 align:middle line:84% Before, in our bad main function, 00:23:38.560 --> 00:23:43.460 align:middle line:84% I had the variable names tVec and sVec, 00:23:43.460 --> 00:23:46.080 align:middle line:90% which I don't recommend. 00:23:46.080 --> 00:23:50.210 align:middle line:84% Instead, use something like total and scaled. 00:23:50.210 --> 00:23:52.890 align:middle line:90% They're more descriptive. 00:23:52.890 --> 00:23:54.960 align:middle line:84% They reduce the amount of cognitive load. 00:23:54.960 --> 00:23:58.860 align:middle line:84% I don't have to go and find where these variables are 00:23:58.860 --> 00:24:04.350 align:middle line:84% actually used to understand how they're going to be used. 00:24:04.350 --> 00:24:07.410 align:middle line:84% You don't have to keep as much context in your head 00:24:07.410 --> 00:24:10.980 align:middle line:90% about what the variable does. 00:24:10.980 --> 00:24:13.860 align:middle line:84% It's a light form of self-documenting code, which 00:24:13.860 --> 00:24:17.160 align:middle line:90% I'm ordinarily not a fan of. 00:24:17.160 --> 00:24:22.020 align:middle line:84% But in this case, it doesn't replace comments, 00:24:22.020 --> 00:24:25.850 align:middle line:90% but it augments them. 00:24:25.850 --> 00:24:29.380 align:middle line:84% It can also reduce the amount of jumping around 00:24:29.380 --> 00:24:33.940 align:middle line:84% that you have to do and help distinguish important variables 00:24:33.940 --> 00:24:36.040 align:middle line:90% from temporary variables. 00:24:36.040 --> 00:24:39.100 align:middle line:84% So when we declared A and B, they're 00:24:39.100 --> 00:24:42.700 align:middle line:84% not going to stick around much past usage. 00:24:42.700 --> 00:24:45.940 align:middle line:84% However, note seeing that total and scaled 00:24:45.940 --> 00:24:48.730 align:middle line:84% are declared variable names with descriptions 00:24:48.730 --> 00:24:50.480 align:middle line:90% in and of themselves. 00:24:50.480 --> 00:24:52.000 align:middle line:84% You can kind of be sure that those 00:24:52.000 --> 00:24:53.500 align:middle line:84% are going to come back around and be 00:24:53.500 --> 00:24:55.050 align:middle line:90% used at least more than once. 00:24:55.050 --> 00:24:59.040 align:middle line:90% 00:24:59.040 --> 00:25:01.950 align:middle line:90% Use pronounceable names. 00:25:01.950 --> 00:25:04.290 align:middle line:84% One thing you may have noticed during the demo 00:25:04.290 --> 00:25:06.960 align:middle line:84% is how screen readers handle variable names, which 00:25:06.960 --> 00:25:08.402 align:middle line:90% can be rough. 00:25:08.402 --> 00:25:10.690 align:middle line:84% I spent about 15 minutes the other day 00:25:10.690 --> 00:25:14.200 align:middle line:84% processing a full request on GitHub, 00:25:14.200 --> 00:25:17.440 align:middle line:84% wondering what my screen reader was saying. 00:25:17.440 --> 00:25:22.450 align:middle line:84% It was saying geethub It kept repeating 00:25:22.450 --> 00:25:25.065 align:middle line:84% throughout the full request, geethub. 00:25:25.065 --> 00:25:26.440 align:middle line:84% And I couldn't figure out what it 00:25:26.440 --> 00:25:30.010 align:middle line:84% was saying until I realized it was pronouncing GitHub, 00:25:30.010 --> 00:25:36.460 align:middle line:84% which is not a word apparently, according to my screen reader. 00:25:36.460 --> 00:25:41.890 align:middle line:84% I had to go and add that to its vocabulary. 00:25:41.890 --> 00:25:44.650 align:middle line:84% Make sure you're using pronounceable names. 00:25:44.650 --> 00:25:49.780 align:middle line:84% In our original program, we had tVec again and the function 00:25:49.780 --> 00:25:51.670 align:middle line:90% addAllVecs. 00:25:51.670 --> 00:25:55.360 align:middle line:84% I'm going to say both of those are not recommended. 00:25:55.360 --> 00:25:58.210 align:middle line:84% And I'll get into why addAllVecs isn't 00:25:58.210 --> 00:26:02.880 align:middle line:90% recommended in just a second. 00:26:02.880 --> 00:26:07.470 align:middle line:84% However, using total, again, totally pronounceable, 00:26:07.470 --> 00:26:13.650 align:middle line:84% pun intended, and add [? or ?] [? sum, ?] both are 00:26:13.650 --> 00:26:14.490 align:middle line:90% pronounceable. 00:26:14.490 --> 00:26:15.855 align:middle line:90% They're both fairly short. 00:26:15.855 --> 00:26:18.440 align:middle line:90% 00:26:18.440 --> 00:26:23.310 align:middle line:84% And there is no confusion as to how they would be pronounced. 00:26:23.310 --> 00:26:27.240 align:middle line:90% So screen readers can read them. 00:26:27.240 --> 00:26:29.340 align:middle line:84% And they take less time than pronouncing 00:26:29.340 --> 00:26:31.230 align:middle line:90% a string of letters. 00:26:31.230 --> 00:26:32.740 align:middle line:90% Don't make up words. 00:26:32.740 --> 00:26:40.590 align:middle line:84% Think of how your variable function names would be spoken. 00:26:40.590 --> 00:26:44.850 align:middle line:84% And the reason I say not to use something like addAllVecs 00:26:44.850 --> 00:26:49.350 align:middle line:84% is because you want to avoid concatenated words. 00:26:49.350 --> 00:26:53.310 align:middle line:84% First of all, depending on the letters 00:26:53.310 --> 00:26:55.260 align:middle line:84% and how they're being concatenated, 00:26:55.260 --> 00:26:59.940 align:middle line:84% it might sound very different than how you think it sounds. 00:26:59.940 --> 00:27:03.840 align:middle line:84% For instance, if your first word ended 00:27:03.840 --> 00:27:06.600 align:middle line:84% with a T and the second word started with an H, 00:27:06.600 --> 00:27:08.340 align:middle line:84% it's going to combine those, right? 00:27:08.340 --> 00:27:12.830 align:middle line:84% Because that's how English is combined. 00:27:12.830 --> 00:27:17.500 align:middle line:84% And the other reason is you don't necessarily-- 00:27:17.500 --> 00:27:19.960 align:middle line:84% when it does pronounce addAllVecs, 00:27:19.960 --> 00:27:23.240 align:middle line:84% it's not making it clear that that's one function name. 00:27:23.240 --> 00:27:25.220 align:middle line:90% You have to infer that. 00:27:25.220 --> 00:27:29.420 align:middle line:84% And, yes, you probably can, but again, it's 00:27:29.420 --> 00:27:32.900 align:middle line:84% additional cognitive load that you have to keep in your head. 00:27:32.900 --> 00:27:36.560 align:middle line:90% 00:27:36.560 --> 00:27:41.240 align:middle line:84% The final lesson is to be intentional about new lines. 00:27:41.240 --> 00:27:45.410 align:middle line:84% This is something I found myself making arguments 00:27:45.410 --> 00:27:48.110 align:middle line:84% very vehemently in my code reviews 00:27:48.110 --> 00:27:50.630 align:middle line:84% for without really understanding why, 00:27:50.630 --> 00:27:55.250 align:middle line:84% until I took a step back to introspect. 00:27:55.250 --> 00:27:59.280 align:middle line:84% If we revisit, this is that recommended organization, 00:27:59.280 --> 00:28:01.520 align:middle line:84% we can also see the usage of this new line 00:28:01.520 --> 00:28:06.980 align:middle line:84% between swapping A and B and the declaration of C. 00:28:06.980 --> 00:28:08.930 align:middle line:84% I apologize if you can hear my dog barking. 00:28:08.930 --> 00:28:11.900 align:middle line:90% 00:28:11.900 --> 00:28:12.740 align:middle line:90% She's very loud. 00:28:12.740 --> 00:28:15.410 align:middle line:90% 00:28:15.410 --> 00:28:17.960 align:middle line:84% New lines are something we kind of pepper into our code 00:28:17.960 --> 00:28:20.010 align:middle line:84% without really thinking about them. 00:28:20.010 --> 00:28:23.300 align:middle line:84% But they can be really powerful signals. 00:28:23.300 --> 00:28:27.380 align:middle line:84% I recommend that you treat them like paragraph breaks. 00:28:27.380 --> 00:28:32.850 align:middle line:84% If you use them too much, your message is super fragmented. 00:28:32.850 --> 00:28:36.110 align:middle line:84% If you use them too little, it reads like a run-on sentence. 00:28:36.110 --> 00:28:39.830 align:middle line:90% And the same is true for code. 00:28:39.830 --> 00:28:44.000 align:middle line:84% You can use new lines to help guide 00:28:44.000 --> 00:28:48.020 align:middle line:84% the reader through various sections of the code 00:28:48.020 --> 00:28:49.190 align:middle line:90% and tell them-- 00:28:49.190 --> 00:28:54.340 align:middle line:84% and signify where new content or functionality is starting. 00:28:54.340 --> 00:28:57.900 align:middle line:90% 00:28:57.900 --> 00:28:59.460 align:middle line:90% Let's read better code. 00:28:59.460 --> 00:29:02.753 align:middle line:90% 00:29:02.753 --> 00:29:04.170 align:middle line:84% Package menu line. 00:29:04.170 --> 00:29:05.670 align:middle line:84% New line import left paren new line. 00:29:05.670 --> 00:29:06.970 align:middle line:90% Quote FMT code new line. 00:29:06.970 --> 00:29:07.890 align:middle line:90% Right paren new line. 00:29:07.890 --> 00:29:08.780 align:middle line:90% New line [INAUDIBLE] vector. 00:29:08.780 --> 00:29:11.090 align:middle line:84% Left bracket, right bracket. [? Float 64 ?] new line. 00:29:11.090 --> 00:29:12.840 align:middle line:84% New line func main left paren right paren. 00:29:12.840 --> 00:29:13.500 align:middle line:90% Left brace new line. 00:29:13.500 --> 00:29:14.000 align:middle line:90% A comma. 00:29:14.000 --> 00:29:15.125 align:middle line:90% B colon equals vector. 00:29:15.125 --> 00:29:16.000 align:middle line:90% Left brace one comma. 00:29:16.000 --> 00:29:16.710 align:middle line:90% Two comma. 00:29:16.710 --> 00:29:17.490 align:middle line:90% Three right brace. 00:29:17.490 --> 00:29:18.950 align:middle line:84% Comma vector left brace four comma. 00:29:18.950 --> 00:29:19.740 align:middle line:90% Five comma. 00:29:19.740 --> 00:29:20.580 align:middle line:90% Six right brace. 00:29:20.580 --> 00:29:21.100 align:middle line:90% New line. 00:29:21.100 --> 00:29:21.600 align:middle line:90% A comma. 00:29:21.600 --> 00:29:22.110 align:middle line:90% B comma. 00:29:22.110 --> 00:29:23.610 align:middle line:84% Underscore equals left paren comma. 00:29:23.610 --> 00:29:24.650 align:middle line:90% B right paren new line. 00:29:24.650 --> 00:29:25.265 align:middle line:90% FMT period. 00:29:25.265 --> 00:29:27.140 align:middle line:84% Print left paren [INAUDIBLE] vectors a colon. 00:29:27.140 --> 00:29:27.940 align:middle line:90% Percent V comma. 00:29:27.940 --> 00:29:28.500 align:middle line:90% B colon. 00:29:28.500 --> 00:29:30.000 align:middle line:84% Percent B backslash end quote comma. 00:29:30.000 --> 00:29:30.330 align:middle line:90% A comma. 00:29:30.330 --> 00:29:31.380 align:middle line:90% B right paren new line. 00:29:31.380 --> 00:29:32.912 align:middle line:90% New line C colon equals vector. 00:29:32.912 --> 00:29:33.870 align:middle line:90% Left brace seven comma. 00:29:33.870 --> 00:29:34.370 align:middle line:90% Eight comma. 00:29:34.370 --> 00:29:35.160 align:middle line:90% Nine right brace. 00:29:35.160 --> 00:29:36.270 align:middle line:90% New line. [? Sum ?] comma. 00:29:36.270 --> 00:29:37.980 align:middle line:84% Underscore colon equals [INAUDIBLE] left paren. 00:29:37.980 --> 00:29:39.147 align:middle line:90% Left bracket, right bracket. 00:29:39.147 --> 00:29:40.260 align:middle line:90% Vector left brace a comma. 00:29:40.260 --> 00:29:40.760 align:middle line:90% B comma. 00:29:40.760 --> 00:29:41.515 align:middle line:90% C right brace. 00:29:41.515 --> 00:29:42.890 align:middle line:84% Dot dot dot right paren new line. 00:29:42.890 --> 00:29:44.020 align:middle line:90% FMT-- 00:29:44.020 --> 00:29:46.790 align:middle line:84% So while that might not 00:29:46.790 --> 00:29:51.320 align:middle line:84% have been as easy as we would like, 00:29:51.320 --> 00:29:54.320 align:middle line:84% this is better and easier to understand 00:29:54.320 --> 00:29:56.380 align:middle line:90% than our original main program. 00:29:56.380 --> 00:30:03.200 align:middle line:84% It would be even easier if we did it in a true voiceover 00:30:03.200 --> 00:30:07.580 align:middle line:84% fashion, where we're interacting with the code. 00:30:07.580 --> 00:30:11.090 align:middle line:84% All of these recommendations that I've made 00:30:11.090 --> 00:30:14.510 align:middle line:84% help reduce the cognitive load that a person has 00:30:14.510 --> 00:30:19.070 align:middle line:84% to keep in mind when hearing their code or their colleague's 00:30:19.070 --> 00:30:21.690 align:middle line:90% code. 00:30:21.690 --> 00:30:24.330 align:middle line:90% And they're not revolutionary. 00:30:24.330 --> 00:30:25.080 align:middle line:90% They're just tips. 00:30:25.080 --> 00:30:27.890 align:middle line:90% 00:30:27.890 --> 00:30:31.230 align:middle line:84% Accessible code is actually achievable. 00:30:31.230 --> 00:30:33.000 align:middle line:90% We can build on this. 00:30:33.000 --> 00:30:37.190 align:middle line:84% We can come up with other best practices that 00:30:37.190 --> 00:30:40.670 align:middle line:84% will help us make the development process 00:30:40.670 --> 00:30:43.250 align:middle line:90% itself more accessible. 00:30:43.250 --> 00:30:46.730 align:middle line:84% That augmented with accessible tooling 00:30:46.730 --> 00:30:50.420 align:middle line:84% makes the whole thing much easier. 00:30:50.420 --> 00:30:54.500 align:middle line:84% I wanted to highlight some references. 00:30:54.500 --> 00:30:56.360 align:middle line:84% This is actually the wrong transcript 00:30:56.360 --> 00:30:58.170 align:middle line:84% because I just modified the talk. 00:30:58.170 --> 00:31:00.650 align:middle line:90% So I apologize. 00:31:00.650 --> 00:31:04.490 align:middle line:84% But there is a lightning talk at PyCon 00:31:04.490 --> 00:31:07.070 align:middle line:84% a couple of years ago on code style 00:31:07.070 --> 00:31:10.870 align:middle line:84% for blind programmers, which was interesting. 00:31:10.870 --> 00:31:14.360 align:middle line:84% And I highly recommend watching that. 00:31:14.360 --> 00:31:20.060 align:middle line:84% Here at Google, Emacspeak was developed by TV Roman. 00:31:20.060 --> 00:31:26.510 align:middle line:84% And you can install that for Emacs if you're an Emacs user. 00:31:26.510 --> 00:31:29.290 align:middle line:90% It's very powerful. 00:31:29.290 --> 00:31:33.130 align:middle line:84% And there is a blog post on tools for the blind programmer 00:31:33.130 --> 00:31:35.980 align:middle line:84% and some information on curb cuts, which probably are 00:31:35.980 --> 00:31:39.190 align:middle line:90% no surprises to anybody here. 00:31:39.190 --> 00:31:44.330 align:middle line:84% So thank you so much for having me talk. 00:31:44.330 --> 00:31:46.908 align:middle line:84% I think that was 30 minutes exactly. 00:31:46.908 --> 00:31:48.200 align:middle line:90% I think it was. 00:31:48.200 --> 00:31:49.480 align:middle line:90% Thanks, Julia for sharing. 00:31:49.480 --> 00:31:51.020 align:middle line:90% That was great. 00:31:51.020 --> 00:31:53.658 align:middle line:84% Does anybody have any questions that they'd like to ask? 00:31:53.658 --> 00:31:55.200 align:middle line:84% Yes, this is Richard. 00:31:55.200 --> 00:31:55.863 align:middle line:90% Hi Julia. 00:31:55.863 --> 00:31:57.030 align:middle line:90% Hi Richard. 00:31:57.030 --> 00:31:58.130 align:middle line:84% Good to see you again. 00:31:58.130 --> 00:31:59.172 align:middle line:90% You too. 00:31:59.172 --> 00:32:01.010 align:middle line:84% Yeah, that was interesting. 00:32:01.010 --> 00:32:04.456 align:middle line:84% And I have to look at those references. 00:32:04.456 --> 00:32:07.760 align:middle line:84% Are we going to have access to your slides somehow? 00:32:07.760 --> 00:32:10.267 align:middle line:90% Sure, yes. 00:32:10.267 --> 00:32:11.850 align:middle line:84% So a couple of things. 00:32:11.850 --> 00:32:16.730 align:middle line:84% One is that there is also the issue of not just reading 00:32:16.730 --> 00:32:19.520 align:middle line:90% code, but navigating a code. 00:32:19.520 --> 00:32:23.150 align:middle line:84% You explored that problem as well. 00:32:23.150 --> 00:32:26.630 align:middle line:84% That's actually hard for everyone. 00:32:26.630 --> 00:32:29.450 align:middle line:84% It's definitely harder for people with low vision 00:32:29.450 --> 00:32:30.740 align:middle line:90% or blind. 00:32:30.740 --> 00:32:32.510 align:middle line:90% Yes, I noticed. 00:32:32.510 --> 00:32:38.480 align:middle line:84% I can attribute many a headache to just navigating code. 00:32:38.480 --> 00:32:44.450 align:middle line:84% I haven't explored that in as much depth, to be quite honest. 00:32:44.450 --> 00:32:47.330 align:middle line:84% If you have pointers, I would love to hear about them. 00:32:47.330 --> 00:32:53.590 align:middle line:84% One I put it in the chat, Code Talk. 00:32:53.590 --> 00:32:57.360 align:middle line:84% And that was developed at Microsoft Research. 00:32:57.360 --> 00:33:02.790 align:middle line:84% And the main author is actually blind-- 00:33:02.790 --> 00:33:05.010 align:middle line:84% Venkatesh and he's a PhD student here 00:33:05.010 --> 00:33:07.150 align:middle line:90% at University of Washington. 00:33:07.150 --> 00:33:09.880 align:middle line:90% So I got to know him. 00:33:09.880 --> 00:33:18.320 align:middle line:84% And their approach is more like a accessible IDE with tools 00:33:18.320 --> 00:33:21.260 align:middle line:84% to help navigation and stuff like that. 00:33:21.260 --> 00:33:22.980 align:middle line:84% I don't know how available it is. 00:33:22.980 --> 00:33:25.760 align:middle line:90% Maybe Stefik knows. 00:33:25.760 --> 00:33:29.628 align:middle line:84% But that might be something to look at for some inspiration. 00:33:29.628 --> 00:33:32.045 align:middle line:84% Yes, I look forward to reading the paper. 00:33:32.045 --> 00:33:35.910 align:middle line:90% 00:33:35.910 --> 00:33:41.870 align:middle line:84% Because of how we develop here at Google, 00:33:41.870 --> 00:33:44.030 align:middle line:84% I was rather limited in the tools 00:33:44.030 --> 00:33:48.690 align:middle line:84% that I have available to me to actually use. 00:33:48.690 --> 00:33:50.720 align:middle line:84% So I was focusing primarily on how 00:33:50.720 --> 00:33:56.660 align:middle line:84% we can write code that can aid in accessibility. 00:33:56.660 --> 00:33:59.850 align:middle line:84% But that's a really good paper that I hope everyone checks 00:33:59.850 --> 00:34:00.350 align:middle line:90% out. 00:34:00.350 --> 00:34:02.568 align:middle line:90% 00:34:02.568 --> 00:34:04.610 align:middle line:84% Maybe Stefik can say a little bit 00:34:04.610 --> 00:34:08.090 align:middle line:84% about the new IDE for the Quorum language, 00:34:08.090 --> 00:34:10.100 align:middle line:84% which might have some ideas on that as well. 00:34:10.100 --> 00:34:12.722 align:middle line:90% 00:34:12.722 --> 00:34:15.407 align:middle line:84% Sure, I have some questions as well. 00:34:15.407 --> 00:34:17.199 align:middle line:84% But before I do, just let me say thank you, 00:34:17.199 --> 00:34:20.620 align:middle line:84% because I think it's awesome that people 00:34:20.620 --> 00:34:22.659 align:middle line:90% are thinking about this issue. 00:34:22.659 --> 00:34:24.909 align:middle line:84% I know enough blind developers nowadays 00:34:24.909 --> 00:34:27.310 align:middle line:84% that want to invent technologies. 00:34:27.310 --> 00:34:31.630 align:middle line:84% I really appreciated what you said that for that community 00:34:31.630 --> 00:34:33.850 align:middle line:84% to make the technologies better for themselves, 00:34:33.850 --> 00:34:35.980 align:middle line:84% they must be able to invent things. 00:34:35.980 --> 00:34:37.630 align:middle line:84% And as such, the development tools 00:34:37.630 --> 00:34:40.193 align:middle line:84% must be accessible in order to accomplish that. 00:34:40.193 --> 00:34:41.110 align:middle line:90% You kind of said that. 00:34:41.110 --> 00:34:44.320 align:middle line:84% I've thought that for a long time as well. 00:34:44.320 --> 00:34:46.500 align:middle line:84% I appreciated that sentiment from you. 00:34:46.500 --> 00:34:47.962 align:middle line:90% Thank you. 00:34:47.962 --> 00:34:49.670 align:middle line:84% So a couple of questions. 00:34:49.670 --> 00:34:54.540 align:middle line:84% Number one is, I know some blind developers that work at Google. 00:34:54.540 --> 00:34:56.590 align:middle line:84% And I know, without naming any names, 00:34:56.590 --> 00:34:58.540 align:middle line:84% I know that they have chronic difficulties, 00:34:58.540 --> 00:35:00.970 align:middle line:90% actually doing work. 00:35:00.970 --> 00:35:03.820 align:middle line:84% Do you know if Google's doing anything on this in terms of, 00:35:03.820 --> 00:35:07.640 align:middle line:84% are they making any progress on, for example, making Android-- 00:35:07.640 --> 00:35:10.930 align:middle line:84% I know Android Studio says it's NVDA accessible, 00:35:10.930 --> 00:35:12.070 align:middle line:90% but it's actually not. 00:35:12.070 --> 00:35:13.028 align:middle line:90% It doesn't really work. 00:35:13.028 --> 00:35:14.778 align:middle line:84% Do you know if they're making any progress 00:35:14.778 --> 00:35:15.940 align:middle line:90% on that sort of thing? 00:35:15.940 --> 00:35:19.770 align:middle line:84% I don't know specifically. 00:35:19.770 --> 00:35:23.020 align:middle line:84% Unfortunately, I had to take a step back 00:35:23.020 --> 00:35:31.630 align:middle line:84% from full-time development myself due to my issues. 00:35:31.630 --> 00:35:37.030 align:middle line:84% I know that they're very sincere and passionate folks at Google 00:35:37.030 --> 00:35:39.370 align:middle line:84% trying to make products more accessible 00:35:39.370 --> 00:35:48.860 align:middle line:84% and to make accessibility a higher priority for teams 00:35:48.860 --> 00:35:51.950 align:middle line:90% across the board. 00:35:51.950 --> 00:35:55.610 align:middle line:84% But as I think all of us are aware, 00:35:55.610 --> 00:35:58.755 align:middle line:84% accessibility is too often an afterthought for people. 00:35:58.755 --> 00:35:59.630 align:middle line:90% Yeah. 00:35:59.630 --> 00:36:01.385 align:middle line:90% It's also really hard sometimes. 00:36:01.385 --> 00:36:03.113 align:middle line:84% It is really hard. 00:36:03.113 --> 00:36:05.030 align:middle line:84% It's not like oftentimes, even 00:36:05.030 --> 00:36:06.572 align:middle line:84% with really good intentions, it's not 00:36:06.572 --> 00:36:08.660 align:middle line:84% easy to just flip a switch and then 00:36:08.660 --> 00:36:10.890 align:middle line:90% hey, it's all accessible now. 00:36:10.890 --> 00:36:13.340 align:middle line:90% There's a lot of work. 00:36:13.340 --> 00:36:15.200 align:middle line:90% I have one more question. 00:36:15.200 --> 00:36:18.920 align:middle line:84% But also, I'll do Richard's request first. 00:36:18.920 --> 00:36:21.585 align:middle line:84% So we've developed a technology that's called Quorum. 00:36:21.585 --> 00:36:24.300 align:middle line:84% It's a programming language that is used a lot at School 00:36:24.300 --> 00:36:25.580 align:middle line:90% for the Blind. 00:36:25.580 --> 00:36:28.970 align:middle line:84% But we've developed a new IDE for it, basically, 00:36:28.970 --> 00:36:33.200 align:middle line:84% that is based on a technology that 00:36:33.200 --> 00:36:38.420 align:middle line:84% makes it so that all of 3D and 2D graphics can be accessible. 00:36:38.420 --> 00:36:40.940 align:middle line:84% If you have a text box, that's accessible. 00:36:40.940 --> 00:36:43.370 align:middle line:84% If you have a 3D spinning dragon, that's accessible. 00:36:43.370 --> 00:36:45.530 align:middle line:90% It doesn't really matter. 00:36:45.530 --> 00:36:47.660 align:middle line:84% How that works-- I know that sounds sort of nuts, 00:36:47.660 --> 00:36:49.660 align:middle line:84% but I swear to God that it actually works, 00:36:49.660 --> 00:36:51.380 align:middle line:90% and that's solved. 00:36:51.380 --> 00:36:55.200 align:middle line:84% But interestingly, one of the things you mention, 00:36:55.200 --> 00:36:57.740 align:middle line:84% which is my actual question, is that you 00:36:57.740 --> 00:37:01.190 align:middle line:84% talked about this concept of a debugging technology. 00:37:01.190 --> 00:37:03.710 align:middle line:84% Well actually, as it happens, on this new technology 00:37:03.710 --> 00:37:09.530 align:middle line:84% there's a method by which you can do explicit screen reader 00:37:09.530 --> 00:37:13.130 align:middle line:84% call downs, and then connect it through a JDI bridge, which 00:37:13.130 --> 00:37:15.050 align:middle line:84% would actually work both for Google products 00:37:15.050 --> 00:37:19.280 align:middle line:84% and for our product, which would allow you as you execute code 00:37:19.280 --> 00:37:21.170 align:middle line:84% to send JDI requests, which would then 00:37:21.170 --> 00:37:24.408 align:middle line:84% get sent down to represent what the code did during that time. 00:37:24.408 --> 00:37:26.700 align:middle line:84% Like, this function was called, or something like that. 00:37:26.700 --> 00:37:29.180 align:middle line:84% But nobody really knows exactly what 00:37:29.180 --> 00:37:30.860 align:middle line:90% these debuggers should say. 00:37:30.860 --> 00:37:33.170 align:middle line:84% However, if you built it into Quorum Studio, 00:37:33.170 --> 00:37:35.010 align:middle line:90% you could do that. 00:37:35.010 --> 00:37:37.020 align:middle line:90% Interesting. 00:37:37.020 --> 00:37:38.100 align:middle line:90% That's super cool. 00:37:38.100 --> 00:37:39.180 align:middle line:90% I need to check that out. 00:37:39.180 --> 00:37:41.640 align:middle line:84% Yeah, so happy to send links and stuff 00:37:41.640 --> 00:37:44.450 align:middle line:84% or talk more or something like that too. 00:37:44.450 --> 00:37:46.740 align:middle line:84% But actually, just saying that I think 00:37:46.740 --> 00:37:49.350 align:middle line:84% that actually is possible, that idea that you kind of said off 00:37:49.350 --> 00:37:50.610 align:middle line:90% the cuff. 00:37:50.610 --> 00:37:53.460 align:middle line:84% Yes, I think it's possible. 00:37:53.460 --> 00:37:56.582 align:middle line:84% I just didn't have any good approaches to it. 00:37:56.582 --> 00:37:58.290 align:middle line:84% Actually, my dissertation 00:37:58.290 --> 00:38:01.890 align:middle line:84% was on the debuggers for the blind. 00:38:01.890 --> 00:38:04.090 align:middle line:84% I've thought about this problem a great deal. 00:38:04.090 --> 00:38:07.590 align:middle line:84% And the trick, though was always getting it to commercial scale, 00:38:07.590 --> 00:38:09.820 align:middle line:84% because you're talking about speech engines. 00:38:09.820 --> 00:38:11.880 align:middle line:84% And the problem is that you get double speaking 00:38:11.880 --> 00:38:13.560 align:middle line:90% and all sorts of stuff. 00:38:13.560 --> 00:38:16.470 align:middle line:84% Whereas, a lot of the commands that are built and technically 00:38:16.470 --> 00:38:18.180 align:middle line:84% for screen readers to do extra talking, 00:38:18.180 --> 00:38:21.570 align:middle line:84% like ARIA and these things, these specs happened way later. 00:38:21.570 --> 00:38:25.170 align:middle line:84% So they weren't really possible until the last few years. 00:38:25.170 --> 00:38:28.050 align:middle line:84% Yes, and just to give a little bit 00:38:28.050 --> 00:38:33.900 align:middle line:84% more context on my end, my development environment, 00:38:33.900 --> 00:38:35.640 align:middle line:84% the actual development environment, 00:38:35.640 --> 00:38:41.450 align:middle line:84% is in a data center somewhere that I connect over SSH. 00:38:41.450 --> 00:38:47.360 align:middle line:84% And my Emacs is running in that data center, not locally. 00:38:47.360 --> 00:38:50.770 align:middle line:84% I tried to run Emacs in Emacs to use Emacs speak. 00:38:50.770 --> 00:38:51.950 align:middle line:90% That didn't go so well. 00:38:51.950 --> 00:38:55.790 align:middle line:90% 00:38:55.790 --> 00:38:58.520 align:middle line:84% The toolset that I had available to me 00:38:58.520 --> 00:39:04.670 align:middle line:84% was pretty limited, unless I switched to developing entire-- 00:39:04.670 --> 00:39:08.387 align:middle line:84% like, not using corporate technologies at all, which-- 00:39:08.387 --> 00:39:09.470 align:middle line:90% It's hard. 00:39:09.470 --> 00:39:12.737 align:middle line:84% Well, it means that I need a different job. 00:39:12.737 --> 00:39:14.570 align:middle line:84% One of my friends at Google, 00:39:14.570 --> 00:39:15.710 align:middle line:90% that's in the same-- 00:39:15.710 --> 00:39:17.900 align:middle line:84% he says the same thing, basically. 00:39:17.900 --> 00:39:19.540 align:middle line:90% It's just tough. 00:39:19.540 --> 00:39:21.380 align:middle line:84% And his workflow is basically the same 00:39:21.380 --> 00:39:24.730 align:middle line:90% as what you just said too. 00:39:24.730 --> 00:39:25.750 align:middle line:90% Yeah. 00:39:25.750 --> 00:39:27.082 align:middle line:90% Emacs on Emacs. 00:39:27.082 --> 00:39:28.500 align:middle line:90% Hmm. 00:39:28.500 --> 00:39:30.500 align:middle line:84% Anyway, thank you for your talk. 00:39:30.500 --> 00:39:32.600 align:middle line:84% That's just one thing I wanted to mention. 00:39:32.600 --> 00:39:33.725 align:middle line:90% Thank you. 00:39:33.725 --> 00:39:35.695 align:middle line:84% I would love to get links to that. 00:39:35.695 --> 00:39:37.070 align:middle line:84% Yeah, no problem. 00:39:37.070 --> 00:39:40.708 align:middle line:84% We have s public beta literally going out literally tomorrow. 00:39:40.708 --> 00:39:41.750 align:middle line:90% Awesome. 00:39:41.750 --> 00:39:43.917 align:middle line:84% So it's sort of hot off the presses. 00:39:43.917 --> 00:39:46.850 align:middle line:84% The actual 3D technology, while it's done, it's not in beta. 00:39:46.850 --> 00:39:49.940 align:middle line:84% But I'm happy to give you a demo or something sometime. 00:39:49.940 --> 00:39:50.790 align:middle line:90% Oh wait, no. 00:39:50.790 --> 00:39:55.120 align:middle line:84% Brianna has a schedule because we're going to do a talk on it 00:39:55.120 --> 00:39:55.910 align:middle line:90% in January. 00:39:55.910 --> 00:39:57.910 align:middle line:90% Is that right? 00:39:57.910 --> 00:40:00.445 align:middle line:84% Yeah, it's in January. 00:40:00.445 --> 00:40:01.820 align:middle line:84% I have to look up the exact date, 00:40:01.820 --> 00:40:03.695 align:middle line:84% but I think it's about the middle of January. 00:40:03.695 --> 00:40:05.690 align:middle line:84% I'll look and put it in the chat. 00:40:05.690 --> 00:40:09.170 align:middle line:84% Yes, and I know that there's 00:40:09.170 --> 00:40:12.700 align:middle line:84% an open source project by Google called Science Journal. 00:40:12.700 --> 00:40:14.780 align:middle line:90% It's aimed at kids. 00:40:14.780 --> 00:40:18.500 align:middle line:90% And I needed to look at this. 00:40:18.500 --> 00:40:23.550 align:middle line:84% But they said that they found a way to-- 00:40:23.550 --> 00:40:28.130 align:middle line:84% or they found a method to make charts 00:40:28.130 --> 00:40:33.840 align:middle line:84% and some of the interactive graphs accessible. 00:40:33.840 --> 00:40:35.840 align:middle line:84% And I was always curious about how they do that. 00:40:35.840 --> 00:40:37.890 align:middle line:84% I don't actually have useful information there. 00:40:37.890 --> 00:40:41.960 align:middle line:84% But I know that it's open sourced. 00:40:41.960 --> 00:40:44.390 align:middle line:84% So it might be something interesting to look 00:40:44.390 --> 00:40:45.385 align:middle line:90% into as well. 00:40:45.385 --> 00:40:46.760 align:middle line:84% What's it called? 00:40:46.760 --> 00:40:48.135 align:middle line:84% Science Journal. 00:40:48.135 --> 00:40:52.960 align:middle line:90% 00:40:52.960 --> 00:40:57.890 align:middle line:84% And I can provide a link to that later as well. 00:40:57.890 --> 00:41:01.520 align:middle line:84% Is it Science Journal dot with google.com? 00:41:01.520 --> 00:41:02.440 align:middle line:90% Yep. 00:41:02.440 --> 00:41:02.800 align:middle line:90% OK, cool. 00:41:02.800 --> 00:41:03.550 align:middle line:90% I'll check it out. 00:41:03.550 --> 00:41:05.410 align:middle line:90% Thank you. 00:41:05.410 --> 00:41:08.440 align:middle line:84% That link that Brianna sent, quorumlanguage.com 00:41:08.440 --> 00:41:12.490 align:middle line:90% shows a bunch of the stuff. 00:41:12.490 --> 00:41:14.590 align:middle line:84% In terms of the language, it's interesting to hear 00:41:14.590 --> 00:41:17.710 align:middle line:84% you talk about Go, because Go has 00:41:17.710 --> 00:41:21.060 align:middle line:84% a lot of extra little esoteric characters. 00:41:21.060 --> 00:41:24.070 align:middle line:84% And I can only imagine if you're 14, 15 00:41:24.070 --> 00:41:26.050 align:middle line:84% and you have all those extra little characters. 00:41:26.050 --> 00:41:28.592 align:middle line:84% Some of them don't even read, depending on your screen reader 00:41:28.592 --> 00:41:30.430 align:middle line:90% settings and stuff. 00:41:30.430 --> 00:41:33.910 align:middle line:84% Have you considered at all contacting the Go team to get 00:41:33.910 --> 00:41:35.680 align:middle line:90% them to change the language? 00:41:35.680 --> 00:41:38.113 align:middle line:84% I'm sure that's not political at all. 00:41:38.113 --> 00:41:39.280 align:middle line:90% It's funny. 00:41:39.280 --> 00:41:42.300 align:middle line:84% The first time I gave this talk, I 00:41:42.300 --> 00:41:45.400 align:middle line:84% was keynoting GopherCon, which is their conference. 00:41:45.400 --> 00:41:46.720 align:middle line:90% Perfect. 00:41:46.720 --> 00:41:49.150 align:middle line:84% With all of the Go team sitting basically 00:41:49.150 --> 00:41:51.170 align:middle line:90% in the front row. 00:41:51.170 --> 00:41:55.750 align:middle line:84% So a lot of what Go does is enforced 00:41:55.750 --> 00:42:05.740 align:middle line:84% by a method called Go format, which basically takes your code 00:42:05.740 --> 00:42:08.220 align:middle line:90% and formats it for you. 00:42:08.220 --> 00:42:10.360 align:middle line:84% So we were talking about incorporating 00:42:10.360 --> 00:42:13.600 align:middle line:84% some of these recommendations into that tool, which 00:42:13.600 --> 00:42:16.450 align:middle line:90% is released by the Go team. 00:42:16.450 --> 00:42:18.820 align:middle line:84% Of course, some of that is harder 00:42:18.820 --> 00:42:21.800 align:middle line:84% to do, especially the new [? lines. ?] 00:42:21.800 --> 00:42:27.270 align:middle line:84% But they took the feedback, and they're incorporating it 00:42:27.270 --> 00:42:30.142 align:middle line:84% into the style guide that they have. 00:42:30.142 --> 00:42:31.350 align:middle line:90% That's great. 00:42:31.350 --> 00:42:34.430 align:middle line:84% Yes, I'm lucky that I have that channel. 00:42:34.430 --> 00:42:38.032 align:middle line:90% I realize that's a privilege. 00:42:38.032 --> 00:42:40.490 align:middle line:84% Yeah, because I know on the Quorum project, 00:42:40.490 --> 00:42:42.200 align:middle line:84% we always use a lot of statistical data 00:42:42.200 --> 00:42:44.783 align:middle line:84% to figure out what words should come out to the screen reader. 00:42:44.783 --> 00:42:47.720 align:middle line:84% Like, a lot of the left braces and stuff, 00:42:47.720 --> 00:42:50.060 align:middle line:90% the results are always weird. 00:42:50.060 --> 00:42:53.343 align:middle line:84% If you have a left brace, people get that wrong 92% of the time. 00:42:53.343 --> 00:42:55.260 align:middle line:84% But if it's the right brace, they get it wrong 00:42:55.260 --> 00:42:56.630 align:middle line:90% only 30% of the time. 00:42:56.630 --> 00:43:00.445 align:middle line:84% So I always think it's funny with industry treat teams, 00:43:00.445 --> 00:43:02.070 align:middle line:84% because I don't know what kind of data, 00:43:02.070 --> 00:43:03.612 align:middle line:84% they're using to make their decisions 00:43:03.612 --> 00:43:06.710 align:middle line:84% for all the characters and symbols and stuff, if any. 00:43:06.710 --> 00:43:09.350 align:middle line:84% That's a really good question and one that I 00:43:09.350 --> 00:43:12.140 align:middle line:90% don't know the answer to. 00:43:12.140 --> 00:43:20.210 align:middle line:84% I think Go took a lot of inspiration from C. 00:43:20.210 --> 00:43:24.740 align:middle line:84% And I think some of it is probably just historic. 00:43:24.740 --> 00:43:28.160 align:middle line:84% And some of it is, this is a symbol we haven't used yet. 00:43:28.160 --> 00:43:30.170 align:middle line:90% Let's use that. 00:43:30.170 --> 00:43:30.740 align:middle line:90% I don't know. 00:43:30.740 --> 00:43:32.270 align:middle line:84% I'm putting words in people's mouth. 00:43:32.270 --> 00:43:35.657 align:middle line:90% 00:43:35.657 --> 00:43:37.990 align:middle line:84% I don't mean to capitalize all the time. 00:43:37.990 --> 00:43:39.615 align:middle line:84% I'm just appreciating the conversation. 00:43:39.615 --> 00:43:40.617 align:middle line:90% That's all, sorry. 00:43:40.617 --> 00:43:41.950 align:middle line:90% No, you're fine. 00:43:41.950 --> 00:43:44.533 align:middle line:84% Does anybody else have any other questions they'd like to ask? 00:43:44.533 --> 00:43:50.218 align:middle line:90% 00:43:50.218 --> 00:43:54.480 align:middle line:84% You can unmute yourself or type in the chat. 00:43:54.480 --> 00:43:57.850 align:middle line:84% This is Richard again. 00:43:57.850 --> 00:44:00.352 align:middle line:90% Julia are you aware of the-- 00:44:00.352 --> 00:44:01.060 align:middle line:90% what's it called? 00:44:01.060 --> 00:44:06.310 align:middle line:84% It's a listserv called Program L. Have you ever heard of that? 00:44:06.310 --> 00:44:07.750 align:middle line:90% Prog L. 00:44:07.750 --> 00:44:10.977 align:middle line:84% No, it's Program L. I can debate this. 00:44:10.977 --> 00:44:12.310 align:middle line:90% They changed it. 00:44:12.310 --> 00:44:14.770 align:middle line:84% The technical thing is Prog L. But you're right, it 00:44:14.770 --> 00:44:16.170 align:middle line:90% means Program L. 00:44:16.170 --> 00:44:18.700 align:middle line:84% No, Program L is what you-- 00:44:18.700 --> 00:44:20.290 align:middle line:84% when I get the email from Program L, 00:44:20.290 --> 00:44:25.262 align:middle line:84% it doesn't say Prog L. It says Program L. 00:44:25.262 --> 00:44:26.970 align:middle line:84% I have it open right now. 00:44:26.970 --> 00:44:28.530 align:middle line:84% You interrupted me, Stefik. 00:44:28.530 --> 00:44:29.738 align:middle line:90% Yeah, I know. 00:44:29.738 --> 00:44:31.110 align:middle line:90% Oh wait, they changed it back. 00:44:31.110 --> 00:44:31.800 align:middle line:90% You're right. 00:44:31.800 --> 00:44:35.520 align:middle line:90% It is Program L, as the tag. 00:44:35.520 --> 00:44:36.778 align:middle line:90% And now they changed it. 00:44:36.778 --> 00:44:37.320 align:middle line:90% You're right. 00:44:37.320 --> 00:44:37.920 align:middle line:90% OK, I'm sorry. 00:44:37.920 --> 00:44:38.690 align:middle line:90% I stand corrected. 00:44:38.690 --> 00:44:40.440 align:middle line:84% Once in a while I'm right. 00:44:40.440 --> 00:44:42.507 align:middle line:90% Fair enough. 00:44:42.507 --> 00:44:43.340 align:middle line:90% I will stop talking. 00:44:43.340 --> 00:44:46.220 align:middle line:84% Like a clock that's broken. 00:44:46.220 --> 00:44:47.860 align:middle line:90% Julia, have you heard of that? 00:44:47.860 --> 00:44:49.420 align:middle line:90% No, I haven't. 00:44:49.420 --> 00:44:51.170 align:middle line:84% So that's a program-- 00:44:51.170 --> 00:44:55.850 align:middle line:84% blind programmer development listserv. 00:44:55.850 --> 00:44:58.530 align:middle line:84% I don't know if you can go back and search for terms or things 00:44:58.530 --> 00:45:03.090 align:middle line:84% like that to see what people are doing. 00:45:03.090 --> 00:45:04.950 align:middle line:90% You could subscribe to that. 00:45:04.950 --> 00:45:07.155 align:middle line:90% It's pretty active, I'd say. 00:45:07.155 --> 00:45:08.280 align:middle line:90% Thank you. 00:45:08.280 --> 00:45:09.488 align:middle line:90% I don't know. 00:45:09.488 --> 00:45:11.060 align:middle line:90% Three or four emails a day. 00:45:11.060 --> 00:45:12.060 align:middle line:90% Oh wow. 00:45:12.060 --> 00:45:12.510 align:middle line:90% That is accurate. 00:45:12.510 --> 00:45:14.427 align:middle line:84% I'll throw a link in the chat. 00:45:14.427 --> 00:45:16.680 align:middle line:84% I hope that's the right thing, guys. 00:45:16.680 --> 00:45:18.693 align:middle line:84% Let me take a look at the chat. 00:45:18.693 --> 00:45:21.360 align:middle line:84% Yeah, it's a lot more active than it used to be. 00:45:21.360 --> 00:45:23.910 align:middle line:90% Over time, it's grown a lot. 00:45:23.910 --> 00:45:25.620 align:middle line:84% It's really interesting to kind of-- 00:45:25.620 --> 00:45:28.140 align:middle line:84% like a lot of the things you mentioned in your talk, Julia, 00:45:28.140 --> 00:45:29.910 align:middle line:84% it's interesting to look at Program L, 00:45:29.910 --> 00:45:32.580 align:middle line:84% because a lot of what you're saying really 00:45:32.580 --> 00:45:35.010 align:middle line:84% comes out in these forum posts of people 00:45:35.010 --> 00:45:39.020 align:middle line:84% talking about the issues that they have. 00:45:39.020 --> 00:45:42.180 align:middle line:84% Yes, for me it was interesting, 00:45:42.180 --> 00:45:44.660 align:middle line:90% because it was as though-- 00:45:44.660 --> 00:45:51.570 align:middle line:84% I didn't experience a true degradation in my vision. 00:45:51.570 --> 00:45:54.220 align:middle line:90% It was kind of light switchy. 00:45:54.220 --> 00:45:58.870 align:middle line:84% So I had to get very used to things very rapidly. 00:45:58.870 --> 00:46:02.590 align:middle line:84% And I don't think I entirely succeeded. 00:46:02.590 --> 00:46:07.620 align:middle line:84% So learning from others sounds like a great-- 00:46:07.620 --> 00:46:10.852 align:middle line:90% I'm going to join this listserv. 00:46:10.852 --> 00:46:13.310 align:middle line:84% It's interesting in part because, you know, 00:46:13.310 --> 00:46:14.370 align:middle line:90% you're a professional. 00:46:14.370 --> 00:46:16.460 align:middle line:84% So you have sort of a background. 00:46:16.460 --> 00:46:18.060 align:middle line:90% And it sounds like you're-- 00:46:18.060 --> 00:46:19.280 align:middle line:90% I must have missed a few-- 00:46:19.280 --> 00:46:20.600 align:middle line:84% I couldn't connect right at the beginning, 00:46:20.600 --> 00:46:22.225 align:middle line:84% but it sounds like you're adventitious. 00:46:22.225 --> 00:46:23.365 align:middle line:90% Is that correct? 00:46:23.365 --> 00:46:24.490 align:middle line:90% I'm sorry? 00:46:24.490 --> 00:46:26.365 align:middle line:84% You went blind later in life, 00:46:26.365 --> 00:46:27.307 align:middle line:90% like you said, right? 00:46:27.307 --> 00:46:28.640 align:middle line:90% I'm low vision. 00:46:28.640 --> 00:46:30.620 align:middle line:90% Low vision, OK. 00:46:30.620 --> 00:46:33.650 align:middle line:84% I'm midway through my career. 00:46:33.650 --> 00:46:34.670 align:middle line:90% Midway. 00:46:34.670 --> 00:46:37.222 align:middle line:84% So there's people like you that are like total experts. 00:46:37.222 --> 00:46:38.430 align:middle line:90% They know what they're doing. 00:46:38.430 --> 00:46:39.862 align:middle line:84% They have professional experience. 00:46:39.862 --> 00:46:41.570 align:middle line:84% And then there's a lot of people on there 00:46:41.570 --> 00:46:43.580 align:middle line:90% that they're like, hey, I'm 15. 00:46:43.580 --> 00:46:44.540 align:middle line:90% I know nothing. 00:46:44.540 --> 00:46:45.920 align:middle line:84% I can barely turn my computer on, 00:46:45.920 --> 00:46:47.570 align:middle line:84% but I'm told I'm supposed to program. 00:46:47.570 --> 00:46:49.418 align:middle line:90% What do I do? 00:46:49.418 --> 00:46:50.960 align:middle line:84% And those people are fascinating too, 00:46:50.960 --> 00:46:55.740 align:middle line:84% because their problems are so different than other folks. 00:46:55.740 --> 00:46:57.740 align:middle line:84% It sort of is fascinating just listening to them 00:46:57.740 --> 00:47:01.250 align:middle line:90% talk or whatnot. 00:47:01.250 --> 00:47:05.330 align:middle line:84% Yes, and I imagine there will be more 00:47:05.330 --> 00:47:12.910 align:middle line:84% and more people like me as the industry ages as well. 00:47:12.910 --> 00:47:16.400 align:middle line:90% So that will be a-- 00:47:16.400 --> 00:47:18.710 align:middle line:84% hope we arrive at a consensus about how 00:47:18.710 --> 00:47:21.780 align:middle line:90% to tackle some of these issues. 00:47:21.780 --> 00:47:23.030 align:middle line:90% I hope so too. 00:47:23.030 --> 00:47:23.720 align:middle line:90% And I think so. 00:47:23.720 --> 00:47:25.310 align:middle line:84% I think actually there's progress. 00:47:25.310 --> 00:47:27.920 align:middle line:90% So I have some hope. 00:47:27.920 --> 00:47:30.777 align:middle line:84% Fingers crossed. 00:47:30.777 --> 00:47:32.110 align:middle line:90% Well, excellent. 00:47:32.110 --> 00:47:35.350 align:middle line:84% Sounds like we're at a good spot to wrap up. 00:47:35.350 --> 00:47:37.530 align:middle line:84% Thanks everybody, as always, for joining us today 00:47:37.530 --> 00:47:38.530 align:middle line:90% and taking the time out. 00:47:38.530 --> 00:47:41.695 align:middle line:84% Thanks especially to Julia for joining us and sharing 00:47:41.695 --> 00:47:43.547 align:middle line:90% this information. 00:47:43.547 --> 00:47:45.130 align:middle line:84% Thanks for having me. 00:47:45.130 --> 00:47:47.050 align:middle line:90% Appreciate it. 00:47:47.050 --> 00:47:48.527 align:middle line:90% Bye bye. 00:47:48.527 --> 00:47:49.360 align:middle line:90% [INTERPOSING VOICES] 00:47:49.360 --> 00:47:50.443 align:middle line:90% Thank you. 00:47:50.443 --> 00:47:51.940 align:middle line:90% Bye.