 Hello. You guys hear me? Very cool. All right. Come on. Look at that. Beautiful. OK. We're going to get started. So welcome to what is UX and why is it essential to open source? And I'm Cassidy James. You may know me from the elementary team. But I'm actually going to talk about something that's a little more universal and applies more broadly to the open source community. However, I hope it does also give you some insight into how we do think at elementary when we're designing our product. So first, a bit about me. I'm a co-founder of elementary, as in elementary OS. I'm also a front end web developer and UX designer at the Ubuntu computer manufacturer, System76. And I've studied UX informally for about the past 10 years and more formally for the past three. So let's talk about what is UX? We're going to cover what it is, why it's essential to open source, and how you can help ingrain it into your own products and projects. So first, how do we define UX? Let's look at some textbook definitions. This one's from Nielsen Norman Group, a popular UX and usability design firm. They say UX encompasses all aspects of the end user's interaction with the company, its services, and its products. Next, let's take a look at Matthew McGain. He's the founder of uxmastery.com. He says UX is the what, the when, the where, the why, the how someone uses a product, and in addition, who that person actually is. In my words, I call UX why someone loves, hates, or is indifferent to your product. So it's important to remember that every product has a UX, has a user experience. If you go to a grocery store and the person who's checking you out is just super rude, that's a really poor user experience. So when we say we care about UX, what we're really saying is we care about providing a positive user's experience. So what is UX not? UX often gets lumped into these other categories, and it might contain a bit of these things, but it's really not all or nothing. First, UX is not art. I like to define art as something that's created to evoke an emotion. For example, an artistic painting or photo is created to evoke an emotion in the viewer of that product. The composition, the subject, the lighting, they're all designed to make the viewer feel something. And a positive UX ideally does evoke a positive emotion in users, but that's not the whole of what UX is. It's not just art. A UX architect is not an artist. What they're doing is an art, and it may contain a bit of it, but that's not the whole. Next, UX is not veneer. So veneer is a thin layer of wood or finish that's added on to the end of a product. And its primary purpose is for looks. It's sometimes to make the surface smooth instead of rough. But veneer can't solve critical design flaws. If you design a crappy chair and then you hand it off to a UX person to put the veneer on, there's only so much they can do. That chair might be fundamentally flawed when you sit in it, it breaks. And veneer isn't going to fix that problem. But too often, products are designed in this way. They're designed and developed without a UX architect involved, and then that UX person is expected to fix all these problems by just slapping some pretty design on top. And this just doesn't work. Next, UX is not UI or user interface. UI is how an app or a product looks. It's the theme, the widget styles, the buttons, the text entries, the icons, everything you interact with. But UX starts much earlier than the UI. Going back to our textbook definition from Nielsen Norman, UI or UX encompasses all aspects of the end user's interaction with the company, its services, and its products. So it's not just the user interface of the product. It's the entire over-encompassing experience. A great example of this is a user that's trying to download a new app, a timer app. They might find one on the web or in an app store, and it looks gorgeous. And so they install it. And then when they go to use it, they're really impressed with the UI of the app. It looks really pretty. It has a certain sheen to it. It's nice and clean. But they realize it only counts up like a stopwatch. What they really wanted was something that would count down like an egg timer. The app looks great. Its UI is really good. But the user had a negative experience because it didn't solve the problem they were trying to solve. And the solution here isn't necessarily to just make the app do what that user expected. If it's designed to be a kick-ass stopwatch, it doesn't necessarily need to count down. The solution might be to make it more clear on the website or app store listing what it's actually designed to do. And ironically, by helping that user not download your app, you could actually be avoiding a negative user experience. Next, UX is not just usability or how easy something is to use. Usability absolutely is a part of UX, but it's not the whole. You can have something that's extremely straightforward and usable, but that is just ugly. My favorite example of this is Craigslist. It's very usable. It's well categorized. It has high contrast to the works. It's very usable. But the user experience is not always that great. If you list something and then your email inbox blows up with spam, that's a bad user experience. If you're looking to buy a couch and you're scrolling through and you find a couch but the layout of the page is kind of bland or ugly, that's also a bad user experience. It might be perfectly usable, but the user isn't having as good of an experience as they could be. And last, accessibility is, or UX is not accessibility. Accessibility is extremely important to UX and it is fairly well done in the open source world. And for the users who rely on these optimizations, like ease of use for impairments and low mobility, blindness, et cetera, the accessibility experience is definitely a huge part of their user experience, but it's, again, not the whole thing. So we've gone over textbook definitions and what UX is not, and that's ideally shed some light on what it is. But now let's take a look at what UX is and how it's approached in the real world in practice. First, let's take a look at the enterprise. Enterprise software, specifically. UX in the enterprise is lagging significantly behind other areas. I recently had someone who develops enterprise software for a living tell me his enterprise clients were not looking for a strong UX, they just wanted it to work. That just tells me that those clients need to be educated in what UX is. Another argument is that large companies can just pay billions of dollars to train every single employee that'll ever have to use their crappy software and that that's a good replacement for UX. Maybe they don't phrase it exactly like that, but that sort of mentality is prevalent. They think that training can supplant a good UX and it's really, really costing them. The Association for Talent Development recently did a study of over 340 diverse organizations of various sizes and found that on average, a company spends over $1,200 per employee on training. Now, that might not sound a lot for one employee, but if you took that $1,200 and multiplied it by the number of employees a company has and then spent that money on UX instead, you would end up with a much better product. Plus you'd have even lower training costs because you wouldn't have to replace people who quit due to the crappy software. Similarly, the IEEE found that 5% to 15% of enterprise projects are scrapped due to poor user experience. That's a huge wasted chunk of resources. That's 5% to 15% of all the work that you're doing. And basically it shows that UX and the enterprise is just seriously behind and it's costing companies a lot of money. Now let's take a look at kind of the other end of the spectrum, which is startup companies. Wildly successful startup companies think UX first. They care about the whole experience a user has from first hearing about a product to using it every day and then on through how that company will monetize it. Now this is particularly important to startups because their first goal is to gain adoption and fast. A critical point in a startup's life is how they monetize so that they can keep building cool stuff that the users like, but without sacrificing the UX that got those users there in the first place. And a successful startup will have built their business strategy into that user experience. If you just tack monetization on after the fact, it's gonna kill the user experience or they're gonna have to completely redesign, which as we saw in the enterprise slide, that that costs a lot of money. And the business strategy and how that affects the users is a large part of the startup's UX. Just as large is a user's experience interacting with the brand itself outside of the product, whether that's via social media, email, a support system, or even advertising. If a user loves a product but gets ignored or blown off by a support team, that's a net negative user experience, even if they like the product itself. If the company comes out with a distasteful or offensive advertisement, that's also a negative experience for the user. But if a user gets super fast and actually helpful response on social media or via email, that's hugely positive UX. And that affects how the person perceives the product as a whole. Next, let's take a look at a field probably most familiar to us here at a Linux Expo, which is open source. Contrary to what Brian Lunduk may tell you, open source is awesome. Anyone can take existing code, solve their own problem, and then give that back to the world, which is incredible. However, this can create a lot of UX problems. If an open source project is designed to scratch a particular person's itch, especially, say, a fairly technical user who understands open source and programming, that solution might not provide the best experience for other people, especially less technical people. And to counter this, often open source developers decide that they should let their users set up the tool for how it should best serve them. But the problem here is that the developer is just passing on the design process to the end user. It's forcing the user to make decisions that a designer should have worked out ahead of time. In addition, this is creating exponentially more complex testing processes, because you're increasing the combinations of configurations that can coexist, which just is a mess. And lastly, too often in open source, developers are building without a UX architect. So I'm gonna tell you a story about an architect. My wife and I are Airbnb hosts, in addition to our day jobs. So if you don't know what Airbnb is, it means we invite strangers into our home for exchange for some money and the promise that they won't murder us in our sleep. I recently had an awesome guest named Xander, who was an architect. He specialized in restoring or remodeling historical homes, keeping in mind the original designs and styles, but making them more livable for modern families. Now, the way he first explained it, I thought he was an interior designer. I thought he was brought in after a renovation was done to kind of decorate in the style of the original architecture. But he quickly corrected me, he was an architect. He was involved before the renovation ever began, and he played a key role in actually planning it out. He studied architecture styles from various eras and had some artistic ability, but his expertise was in listening to the clients and listening to their needs of the family, figuring out how to create a space that both served them, but also stayed true to that original style of building. Now, he wasn't a construction worker. He wasn't the one actually out there putting up the two by fours or laying flooring, and he wasn't an engineer. It wasn't his job to know exactly what technical specifications every material had or the finite details of how it would be built. However, he did deeply understand those people and he did work with people in those roles, which is part of what made him a great architect. In case you haven't figured it out, Xander is to historical renovations as UX designers are to products. UX designers not just a visual designer. Their job isn't to be brought in after the thing is built to make it look pretty. They should play a key role in actually planning the product. They should have studied various interfaces and techniques and, yes, likely have some artistic ability. But their expertise is in listening to the needs of the users and figuring out how to create a product that serves them and the product stakeholders. Now, they're not a developer who is actually creating the product. They're not the engineer making technology decisions, but they do deeply understand and work alongside those people. Now, imagine if someone in Xander's role didn't exist during one of those renovations. The family could draw up what they think they would like but they don't really have the technical knowledge or expertise to know if it's gonna work out or even if it'll fit into the historical style of their home. The construction workers would have to try to filter out the families asking them and telling them to do, which will probably change along the way while they're building the thing. And they have to try to turn that into a finished product. The engineer might be able to identify the right type of material to use and he might be able to ensure the final renovation is up to code. But without the architect and the blueprints, they're flying blind and making it up as they go. If they're lucky, they might end up with a livable space but it would end up being something that was not well designed and most likely they would end up redoing work they'd already done. It could have been avoided if they had an architect like Xander guiding them. So this is a problem that we face in software projects, open source or not every day. Insanely talented people with exceptional technical knowledge and ability are working together and we build workable products but too often there isn't an architect that's there drawing the blueprints up before the development begins and guiding the process as it is happening. This means we don't pay enough attention to things like platform guidelines and conventions. We don't listen to, study and work to understand the users and we end up spending a lot of time redoing things. This is why we need UX architects. That's why I like to use the term UX architect instead of designer. On that note, let's take a look at what UX should be. UX should be the why. It's not just the what or the surface but it's the reasoning behind the UI. Like an architect who designs buildings with a world of knowledge of that architecture type, technical limitations and the client's use in mind, a UX architect must think through how and why the user will use that product. And next, UX should be the strategy. A positive user experience goes all the way back to the goals and the stake, the goals of the product and the stakeholders. Whether that's a ragtag group of friends on the internet like a lot of open source projects or a large corporate funder. It's nearly impossible to create a positive user experience if the core goals of the product don't include key elements such as simplicity, usability and desire or delight. Next, UX should be pervasive. Those core goals of simplicity, usability and desire should permeate a project. Everyone involved, whether it's the UX architect, the developer, the engineer, a marketer or even a social media person, they must always be thinking of the user. That effort to create a positive user experience must be involved at every step. So to finally get back to the subtitle of this talk, why is UX essential to open source? Let's be honest, a huge reason is that it helps us compete with closed source software. Developing a positive user experience doesn't always cost a lot of money. In fact, as we saw earlier, it can help us save money in the long run. And oftentimes open source projects are severely underfunded and this is one way we can help combat that. In addition, open source development is more agile. If ideas are developed in the open, we can more quickly react to the changing landscape. And by keeping those UX findings and developments in the open, we can compete with closed source software by trading ideas to and from other community projects, other open source projects. You can actually see this in action in the Linux desktop world right now. Not only are projects like GNOME, KDE and elementary learning from what closed source projects are doing, we're actively learning and improving on ideas from each other. Next, UX helps us be accessible to all. A focused user experience can help lower the barrier to entry, especially for less tech-savvy users. This lets us create a cleaner user interface, which means simpler documentation, which means fewer translations, for example. And all of this helps get the product out of the way, even for more advanced users. A more streamlined product means less time fiddling with the product and more time actually getting things done. Similarly, UX is essential to open source because it can vastly improve your code base. That focused user experience means there's actually less UI to develop, which in turn means there's less code to maintain. And we actually see this all the time in elementary. A lot of times we look to find ways we can get rid of code by making the UX better, by streamlining the UX. And this also means there's less to break along the way. Fewer combinations of configurations mean fewer variables to test against, which in turn help you develop more code faster and better code faster. And lastly, this helps you implement the actual, actually spend time implementing the features that you want and that you care about rather than just working on maintaining existing code. So we've answered, what is UX? We covered the textbook definitions, my definition, what it's not, how it looks in practice, why we should call UX people architects, remember Zander, what UX should be and why it's essential to open source. And we could stop here, but I feel like there's one more essential piece to the puzzle specifically for open source. And that's how to ingrain UX into your open source project. The most effective way is to ensure that there are UX architects at the leadership level of the project. Their job is to ensure that the focus on the positive user experience is pervasive. With the UX architect as a major stakeholder in a project, you'll have jumped one of the biggest hurdles in creating a positive UX, which is getting the stakeholders on board. And this is something we've seen a lot of, a lot of success with both inside and outside of open source. In open source, you have major projects like elementary OS and Nome who have designers very high up and within the projects, ensuring that the team is constantly thinking about the users and their experience. Then you have companies like Google who recently did a 180 by elevating the designers within the organization and developing a whole new design language with a huge focus on a positive user experience. And Apple, I believe they're still the most profitable company in the world right now. They have designers at the very, very top who help shape the entire product line and user experience. This is how you ingrain UX into a project. You ensure that there are UX architects at the leadership level. You can also hire on a UX firm or UX architects as early as possible. Remember Xander, the architect. You need someone there who is looking at the process from the beginning and helping design the whole experience. And paying that person if you can afford it in an open source project is just as important as paying a developer if you can afford that. They'll play a huge role in determining the success or failure of your product. Here's another easy one. Treat UX issues as critical bugs. A poor user experience is just as critical as a segfault in your application. Both leave a nasty taste in the user's mouth and they make it more likely that they'll go look for some other alternative. Daniel Foray, the lead UX designer of elementary likes to say that if a feature is too hard to use, then the feature is broken or doesn't exist at all to the user. So you need to treat these UX bugs as critical issues but they also need thorough solutions, not just ugly hacks or workarounds. Never fix a UX bug through documentation or a message telling the user how to do it the right way. Ideally, make it so that the user can't accidentally do it the wrong way. Next, a very effective way to ingrain UX into an open source project is by always thinking UX first. Start with the user's experience and then work backwards to the technical solution. Don't start by trying some new technology and then trying to figure out a reason to use that technology. That's like creating a solution and then trying to come up with a problem. And really this one's a common theme, a central tenet of all the previous points. Always be thinking UX first, not technology first. Lastly and similarly to the previous point, remember to continue to perform UX tasks as your product evolves. It's not just a one time consideration to do at the beginning, you must always be designing. If you're implementing a new feature, test that feature, always get user feedback. It's incredibly valuable. And users won't always have the right solutions. Oftentimes they'll tell you how they think it should be designed. But your task as a UX person is to figure out why they should think, why they think it should be designed that way and to design a solution that will work for most users. So to recap, what is UX? I like to say it's why someone loves, hates or is indifferent to your product. And why is it essential to open source? It helps us compete with closed source software. It helps us be accessible to all and it can really help improve your code base. And lastly, how do you ingrain it into an open source project? By getting UX people in leadership, hiring UX people early, treating UX issues as critical bugs, thinking UX first and continuing to perform UX tasks throughout the lifetime of your product. Thank you. So I don't have a real formatted question and answer, but if anybody has any questions or thoughts I want to share, we have a few minutes to go over that. Yeah. So I have both formal and informal training in UX and how do I differentiate between the two? I would say the informal training is just Googling it, teaching myself a lot. I mean, how a lot of developers start developing, I believe. It's just, you know, I found that niche and was really interested in that. The more formal training is actually, I studied human-computer interaction and computer science in college, and then I actually worked for a UX design firm as well. And now my current position is a front-end web developer and UX designer at System76. So more formally and more official role and also studying it in school. Right. Yeah. They don't have certifications. Some, a lot more universities and colleges offer programs specializing in that. It's weird. Sometimes you'll find it under the avionics or aviation courses because that's kind of the origin of UX was designing airplane interfaces. So sometimes they'll have weird certifications related to aviation that actually are UX or human-computer interaction. I'm sorry. I'm trying to understand. Mm-hmm. Yeah. Right. So ideally, yeah. So a company will have requirements of what they think it should, what they think the product should accomplish for the company. But it's really important to distinguish between what the company wants to accomplish for themselves and the requirements of how a user, what it accomplishes for the user themselves. So they are related and they should take those into account for UX designer. But UX designers' role is really to figure out the user's side of view. So it's how that makes the user feel what the user can accomplish with the product itself. You know what else? Yes. In the back. Like a more specific example. Yeah. I'm trying to think of something specific. So one example, this is actually for System76 working on the new website that we designed about a year ago. We started, we wanted to make it really easy to configure a very complex laptop or desktop system on a cell phone. So our whole entire website is UX first, or is mobile first. And scales up to the appropriate sizes on a desktop. So instead of just kind of using the existing system that was there and then testing what we thought would be good and just going with that and if sales were down we'd improve it, which is kind of the workflow a lot of companies have. We actually took a lot of time, stepped aside and drew paper prototypes of how we felt the user should step through the process. So we figured out, okay, what are the most important things the users cared about and it's the processor, the RAM, the different pieces of the computer. Separated those out into different groups and figured out how a user would kind of work through that process. We took those paper prototypes and we tested them, both inside and outside of the company. So it had different people come over and say, imagine this is on your phone, it's a piece of paper but imagine it's on your phone. How would you step through this? And that was actually really effective. There were some problems like, on a desktop we felt that scrolling a lot was a pretty standard thing that we expected to do on the web, but people expected to be able to swipe left or right on the mobile device, and so that affected our design input before the product was built. And we've made tweaks as we go then, as we see users are running into a specific problem like, they weren't sure how many steps there were in the configuration process, so we added some little dots at the bottom of the page that show how many steps there are. So it's kind of examples of both always improving the product, always reviewing it, and always also just starting with the user experience, not necessarily starting with the technology. We ended up using some JavaScript library that handled the touch events, but we didn't start with that JavaScript library and say, alright, how do we make this work for our product? We said, start with the UX and figure out what JavaScript library we need. Any other questions? Alright, well thank you all for coming. Check, check. Number nine. Okay, it would hold it while you're typing, it's all. Yep, you're good. Check, check. Okay. And number five. Yeah. Well, I'd say plug it in. Oh no, if you plug it in, it turns off the audio. Yeah, you can speak on a loudspeaker. I really want to move on to something better. Because otherwise, if I just had a straight patch or had a disk on both ends, I'd just plug it into a portable speaker and it would give better sound. Well, this is on the wrong patch. See, this is a tied part of this video game. So it's probably a new question. I guess if you're doing it with a mixer, then I could run it from the thousands and have all your friends on the computer. Send, send, send. Either that or the audio. Well, the VGA is likely to carry your audio signal. No, it's not. But then they open it in this and type it in. Yeah, so this cable could have your audio. So I think the audio is just coming from your mic. Yeah, I don't think there's an easy way to mix it with your audio. Unless you have a speaker off your... Well, I have an external speaker that's going to use and I can kind of stand past or that I was going to use when it would have a disk on both ends. Oh, wow. Yeah, the handheld. Well, let me see if we can do both. Does this work? That works, right? Okay, hang on. I'd rather have better, but anyway, if we can't find a cord, I might have to do this. Semi-colon, semi-colon. Okay, I'll have to lay it like that. Yeah, lay it like that. You have to use one or the other, right? Well, try both of them. They both work great, you know. Let's see, where's the switch for that? Oh, just push it down. Hello, party. Okay, let's see if the other one works. Semi-colon, semi-colon. I can turn the volume up on that sound card a little bit. Oh, do I have to slow down even more? I might have to. I can do that. Yeah, okay, thanks. We'll get started here soon. Now, that's fast. I can slow this down like, the wrong way. Does that sound still sound too fast for you? Left bracket roots up clean up, didn't the right bracket... This is a root prompt, I'm just kind of erring. Left bracket roots up clean up, didn't the right bracket... Alright, we... I can slow down a little more if I need to. But anyway, I guess we'll get started then. Let me get my notes here. I'm using a Braille display to kind of keep track of my notes. So, I kind of... what I'm doing here. I'm going to get both of them placed. My phone turned down on me. Anyway, to start as an introduction, I want to get these notes going. I'm just trying to make people aware of what we have. About four or five people. Just kind of get an idea. Okay. Yeah, we're getting there. I'm just wanting to... There we go. My phone timed outside. I had to find my notes again. But anyway, now we're good. Yeah, okay. Well, you just have to adjust this, don't I? Okay. Now, I had to use a portable microphone, unfortunately, like this. Now, I'll slow the speech down a little bit. Then I can start getting into it and discussing it a bit more. Okay, we'll try that. Don't give me very long wires to work with all. Anyway, I wanted to bring up the idea here that the question being not can-blind people use a Linux machine, but I want the assumption to be that we do. And so, the one I wanted to demonstrate today is that I wanted to show you and so the one I wanted to demonstrate today is to move on and say, here are the different some solutions that we'll use, that we'll use, to make a Linux accessible. So, basically, what I wanted to start with is what you really have is a need for getting the output from a Linux machine in a form that we can hear it or see it so a blind person can either use some kind of spoken output or somebody with low vision might see a bigger screen and so, you can get bigger monitors or you can use magnifiers or some applications that will magnify the type. You might even see them or on some desktop you can bump the font size of however big you want. And then as far as input is concerned, the things we really want to be concerned and what we really want to be able to do accurately is be able to provide a method of input that you can use. So, for us, it's most likely a keyboard that you don't like text input or even selecting icons, you know, the pick list or whatever. The one thing that does not work well, just keep moving down, the one thing that does not work well for blind people using it is a mouse. That's something I would discourage the most. So many application developers will develop stuff for websites where you pretty much have to use a mouse in order to work the thing. And that's probably one thing that really messes us up and so the things I will demonstrate today really use keyboard as input and for me, they provide spoken output. I don't have any low vision aids up here. I don't have low vision myself but there are products that do that. There's three systems that I am familiar with and will discuss in order. Probably in the chronological order in which they came into existence. And the first being Emacspeak. Are most of you familiar with Emacs in here? Yeah, I've learned some people still using it. I really wondered you know Now Emacspeak was developed a fellow named TV Rahman was a blind computer scientist at Cornell University and he developed a thing with Emacs where he would modify each of the applications. You know, he had the various extensions that run in Emacs, the various modes. And he modified them to push spoken output for various relevant things. So like you I was trying to see my list here of the variable nodes that we do. Sorry, there's a junk in my heading notes that's messing me up a little bit. Kind of slowing me down unfortunately. Okay, I know where I'm at. And I guess what I'll do is I'll demonstrate some things in Emacs and that's where I was setting up when I first came in here. So hopefully this will be close enough for that speaker. Beginning up, Arthur. That's still audible enough for you? I can move it that way. Semicolon, Semicolon, if you want to create a file comma, visit that file with Emacs. Now when I'm doing that right now I'm just in that scratch buffer. So I could even type some stuff in here. Just to start with like editing a file. So if I you know I'm just typing here. I have this set up where it speaks each word I type. So like in this type we are now I can just press up there and hear that line of text. And I can use the regular Emacs keys you know the holding down the Alt key or the Meta key and then pressing F or going forward where I go back. Now the other thing I want to show is one thing we do here. That's what's beginning of the line. But I'll go down here and I'll type in on the end a little bit. Now when I press up arrow to hear this line you'll notice something here that'll say something in front of it. Okay, that was because of the capital letter. I wasn't supposed to tell me it was indented. Okay, now I'll just read the line. Somebody's didn't indent for me. Okay, so if I indented it'll tell me how much it was indented by. See how that works. Now primarily what I can show you here there are some extra aspects but I would have to tune up Emacs speak some more to it'll do syntax highlighting or use funny voice sounds, difference in voices to try to show you what's in quotes and all. At one point I finally suspended using that because it was too sing-songy for me. And now I got to figure out how to turn it back on in order to demo it and so I didn't make that today. But I think another thing I'd like to show you is diarid. Now remember that that's the directory viewer in Emacs. So for me I can do CTRL X followed by D Okay, and then if I just hit enter for that current directory, my home directory. Now when you press down the arrow key if I was just using a conventional screen reader to read this whole line I mean it would read the dash dash dash well in fact if I do it here I'll just speak up and do this other. It would be something like There's too much stuff. Can I understand? So if I go down arrow it just gives you the file name. It doesn't read all the sorry that long file name that people will listen to. But in our ways unfortunately good enough homework to review but our commands we can use to go back and tell me what the date this file was written without having to monkey around with it. Now I could use, I can cheat and use my screen reader speak up which I'll show you a little later I could go back like this and that's the size of the file and that's the and I can spell letter by letter so February 7th but the one thing and I like diorite in Emacs its ability to bash under a logout. Do you want to erase that file? See this is dot bash RC Now that's a directory I think Now it goes a higher pitch like that that's because it's capital letters and that's a directory I can it'll make some audio icon to use that means it opened a folder so now I'm in here where I can close that down and close that up so part of that is just using the normal commands you would use in diorite but with Emacs speak they've customized it enough to where it'll speak only the things that are relevant at the time and there are other hotkeys that I could use that would speak specific parts of a file or let's see now I can try to think of some files I can erase I know what I'll do I'll just find something here in that bits folder I'm taking a slight deep departure from Emacs for mode I just want to create a couple of files and demonstrate deleting them okay so I'll just create some like dv-tase p-r-d-s stefan-tling-lap-dilder-sach-lid-stoller o-u-s-h-tase e-e-s-d-1 stefan-tling-lap-dilder-sach-lid-stefan-tling-lap-dilder-sach-lid-stoller o-u-s-h-tase d-e-s-d-2 o-u-s-h-tase back to Emacs now if I go into this bit directory again if I find fire those test folders setting cd file got Bernie check I've got two directives. Director reverse change. Bid membership certified. Underscored e-cop. Code added. Underscored pay. Members 2. CSB. Members. CSB. Loads. PayPal hyphen. Robram. Robram. Underscored 2000. No. Rob. PayPal hyphen. Code. DxD. Loads. Members. Members 2. CSB. Code added. Bid I, P-R-T-S. Hold on created those files. Why weren't they there. Dyshis-kid-stoller. Auto. Left. Dyshis-kid-stoller. Okay. I should have been there. That's not. I don't like it when demos don't go where I want. Dyshis-tob disk semi-colon type. Geed, update, tired. Oh. I have to do that. Oh. Oh. It renamed on disk, so I have to... Payments.dxd. Code added. Code added. Code added. Code added. Code added. Code added. I've got to learn more about how to do direct it, because I forgot if you had the refresh of the directory. I'll never mind that. I've got to move on. I also want to keep this from timing out once it's dead. The other thing I'll show is calendar, and it's a little more interesting, but. Now, this is where if I had enhanced voicing on it, it would do a little more with the calendar, but seeing how it here, if you were just using a conventional screen reader to read the screen, it would be really hard to navigate calendar. I can use the arrow keys to move around, so I'm just pressing arrow, you know, left arrow. Then go up by the week, and they have, you know, the usual calendar commands you can move around to the other weeks, you know, months of the year and stuff. Another one of the favorites that I think has been worded nice and it works well is let's say I want to go to a date later in the year. So if I want to go to, let's say, July 26th, I can go, you know, GD, see it's got the right year, so I'll just hit enter on it. Okay. See it took me right there. And there's more I can do with calendar, in fact, if I, and I can go back to today's date. Marking time before. Took it right back today. And if I, I marked something in this entry, I should have a, let's see, D. Okay, that puts it in another window, so if I, no, see, I put that in as an diary entry for today. So how we can do that back there, the additional things I might say about Emacs speak, just as other, there are other applications, as you know, very many, I don't have them currently running here on this machine, but I've, I have used before VM, you know, for mail, direct, I mean, I mean, Geno's, GNUS, the news reader, I like, I almost liked it better for email. And again, those are very well designed for speech, and what we call them sometimes is when this individual, when he develops these enabled apps, you call them speech enabling. So they take the, let's say the VM app for a mailer, he'll say Emacs speak-vm, and then I forget exactly how it's done, but if you launch VM, I think it looks first for Emacs dash, or Emacs speak-vm, and so it launches the speech enabled app. And I think what it might do rather than go right into the next little deal is maybe you see anybody have any questions about Emacs, or there's Emacs speak, and how that might work, any questions about it? Yeah, he's still, it's pretty much a one man operation, but yeah, he still adds stuff, he's got, and there's a lot of things I haven't messed with yet, really, because I've used different platforms in terms of doing things on the Mac or whatever in iOS and all that. He's been enabling a bunch of stuff to deal with, like with Google, the Google framework and all, and so when Emacs eventually do see about, I think he's got some Google Docs integration, which would be really interesting to try there in Emacs, and there's a way you can integrate Google Calendar with this Emacs calendar, I tried it several years ago and I ran into a bunch of performance problems and gave up, but that might even work better today, I'll have to try it again. So I've tended to use Emacs for specific things, mainly editing, and probably not taking advantage, as much advantage of Emacs speak as one can, and some people practically live by it, and that's their only solution. I just find, I tend to use different solutions for different things, and so I may not utilize some of them fully. I'm sorry, what? I have, yeah, because it does really well, especially like with the indentation, I should probably pull up a, oh, there's a pearl or something somewhere here. You'll hear the indentation of the pearl code, like when you go down through your statements, oh, see, if I have something that might help there. There's my director again. I was just doing a controller, I don't jump into the, yeah, we're buffers, you know how it starts speaking each one, so you knew which buffer you were in. Let's see, I'm going to... XR-XR-RW, XR-XR-XR-X1, steep steep, 397, 1011, 2010 pearl. And I just left arrow once to get out of that selection, that search highlight. Pg1.pl. Oh, I thought I had a, well, I could use that one. Okay, there was a pod catcher thing I worked on a long time ago, I'll just view the file. So the pound was thing, pound of course, that's the comment field. So I'm just skipping past these internet, oh, these comments, I want to get to... So you know, these aren't indented yet. And if I move down faster, it interrupts, that's why I heard someone skipping because I was interrupting. I'm just trying to get through this a little quicker. So you use those variables. Oh, these variable definitions. Oh, come on, I thought there was some indented if statements were thought of. Okay, so now we got left brace. So I know the next stuff should be indented. You can see all the punctuation being spoken there, that probably dragged you in, and that's where sometimes I prefer using a Braille display with some of that stuff because then I don't have to listen through it, or I speed that up anyway. See, I've indented more. So yeah, I can do programming in this, and then of course, when you say, I go to another console or whatever, and either run it or whatever. Yeah, that feature's available, and I'm sorry that I didn't have a chance this weekend. I was trying to prepare some of this. I didn't get a chance to figure out how to remember to re-enable that because that's where it would change voice pitches and do things. For example, if you had stuff inside of quotes and everything, you know, ecosystem, that, that, you know, like, oh please, I got to where I couldn't stand it, so I turned it off. But I know that highlighting is handy, and he tries his best, and I think it depends on the synthesizer that you use. I'm using something called eSpeak. It has kind of a robotic sound to it. I know some of the people who affect TV Rom, and I think he uses an older outdated version of a synthesizer that I think may work better with that syntax highlighting, but I don't like installing old 32-bit code that's unsupported, so I don't use it. But there is some audio vers-, audio ability to do that, and certain audio sounds will be made like if there was a, and I'm sorry that I can't demonstrate that very well right now, but, well, it's a whole different world. I mean, JAWS is a Windows screen reader, so you're working in Windows, and it's basically a screener. I would be more apt to compare it with something we'll talk about later. I hope I still have time. I want to see what time it was, and I was going to look at my phone, and then the thing timed out. There are a couple of things I can do here to get on, but I see we're running out of time. The quarter of that is 2.10, or 2.15. Well, let's see. I mean, if you're going to an hour, isn't somebody using this room at 2.30? Yeah, so I got to, yeah, that's why I got to move. So, let's see what time it is. I don't know what time it is. Let's see. Yeah, so I got to, yeah, that's why I got to move. So, EMAC is interesting, and there are different things to show there, and I think it was a little more difficult time configuring things and getting it going, and I apologize. The next thing that occurred, I want to move on to speak up then. This is a kernel patch that was made. A fellow named Kirk Reiser up in the University of Toronto, or London, Ontario, somewhere, developed originally, and I think there's a team of people who worked with them on it. They'll speak up, but it's basically a patch to the kernel that would intercept any output that would be sent to the screen and have it spoken. And so that's what I was using a bit over here in these consoles, plus it has a review function and everything, but it's a kernel patch. It is now in the staging kernels. I think it's still staging. So it's available in the mainstream kernel, and so if you get, like, an Arch Linux disk, or Ubuntu or something, if they haven't modified the kernel any, then the speak up is there and you've just got to load the right modules for it. So what I'll do there, and I'm here now, so I'm going to demonstrate some simple things to start with, where I'll just enter a command and it'll speak the output. Okay, I'm going to go back to this other... Oh, well, I could go here. So if I wanted to list this directory, of course it would be like this. Yeah, that's nice. There you go. Now, if that's too fast, I can slow it down some. Is that fast enough? Is that slow enough for people or do they... Now I'm going to go in and review that, what I just heard, because all that was a bunch of, you know, it was a directory listing, a long listing. So I can use arrow keys to review this part of the screen. It's another aspect I'll demonstrate. It's the reviewing of it. So I can hold down the caps lock key, the insert key, and I can go up a line. Or if I want to hear just here the file names, I just go to the right end of the line. Okay, there's that test two file I was trying to find. And see, if I go up arrow, like up, you know, another line, or in this review file, I'm just reviewing, and I understand it doesn't show any kind of visual cursor when I do this. So I just press that key here to speak the current word I'm under and that's why I interrupted the other stuff. How long does it take to hear this? You see, so now I can go on up the list there, and I won't... Now, if I want to delete test one, of course, you know, you won't get any kind of... Well, I can do it with and without a prompt. If I say I'll delete test one, I just do RM. See, no prompt or no warning because I didn't put any parameters on. Now, if I do RM... Test two. See, prompt again. You either heard the question, I don't have to repeat it, or at least I understood it. Did anybody understand that prompt? Okay. And I'll just type, you know, why? Okay, those files are gone. And I'm going to change the directory. See, it speaks to read the prompt to you. Now, there's some things where we can do highlight, highlight tracking. That's what I was starting to do earlier when I was messing with the ulsemixer. So if I go, I'll do that as root, but if I go into ulsemixer... S-A-M-I-X-E-R Ulsemixer B1.1.0 can't coordinate. And I'll just interrupt speech. I'll just quiet it. Let's see, I think I put highlight tracking on. Damn it. Left bracket root, up, dildo, right. Left bracket root, up, dildo, right. Ulsemixer B1.1.0. 28, 73, 85, less, greater, 85, 100, less, greater, 100, 100. Okay, it's a pretty tattery screen, but if I go over here, I think there's an earphone volume. There, highlight tracking, and I should have the... Steve, up, dildo, dollar. Oh, I thought it... Straighter, 83, 100, less, greater, 100, 100, less, great. Oh, and this app is a little noisy. It's probably not a good one. That's not a very good example. I thought that would work. The one that does was with that Wi-Fi. The Wi-Fi doesn't make you... I'll do highlight tracking again. Less, okay, greater, less, cancel, greater. Less, okay, greater, less, okay, greater. Less, okay, greater, less, cancel, greater. What happened here? I should have had a list of other stuff. Now, I can also go up and just release some of the other stuff. Okay. Okay. Now, I can also go up and just review that list, to see if it populated. Sometimes I don't think it populates. Left number, right, I'll tell you. Let me just review that. I've got stuff there. It must be Speak up the thing was speak up. There's about as close as things you might when you're asking about JAWS or something Although I don't consider the text console. I think more of this is like the DOS screen readers. We had a vote like Vocalize or I think JAWS had a Think to add a version for DOS also The JAWS is well known for those that aren't maybe totally from our screen readers Freedom scientific has done gone out of their way to make them the biggest hitter in the game and I don't necessarily think they're the best screen reader, but they seem to Twist a lot of market share and you know Then when the question will speak up It's a little more. I think just straightforward and it displays what's on the kernel and you can have some input for reviewing the only thing I might comment on that's that Some people have been doing a lot of debate lately about any further development speak up because frankly a lot hasn't been going on but If you want to do more advanced things like Selected parts of the screen to be spoken and this kind of thing Might be a lot easier to write a user space screen reader or user space screen or running it as an application and foreground instead of a kernel And so that that area has been discussed and there I guess there's a couple screen readers out there They've been developed to run in the foreground like that. I'm not sure how much Work is being done on them. I don't I've never tried them But that would probably give hands a little more Flexible output on the console for example might there be any questions on this if not all move to the GNOME part which is probably more interesting to some folks I guess hearing none I'm gonna move on to the third one. Okay. Why don't I have any speech now? This is not what I wanted Is anything showing on the screen for you guys? Ever since they went to a GNOME shell. I think things are yeah, I have to get into one of these other I tend to like to go here. I even customize or adjust the GNOME shell option so I can have a written old-fashioned desktop again You know, this is Orca the screen reader that was Originally, I'm sure where it's exact beginnings were but Sun Microsystems had an accessibility office and they were doing a lot of development after Oracle bought Sun out then they can to most of the people who worked in the accessibility office there and so that Almost we were afraid it was gonna wreck this project But if not the people who kind of took on the lead development in fact Is Joan Marie Diggs a woman that used to teach accessibility software at the Carroll Institute of blind in Boston took upon herself learn Python and I mean here's somebody that was a trainer or teacher before I don't think she ever programmed to my knowledge in her life and This started back about Shortly around the time of that acquisition. She might have been working a little bit with Willie Walker before he left, but there's probably like 2009 maybe I'm trying to forget when the Oracle about Sun but From that point on she's taken on a lot of the lead development of Orca and the changes and fixing bugs and things and it's gotten far enough in the show the attestament of Python I guess because Orca is written in Python mostly and it She's actually figured out how to I mean Access all these low-level exposures that from Firefox for example, I've had a lot of bugs in Firefox that affect What is exposed to the screen reader and you know, she's actually been digging into this heavy metal stuff. That's pretty amazing So anyway the background of it, but right now I'm sitting at the In a typical nod-less window or if you're on a Mac would have been a finder window But now again, it's right now. I'm just basically using the arrow keys And this would be like if you were like somebody mentioned jobs earlier It'd be like if you're in windows in the windows Explorer and using the arrow keys to move around in You know using jobs. So if I move down using down arrow here, I'll go through this What's the matter we're missing something. Oh, it's not at all Oh I don't have a shows on my laptop in front of me or not. I'm totally oblivious something with the wealth Wow, I'm sorry Okay, what did you do Oh Yeah, sometimes you get in there's one thing there's something called overview window Like I just shows up sometimes and I lose speech sometimes in there I'm not seeing a Thing to say mirror We may be I thought it was gonna do something with that function f2 or something, but that's not Yeah So you guys Okay Well, thank you for pointing it out to me I'm gonna go into the orca settings because I can slow down speech and that'll be one of the things that I was trying to show is Dialogs, so, you know, you know my windows dialogues and things so to Now this is hopefully get to speech right away You know people slow it down, but you see right now we're in a tab It's a tab one of eight and it's a screen reader preferences and that's probably what I want It's either voice or speech. I think it's speech See if we're both radio button one or two They have to go to voice these are nothing to a speech rate. Let me go back There we are Right now it's 80. I got 80. I think it's a range like 80 zero to 100 or something Okay So now if I go back here, and I'm still in this dialogue, so I'm just pressing tabs So so far and these you don't have to do any like special keys or keystrokes like you did in emacs or wherever You know, I don't really have to do that much screen reviewing so you can hear all that It tells you the status of the state of a checkbox. I'm just gonna close it I don't need to go for all the other tabs and stuff in there Although I just show you that like here See tab two of eight because there's a tab control. It's like in windows. They would have called our tab control anyway It's gonna configuring braille displays and stuff So these are different options for orca, we're gonna tell it how to pronounce stuff or to use punctuation or high punctuation Whatever and that has to do with some color. So if you go in there turn certain things on a little speak and tell you what Think that's what it does in there. It again with speech Sometimes it gets too verbose if it starts telling you the color of every little thing on there But you could turn it on if you're trying to Verify some stuff you're doing like in a document or something. Okay, what happened here now? How can I tab? Oh, I don't key Let's press the right key I think if I press control tab Soon I left it there with a lower speed trait, but sorry Oh Yeah, someone's files along I'm gonna see what the I'm trying to find a directory I could go into that. Well, use this file to open. Let's see I Can interrupt speeches like the other because I sure hear but it does describe the file on stuff to you so that The Okay, that's an ODF document or off open-office document so I can show another app in there So I should be able to hit enter on this key in it on this file. They should open open office for me or we rough as doc Or writer I should say taking its time though I've actually been having some problems with LibreOffice sometimes locking up when I've tried to open certain spreadsheets And I hope that's not happening with this writer doc Okay, it looks like we're good No What's going on here? See I'm just arrowing down this and Looks like it's fed up on me too. I guess man the rate must be set in per application I didn't think it was let me slow speech down on that one if I can I There where should be So why did it go for some reasons LibreOffice making it go faster? I'm unless I've got a Thing set in there. Let's see. I can go into the application specific settings Just stuff like this. That's what makes me lose a lot of time I just think I just insert control space I Don't I can arrow around in this thing too, kind of like the other editors and things. Okay, I didn't do much in this document, I thought I had more stuff in it. I can press control Q to get out of it. You can see here at the input we're using a lot of keystrokes. I don't use a mouse, I don't use this touchpad on here ever. And probably if I want to get into Firefox, because that's where I think probably more interesting of the web, you know, Windows anyway or GNOME, but I'll, and I have a shortcut key on the machine that wants Firefox. Okay, I don't know a blog I have that I haven't done much with for ever. I'm going to go to a site that I'm familiar with. I'll just go by hand. So again, I haven't set to speak on words, so as soon as I hit a character, then it, you know, and what I'm going to do, I'm going to go to this website. I want to use this because I want to demonstrate tables and how they've done. They've done a pretty good job with some bus routes, so I've got to find the combo boxes to get to the Facebook. Oh, and the other thing, now, and I should explain a little bit if I can quickly, you can use the arrow keys to move around the page and it will say if it's a link or not. You'll see YouTube and then link. Now these seem to be on one link per line or something. See now, like here, it said submit query push button. If I press tab, submit query push button, that's a push button, but if I go back, it said entry in a focus mode. That means I'm now in an edit field where I can type, because before this, okay, now it says browse mode and here I can do things like one letter navigation will jump you around the page. So if I want to go to a heading, I can type the letter H. So that's another heading, and it gives you the heading level numbers on it, because you can have up to six heading levels. See, it went to heading level three. So I'm going to go back to this trip planner. I hope I have time still, let's see, another, oh, run it over already. Is somebody out there waiting to come in here? Oh, really, nobody's using this room now? Okay. Good, well, I'll take a little time, unless you all want to do something else. I want to try and show a table here, so let's almost see if I can get there quickly enough. So I'm just pressing tab here, go through these and there's combo boxes in the someplace where I was able to just say go to the routes. Okay, enough of that. Oh, that's a lookup stop numbers. I'm trying to remember how I got into those tables. They want to make you use this trip planner thing, we have to put in everything and I just want to look up a bus table. Oh, and another thing I can jump from link to link by pressing K and shift K. I'm way beyond anything I want, so I can shift K. Link, Google transit, transportation. I'm just going from link to link to link. You can also go to like combo boxes, so if I type the letters C, I believe. Oh, maybe this is it, let's see. Oh, it's time. I thought it was type. Okay, I want focus mode, so I can arrow down to this thing. I thought I remembered how to do this, get into those tables directly. I have to find something else, but the thing we're doing table is what I wanted to demonstrate, and I'm sorry I can't right now, that wasting everybody's time, is that you then have arrow navigate. You can use, you hold down like the shift in case of Oracle, you hold down the shift and alt keys, and then you can use the arrow keys and you'll navigate around in the side of a table, and you can hear the rows and columns, and if the headers are properly marked, you'll even hear the heading of each column as you go by. That's why I wanted to demonstrate that, but I'm not finding it very easy when I get there. No more tables. Okay, so I've got tables here. So you don't want to force them to enter in times and dates, and then they can tell you a root. I didn't want that. That's what I was hoping for. Select root type. Focus mode. It won't work. It's not working. What's that? Yeah, I love that what Hans told me about that one. I use it. No, I've used this website and I demonstrated, I did this the other day, and that's why it's making me so mad that I can't. Huh? No, I'm thinking about that. The thing was before I would say you could choose a type like trains or trains or bus or local buses and that, and that's what I can't seem to find. And once it did that, and I don't think it was, this was a full trip planner, but I was trying to not get into that trip planner thing. I can't seem to find any other way to get there. With it. Click here. If you do not know your top right double angle bracket link. I have to stop ID. I don't want to get next right. Push button. Stop. Hush. Entry. Focus on button. Browse. Maybe that one. Please wait. Finished loading. Valimetro trip plan. No more combo boxes. Please. Newfound Media Center. Link. Employment. Yeah, I'll start to find it. Let's see. Newfound Media Center. Employment. Event. Caller. Link. Transportation. Link. Plan your trip. Link. Link. System map. Link. Root schedules and maps. Link. Maybe that one. Loading. Please wait. Document frame. Finished loading. Valimetro bus route. No boxes. Dammit. Thank you for combo boxes. Twitter. YouTube. Link. Root schedules and maps heading left from the menu on the left to see schedules and maps for Valimetro rail. Valimetro. Link bus service. Local and express bus service. Neighborhood circulators and rural. Dips about schedules heading level three. No, no, no. Home. Purchase L1. Root and express service. Local limited top service. Link. Bus routes. Link. Loading. Please wait. I thought there was a combo box for those. Finished loading. Valimetro. Local bus routes. About Valimetro. Bus routes heading level one. So you're now in type H. It took me right to the bus route cycle for all the other noise. Electroot heading level two. Yeah. Clip heading to sort my column route hash column header. Root name schedule column header. Oh, okay. I'm in a table. Okay. So that's not working like I wanted it to. One, three, one, two, seven, eight, 10, 12, 13, 15, 16, 17, 19, 20, 30, 30, 40, 40, 50, 50, 50, 60, 60, 60, 60, 70, 70, 80, 80, 90, 90, 80, 70, 75, 72, 70, 72. Link. Okay. Now we can look at the limited bus service for Sunday there, because I'll probably look at today's thing. So once it loads the 75, 72, 72. Link. No PDF. Oh God, no. I hope not. No. Okay. I want to view it. Not PDF. Yeah. That looks what I want. Now you'll notice across the top here, and I'm using the table navigation keys. So hold down the left with orca anyway, hold down the shift and alt keys. And then I use arrow keys. You're going to keep hearing stop numbers so and so. It's kind of annoying, but that's part of the heading. Rural and Ray. Another reason I like to speed the stuff up. Okay. That's near where my home is, my permanent home anyway, when I've got back home. So let's say I'm at rural and Southern. I want to go down. I can read the times for that day, or I think it's today's schedule. And I'll just press down arrow. So it tells you the row column numbers. Now if I just hear the time and I don't want to hear the row and column number, I can just interrupt it. Okay. 31 looks like a half hourly schedule on Sunday. It's pretty remarkable, I think, for public transit these days on a Sunday. But let's say now I want to go up the street, then I can press right arrow off that from this time point to Tempe Transit Center. Of course it's a temp, but that's because they don't know how to say Tempe. But then if I press right arrow, just keep hearing the times. So I know that I'll get there in 907. So I mean it's a practical use of table navigation. And I remember when I first got on the web using screen readers, especially like in Windows, and when they didn't have table navigation like this, it would have been impossible to navigate one of these. Because you need that to read line by line by line or link by link. And you know, so this is how tables navigate. And it's the one that I wanted to show you in Firefox. And I don't know if I really have time to go into like Thunderbird. It's a male client. It'd be a much similar kind of thing. But I mean up and down a pick list and open the messages I want to hear. But does anyone have any questions about like Orca and Genome? I know I kind of glossed through this fairly quickly. But basically that's Orca. And what happened is Firefox exposes some of this as an amateur because I don't know exactly. Firefox knows what tables and this is why semantic markup is so important. Because if somebody doesn't put tables in there, if they just lay that stuff out in some way and you know, physically made it line up maybe by using the pre anchor or something on the pre tag, you know, and HTML, this wouldn't work. But yeah, so Orca is really providing the one letter navigation. Some people call it quick nav. Quick navigation depends on who's your product you're using. Apple does it to with the voiceover and have it in JAWS. And most of those have now some version, you know, variant of it that pretty much work the same way. So I got tight, I typed the letter T and it said take me to the nearest table or the first table. And I can press T again if there's a second table it would have gone to it. But yeah, that's Orca providing that one letter navigation of the objects that Firefox has exposed through semantic markup to say, yeah, here's the headings and here's the buttons and whatever. So it's important for the browser has to expose that information or make it available in a sort of object model, I guess. But there's no modification to Firefox to make this, to make it special for us. I mean, it's the mainstream version of Firefox. They've had to expose the right information to make sure that stuff is properly marked up. I mean, amazingly enough, with Orca, you can actually get into these clickables. I don't have a website right handy I can confirm most. You know, when you have those fake links, you've probably seen them or you might not. You might just click on them with a mouse and not think anything about it. But a screen reader will say it's clickable, but it's not necessarily a link or a button. You know, so it's a void control, probably JavaScript void control or something. And so we can sometimes route mouse to it. Now, let's see if I can do that here. Sometimes this doesn't work because of a Firefox bug. Let's see, I'm at... Press center, 848 AM, row 12, column 6. It is one thing I can try and bring up real quick if this will work. There is a bug in Firefox. In fact, I complained about it recently where sometimes you can't route the mouse to it, but you can route the pointer to it. If I use some keys, it's kind of like a review what we did in Speak Up. See, I'm not in the right place. For some reason, I didn't put it where I wanted, but... And there's not a clickable, so I don't want to do anything here, but... Oh, there is a push button there, but now if I wanted it, I could just press the key and it would simulate a mouse movement. So I'd be like pressing a left click with a mouse or touchpad or whatever. Now, in other cases, I think there's parts of websites where that's supposed to work better. And that's the one thing I have had... We've had some trouble with, and it was noted that it was a bug in Firefox that I think that is not... The screen isn't scrolling for the internal buffer or whatever they're using. And I'm sounding kind of wishy-washy there, but I don't exactly know. Because you probably saw the screen as I was scrolling down it and saw this whole route on Tempe and everything. But for some reason, routing the mouse pointer to it with these screen or with the ORCA commands in there wasn't putting in the right spot. But when those do work, you can click those clickables, and they're kind of a... In fact, I don't know if we have any clickables on this side. Let's see if we... No, how do I find clickables? No, I'm not sure of any. Rapping to top. Submit clearing push button. Rapping to top. Submit clearing push button. Okay, there's only one button on the page. It said... And it almost said wrapping to top. It meant going back up to where the... There's only one button on the page, apparently. So anything else on it? I know Firefox is probably the most interesting part of this whole thing, and it obviously depends on how people code a web page, how good this experience will be. Any further questions on it? Sorry. I've been working on teaching myself Python, just reading some books on it and stuff, because I'd like to learn it, because I want to contribute to this project, and that's one of the reasons, one of the motives. And I've done stuff with Perl before. And Python is interesting. So yeah, I'd like to. I just haven't got quite involved with it. Just like want to learn Drupal, too. So between the day job, they come home and say, okay, an hour a night, where do you spend it? Or whatever. So plenty of stuff to learn out there. That's for sure. I don't know. I think it depends on the environment you're editing in. I mean, I was a day job person. I've worked with Kobol, but I usually use Windows screen reader and that sort of setup, and using ISPF, you know, in the mainframe and all that. But here, as long as you can code in text, like, you know, Perl, Ruby, whatever, I just don't know some of the languages. I know Perl, and Perl and Python have been learning, and I've done some stuff and see a long time ago. In fact, a long time ago, I actually wrote a, for a DOS screen reader, I think it was for a DOS screen reader, I actually wrote a synthesizing driver for it. It was kind of fun. But it was a long time ago. But I mean, any language that has, you know, meaningful text in the views and editor, like, I like Emacs for that sort of thing, because of the indentation and of course, it does self-correcting almost like an IDE, where if you leave out a parenthesis, it'll tell you it's missing. I should have demonstrated that. You didn't think about that. Yeah, that's what I mean to do. So I think I'm going to do that. I will make some closing comments just saying that for some of the stuff that make this all happen and make this work as well as, like, what you're seeing today is, and I touched on it already a little bit, developers need to use standard controls, standard tools, you know, standard widget libraries and things. Don't be acute with your custom widgets and whatever. A lot of these graphical things will work pretty well just out of the box if you use standard stuff. Same thing with web design. But I think, you know, this stuff's come a long ways. It has some bugs and different things, but the progress has been made in the last, say, 10 or 15 years in these areas has really made a difference with the accessibility of the Linux platform and, you know, it rivals Windows and Mac or any of them. So thank you for your time. I'll shut this up. Yeah, that would be really good. Well, it's like I had a problem with the app last night with Southwest Airlines, where I was trying to save a boarding pass. Now they've improved the app and made some changes, but yet when I got to the point where it's a save and a passbook and whatever, all of a sudden it had these four links now and none of them worked. And I was on the phone like several hours fighting, trying to just try and get through to a human lesson and say, well, how can I save this boarding pass so I can use it tonight when I go home? And yeah, that was a circus. That used to work. So, you know, they changed something and broke it. Yeah. Getting everything else set up. Oh, check one, check two. Little hot. This will be fine. Oh, no, no, no, you'll be fine. I am. This is information security. Information security. Snakes here. No snakes. Yeah, bring it down. Oh, God. Way down. Even more. Well, is that enough to be able to bring it over to the recording? Because I know you all can hear me that I'm not worried about that one. Where's the actual speaker so I don't walk in front of it? Oh, everywhere. All right, fair. I'm screwed. All right. Oh, okay. I guess it'll work then. Is that okay? I mean, it's fine. It's mostly like we are going to record this, yeah? Yeah. Oh, okay. Well, all right. It's already being recorded. Oh, God. You all heard me for a while. Yes, well played. That's, oh, well, I mean, that we can do, but, you know, we're not really started yet. Not officially. That's why you turned the mic off. No, no. Oh, good. Okay. Great. Well played. Okay. That's much more common. Cool. All right. So I'm going to go ahead and get started. And you have all heard all of my pre-ramblin here. But this is the Lord of the Rings and information security in your open source project. I am Amy at Amy on Twitter, and I'm also Amy at Red Hat. I am more than willing to be stopped and heckled and questions and all of that as we go through this. This is about a 20 minute rant or so. And then I'm again happy to take questions. So do not feel shy. So from time to time in your information securities, information communities, you are going to be able to have things happen to you anytime that you bring up a server or frankly, anytime that you bring up a server with a database and then you write down the credentials somewhere and you forget about them. Well, that leads you open towards problems later on if you haven't actually written them down. And it turns out that the story of the Lord of the Rings is a great method to be able to follow towards actually fixing these things when they happen to you. Out of curiosity, how many people have actually had something like this happen to them? Only one? Only two? Okay. So okay. You are the people who would will admit to it and you actually know about it. The rest of you just don't know yet. This will come for you. It will be great. So for me, this came from working at a hosting company when Heartbleed came out. So it was one of those things where the release had come through on Twitter for Heartbleed and I kept seeing it come through. And I had this reaction of, huh, that's kind of interesting. I now realize that when I have that reaction of, huh, that's interesting. I very, very quickly want to get to the sense of gigantic impending doom or everything is fine. I want to spend the least amount of time in the, huh, that's interesting. What happened for us was we ended up like seeing this come through all the way around the world. And one of my Australians who I happened to be working with and I was based out of West Coast. He's based out of Sydney, jumps into chat and is like, Hey, you guys, we got a thing. We've got a thing. And it turned into kind of like a lighting of the beacon sort of thing across the world in terms of like pagers went off and like, you know, people got woken up out of bed and it was kind of like, huh, this is going to be going on for a little while. You know, we should call for aid. And that's the lighting of the beacons. And this is where like my concept of the Lord of the Rings came from. So again, it may be cheesy, but it's fun. So I tell you that story to let you know where I started from. And now where I am is a, I am the Gluster community lead at Red Hat and my focus to be able to feed and water and move that community forward. I can't do that if I don't have good solid infrastructure and I can't do that. And frankly, all of our projects cannot move forward if we're not paying attention to this. So this is why it matters. Okay. Yes, we're all very serious about this. So the forging of the ring. Every time that you bring up that server or someone brings up like, oh, I don't know. Ph may admit and kind of forgets about it. Yeah. No, no one's ever had that happen before. No, right? I mean, like, pick, pick any interesting thing service you are going to need with your project. If it has a material impact towards you being able to ship, you should write it down. And I realize that two factor authentication is deeply annoying, but it may in fact be the best thing that we have. So we should use it and being able to practice, you know, better management of information of SSH keys. Don't share them. Don't push them around. And, you know, things that we think, oh, yeah, we'll remember that later. We'll fix it. We'll go back and fix it. Just don't do it in the first place because you have the power to forge the ring. And then there becomes a cast of characters. I actually don't think that there's a Sauron in this because no one deliberately does this. You would never deliberately set this up for yourselves. But you can turn into Gollum. If you're the one that finds it and then kind of forgets about it and wanders off and like later on you go, oh, man, why is that server there? What were we doing with that again? You've been poisoned. You've turned into Gollum. Frodo is the poor hapless discoverer that ends up, you know, actually looking at the logs and going, huh, that's interesting. Huh. What do we have in there? Gandalf is the senior staffer who can read the logs and go, man, you got a thing in there. Right? He throws it into fire. He reads the logs and goes, oh, God, what do you have in there? But the problem is Gandalf doesn't actually come with you on discovery. Gandalf kind of rides off somewhere else and gets pulled off to another bug and he comes in periodically and checks in on you like, so, how are things in there? Oh, you got a thing in there. All right. Cool. Let me know how you go. And they come back in. There may also be an array of Gandalfs. You may have multiple Gandalfs that come into your, you know, management of any incident. The hobbits are the other people on your team who are going to be able to help and each one of them has a piece of knowledge to be able to bring to the table. So the fun stuff comes in where sometimes you will have Strider and Strider is information security. They come in as you're on your way towards Rivendell. You know that you have a problem. You're now walking towards being able to get through what actual remediation would look like, where we're going to go here. And information security comes in and says, ooh, I think we can help. We think we know what we're doing here. Everybody hobbits on the way. Let's do this. They're probably way less excited about that. I don't think I've ever heard it in information security. I'd be really, really excited about things or a girl in that way. So you're at the point where you have realized that the impending doom is on you. You rapidly need to fix something. This is your journey to Rivendell. Oh, come on. Pick up. Well, next slide should be about communication and why it's not actually moving. I'm not really sure. But it doesn't want to communicate, apparently. If I go back and then forward, there we go. Cool. So communication. We should do that. This is kind of what got us into the first mess. Typically, I mean, very rarely you will run into something that has a level of heart bleed. It's usually going to be something much smaller. So you communicate with the team around you. You communicate with the management structure of not only the project that you're working with, but other people who will need to know. I am hoping that you will have information security alongside you when this happens to you. Not if, but when. You will also need legal because there actually are people that are going to care about this, even if you're just an open source project. People should be using your project. And hopefully, if you're doing it right, they're using it for critical things because you're important, right? Public relations is going to be important longer down the road because you will want to be able to say, no, no, cool. We destroyed it. The ring is done all as well. This is how we've cleaned up the shire. Things are great. Previously, when I've been in these before, I have done things like keeping a running document of what is going on where, who is responsible for what, what are we doing, how is this moving along. Also keeping asynchronous private communication on unlisted IRC channels was another way that I have done this in the past. I don't know if I will do this in the future. This worked for me as this happens to me. I've also done daily calls to be able to confirm current status, next steps, where are we going. Again, your mileage may vary. This keeps the pace moving so that everyone knows where we are going. And what does done look like and what does success look like informs how your weeks move. Sometimes you may end up in a situation where finally fixing the incident is going to take things well outside of your hands and it may take months. May this never happen to you, but it does. And so understanding here, things that we need to work with longer term, short term and moving on from there. Questions, comments, stories. I know I realize I'm actually giving like the real part of the talk instead, just the Lord of the Rings. We'll get back to that. It's fine. And the actual remediation lines up to make a checklist, follow that checklist. Remember that having that checklist is going to be able to save you from other problems down the road. So the way this works is, okay, you've made it to Rivendell. You have the council of Elvrand, everyone who needs to be involved is there. Hopefully, you know, you'll have the elves. Sometimes they're helpful. Sometimes they're not. You can't really be sure, but they're definitely there. They're going to be there. You'll find out later. The dwarves want to get this done as soon as possible. And InfoSec may also be involved. Sometimes they're men. Sometimes they're dwarves. Sometimes they're elves. Choose. Other pieces around in here. The minds of Moria end up when you didn't quite get through discovery or something got missed in discovery. Something that should have been remembered was not. And then you end up in this kind of terrible place of either, you know, something leaked, something worse happened. You're not sure what to do next. So it became a lot more urgent. The minds of Moria never happened to you, but now you can use this. When something happens, you're like, oh, we should have remembered that. We're in the minds of Moria, everyone. And a note on legal, because sometimes legal will come down as gladriol. They want to help you. They want to be able to move all of this forward. They want to be able to make sure that all of this is going to come out in the best light possible for you. And I actually probably need to give another version for the legal side of this. So that's another talk. But sometimes legal can be Boromir. And sometimes Boromir is like, no, no, no. I'm taking this and it's never going out. You're just going to be a dead floating hobbit in the river. And this, you know, this will probably never get out in public. And this will probably never be something you talk about ever again. And honestly, there's not much to do about Boromir. The better way is not to have any information security problems in the first place, but we'd like another world. What will certainly happen next at this point is you will get halfway through the, where you, where you say done is, and half your team is going to get pulled off to work on another bug. Also, all the hobbits getting kidnapped. So the eye of Mordor is the press. Sorry, the eye of Sauron ends up being the press because you do not want them to be able to find out about this until you have destroyed the ring and everything is beautiful. And you have gotten to the point where no, we understand there was a problem. We have resolved it. This is the things that we did to be able to resolve it. We're done. Or here's how everyone knows about it. And this is what everyone is going to do moving forward. And your ultimate goal is my things don't actually work. Come on, slides. There. That is what success looks like. Success looks like we are better than before. We know much more about our infrastructure. We have all of this knowledge. We know pieces that we didn't know before. And we are the better for it. This is what success looks like back in the Shire. On the other hand, you may also realize that you may turn into the hobbit again the next day, depending on just, you know, the way that the internet works. And the fact that all of our systems are so much more complex than they were four years ago. The things that we are working on now are the things that Google was thinking about in production. And now they're all of our problems. It's just, no, it's true. It's like all of the things we're like, oh, God, yeah, four years ago. Wow, that's a really interesting idea. Now this is currently my problem. Awesome. I really hope I've written that down. So congratulations. You've survived the shadow of the ancient infosec on your doorstep. So my real advice is making sure that you actually are communicating within your team as you find out about it. Being able to solve that question of, that's interesting. That's really interesting. You want to know as soon as possible, hopefully within hours of having that feeling. You may not always be able to do that. Work as you get towards the end of this, towards running a really good root cause analysis, which ostensibly will help you prevent or change things about the way that your community's process is working for when this happens again, or being able to communicate with other communities that this happens with, because you may possibly have cross-pollination with some of their work. Do make sure that you actually have the right people involved as well, at least in those beginning meetings and in the root cause analysis meetings, and those tend to be really epic meetings if you run them right. That's another chalk entirely. So I won't go into that too much, but also making sure that you do have the information within your own circle of trust. Everyone that is on the quest should actually know that they are on the quest. You would be surprised how people don't actually know that, no, no, no, some of this stuff should not actually, don't put that on Twitter, don't. And the words of David Foster Wallace, I wish you way more than luck. So thank you. Other stories, comments, questions, things that people want to be able to talk about. Yeah? Nothing? You have no war stories. Yes. It's more about like knowing what you're feeling like you know how to be able to handle them when they do happen. Because there's like trying to prevent them is like trying to prevent water running downhill and like also Chinese hackers. Oh, wow. Okay. Great. Shooting the messenger. Yeah. Because it's your story, I won't retell it for the recording, but I attempted not to be able to have like the, here's how serious these things can be because that's a huge downer. I mean, I feel like, you know, the ring of power that could destroy us all is probably enough, you know. But like these things matter and there's a reason why you have to take them very seriously when they do. So thank you. Yeah. I will actually shut the microphone off and we will tell stories as needed.