All right. So for those of you who don't know me, I'm Dan. I created Appium, which is mostly what this talk is about. I'm going to do something dangerous here. Show of hands. Who in this audience uses Appium more than Selenium? Okay. It's almost to the point where we can rename the conference. Maybe... Anyways, at one point I had a bunch of jobs. I put them on the slide. And a long time ago I got a computer science degree, but I'm mainly known for creating this thing called Appium. And so, first things first, I made it this time. I'm here. Through no small miracle, I am here. Apologies for what happened last year. There's a serious bug with American passports. So you may notice in that very small writing on the top of the left-hand side, you'll see the word visas written on that page. And on that blank, empty page where an Indian visa stamp would look really nice, it doesn't have that word written. And apparently this actually matters. So if you've ever had an American passport, the last three pages of it cannot be stamped. And so I learned that on my trip here. I got very close, as you can see. I made it to Dubai for my connection. I saw the Burj. I hung out with the locals. I saw the ski resort. I like to do the Emirates. It's like the kind of country where the lack of precipitation, cold weather, and topography, don't prevent them from having a ski resort. That's the kind of brute force thinking I just like to see. But anyways, then when I tried to board my connection in Dubai, they informed me of the problem. And the repro steps look like this. Fly to Dubai, going to India. Have someone mischeck your visa in London and say you can go to India. Then get on into Dubai and have it be a Thursday afternoon during Ramadan where everything is closed for the next three days. And not be able to get a new passport without going out of there. And you're having to go back to London because you can't fly anywhere because there's nowhere they can stamp. Anyway, I won't get into it, but it's our subject. Meanwhile, you guys went on without me. And is this guy here? I would give this guy... Is that you? No. He is not here. All right. Anyway, I like this. This is brilliant. This is my tombstone when I die. So let's try this again. So let's start with the beginning of Appium. It all kind of started when I took a job in California working at a dating site. And I was confronted with what I consider the most terrifying words in software testing. And I've done this talk enough where you guys already know what this is. It's these words. And basically what this meant is it was the end of the era of move fast and break ship that we'd gotten used to with Web 2.0. Now we actually had to test stuff before we sent it to customers because Apple had a very lengthy review process in place at the time that meant if you made a mistake, you'd have to live with it for several weeks on average. So testing became a lot more important. And I thought back to something similar I'd worked on earlier in my career. How many of you know what this is? Oh yeah, Simon. The elderly crowd here is like... All right, Marcus too. I know what it is too. I worked on these things. That's actually a DVD which is Eons Beyond all the other media that came before. Like CDs or floppies or double density discs or I don't know, tape drives, whatever else. Anyway, similarly when you made a mistake on something like this, it got printed and sent around the world and it was problematic to fix that mistake to say the least. Windows update was not as advanced as it is now. But anyways, so I took a look around, said how can I get our testing situation better for our mobile app that we have? And everything was not awesome to say the least. There were a lot of frameworks out there. I won't name names, but you know who you are, probably not here. But anyway, there were a lot of bad frameworks out there to do testing with and so I wanted something like Selenium, what I was used to when I worked on websites, when I moved fast and I broke shit. And nothing like that was available.  There were things that gave you very, very low level access to things. But there was nothing really good where you could sort of come up with strategies to identify elements and then interact with something in real time. Or even Selenium ID style record and playback. There really wasn't a good solution out there that did all those things. And moreover, like Selenium let you work in the language you wanted to work in, a lot of them required you to learn something terrible, like Ruby. Or sorry, Ruby. Not sorry. Anyways, I'll move on for this, but suffice to say it was bad. And so I thought the one thing that I always tell everyone I managed never to do, don't do it yourself. Usually there's some open source software out there you can use, or something you can buy, or there's a better way. Usually you don't need to write the thing. But in this case, it was that one moment in your life when, like, you know, you're at the wedding and they say, you can actually raise your hand and say people shouldn't get married or something. It's like that one time in life when you, like, can do the one thing you're not supposed to do. So I did it. And it looked quite terrible, to be honest. So it all hinged on this hack around Apple Sandbox had this idea that you could run shell commands on a host machine with this very long-named method. And from shell commands, you can do pretty much anything. So I chose to invoke the shell command called Python and then write an actually decent automation framework with it. And so that's what I did. And with this little magic piece of code here that basically has a read loop where it sits and uses the cat command to see if a new sequentially ordered command has been put in a folder in the form of a text file, then takes the output on standard out of that, runs eval on it in JavaScript to actually run the code in the file, and then prints out a text file with the response as sort of a handoff mechanism for a web driver client. So it's quite a terrible piece of code, but the idea was solid. And that was the best way I could figure out how to implement it on my own time and without help. Moreover, there were other parts of it that weren't pretty. I highlighted and read the very interesting part of this script that ran with the initial version of Appium. For those of you who don't know how to read Apple script, this is a script that launches a loop that answers your username and password any time you're asked for permissions. So while you were running Appium, if anything needed permissions, it just got them automatically filled in for you. So obviously not the right way to do it, but nonetheless, I think the point was there that this hack as bad as it was was better than using the tools that the vendors were providing at the time. And any of the other tools out there, which is to say something. So what is Appium? So I think most of you know, so this slide is probably pointless, but it's a very popular app automation framework. It supports iOS, Android, Windows, and Mac, and more. It supports most programming languages, and namely anything Selenium supports. And it's based on Selenium, which all of you here should know, or you're at the wrong conference. So it's all based on the WebDriver protocol, which is now a W3C-recommended spec. I keep updating the site every six years as the status changes. And I think we're currently at recommended level.  But this is what it looks like. You have your script, and it's sending commands over HTTP. Appium is then converting those into some form of API request in a test automation framework for that device, and then converting the response back likewise. Moreover, it's kind of a broker for different automation tools. So in the case of a hybrid app, Appium can use XCUI tests, or it can use UI Automator 2 for the native layer of your application. But when you want to actually deal with the Web content, it'll invoke Selenium.  And that provides a lot of benefits, mainly around forward compatibility, backwards compatibility, and sort of working around all the different variations and different versions of different devices with different frameworks and so forth. The idea being that if Apple breaks something with a certain version of Xcode and instruments, Appium, in theory, knows about it, and it hasn't fixed. And then when you upgrade to the new one, you don't have to go change all your code to work around it. Appium will just automatically sort of do the right thing for you. So anyways, it has a pretty simple philosophy. Number one, we wanted to use the standardized tools and techniques from the get-go, so no private API calling, no buffer overflowing to get privileges, nothing like that. Not that I think there was a tool that did that, but we wanted to build a code in language of choice. We didn't want you to learn some silly programming language like Ruby just to do something. But if you used Ruby, we wanted you to be able to use it to write Appium tests. We also didn't want to modify the application under test, and I think most of you who work in testing know that that generally is going to give you different behavior in one way or another from what your customers will actually see.  And then lastly, we wanted to keep something free and open source. We didn't want Appium to be for the rich and the wealthy, we wanted to be for the people. So I'm going to talk about a bunch of different lessons I learned working on this, and so the first thing I'm going to talk about is the growth of Appium, and to talk about the growth, we kind of had to talk about where it all began. And it was actually a long, long time ago, I think seven years at this point at a Selenium conference far, far away in London. What I'm going to show you here is Jason Huggins, who you all may know, is almost killing Appium.  Oh, I need to plug it in. Nine. Eight. Seven, six, five, four. All the gods must have been watching. Three, two, one, ready, go, start. All right, I'm here to talk about the native app driver. It all came and it all worked. And the rest is kind of history. So from there, from the Selenium conference, I did a lightning talk about it. There were exact words Mark used to use the reaction, but suffice to say people were underwhelmed with it, except one person, which was Jason. And so he invited me to a bar like six months later after telling me nothing. He just called me out of the blue. I don't know where he got my phone number. It's kind of creepy, but we're friends now, so I'm going to let it go. He just called me up and said, hey, meet me at this bar, bring your laptop, show my developers that thing you wrote. So I showed him that thing I wrote. I'm going to talk about it in less than a second later. But eventually I showed them a Python version that I prototyped it in, and then they kind of went away with it and didn't talk to me for a while. And then the mobile test summit came, and this was kind of a summit where all the big automation tool makers came together, and the idea was to get the community together to sort of solve the mobile problem. And so I brought my thing. I was thinking I'll show it to people, but then I met all sorts of really cool people there, like whatever the guy's name that makes Sikuli. I can't remember the name as well, the tools have been too long. But everyone who was anyone in the mobile automation space was there. And so I showed my demo, and people were like, oh, okay, that's kind of cool. And then unbeknownst to me, the good people at Sauce Labs at the end of the conference showed it working in their cloud with the name Appium, and sort of the rest is kind of history from there, but we'll kind of get into it a bit. So I guess the most important thing when you have something cool, a good idea, is to tell people about it. Jonathan and I would at 7 a.m. in the morning every day read all the questions on our forum and we'd answer them. And this is really important, because when you have something new, people need help with it. And they need qualified, smart people there to get help with it. And when you're new, you don't have Google to index all of the answers for you, or Stack Overflow or something like that. So you need to actually be the one that answers that. And Jonathan and I did that for about a year, year and a half. We literally answered every question, even if it was to say I don't know either. We also spoke anywhere that would have us and also to get into that in a second. We had a clear mission and philosophy from the get-go, which I think is really, really important. Whenever you have disputes within a project, it's nice to have already agreed to something that shows that I'm right. And so that was really helpful. We also talked to any companies that were interested. I think I got an offer from some company in Florida for like a few thousand dollars to buy it. I emailed them back just out of interest and then they never got back to me. But anyways, Appium could have been sold for like a thousand dollars on real story. And I guess lastly, someone went to social media and created a Twitter account. I don't know who it was to this day. I think it was the Sauce Labs marketing people. But no one knows actually. But it's in our control, don't worry. So like I said, the next part of the story is the part where we go around the world to anywhere that would have us. And I've sort of put flags to sort of name and shame the people involved in this. But yeah, Jonathan and I spent lots of our vacation time.  Just going to talk about Appium. Jonathan did something similar. These are sort of my shots. Jonathan has a probably more posh set of locations that he's been to. But nonetheless, it was a lot of fun. So we went to anywhere. We even went to some strange places. The one on the upper left, this was this military-themed conference where there was actually a costume code. And so I had to get dressed like a general, which I'll show you in a minute. I think Poland actually is punching above its weight in this deck. There's a lot of China, a lot of Russia, but those are big countries. But I think there's like seven shots of Poland coming up. So I don't know what it is about that country, but it's very interesting. You see, there's some people discussing something. There was like an art auction going on at the same time as our conference. And there were like Mer people behind us. I don't know. There was actually in China, there was like a raffle going on. And they were giving away prizes and throwing away large stuffed animals while Jonathan and I were talking. I think just to keep people awake. I don't know what's up with that restroom in Portugal or that gnome with the butt plug in Holland. Or if you have an all-you-can-eat buffet and you want people not to eat a lot, definitely put that wallpaper next to the all-you-can-eat buffet. Nothing was really beneath us. As I mentioned, I wore costumes. Jonathan entertained people like a common busker. I even pet a sheep in Russia. But honestly, all it really took was free food, right?  I think that tiki drink, that's a real like taxidermied bird on there, which is a bit weird. Anyway. Yeah, and a flight to somewhere exotic. So just food and a flight. Or, you know, it doesn't even have to be that exotic. Actually, I'll go back. You know, these are nice places. This is Chernobyl. That was also fun. I totally recommend it, by the way. But anyways, actually a tram will even do it. Here's Poland again. So this was a mobile conference and they thought they needed a mobile party. So they rented a tram, filled it with booze and speakers and people, and blasted the music for four hours without a bathroom break. And then when they finally gave us one, I don't think that was a bathroom. I think that was someone's house. But nonetheless, we went a lot of places and the whole point was really just to sort of experience new things. Like when you go to a country where you don't know which bathroom is yours. Though, good case for deductive reasoning. I assume the dirtier one was the men's and I was right. And if you're ever in Lithuania, the up arrow is the women's. The down arrow is the men's. And we also took a chance to learn from others. Taking completely out of context, one wouldn't know anything about the way Simon thinks. Anyways, moving on from the slide show that you awkwardly show your family at Christmas. The interesting thing about open source is it's not like working at a company. When you work at a company and you do good, they sort of give you more responsibility. Open source is the total opposite. Like the better you do, the more people that get involved and sort of the less control you have. And at first this may be alarming, right? But you realize it's a good thing. So in this case with Appium, one day a website and a Twitter account showed up. I have no idea who did it. One day someone made a pull request to add Android support. Never really a goal of the project as the tools Google had were quite usable, but nonetheless cool. One day the project ported to JavaScript and just simply outvoted on that like 6-2. I didn't know JavaScript, but what the hell? People want to write my project, so awesome. At one point I lost the commit bit to the repo as back then GitHub had either admin or not admin as privileges and someone was made admin that didn't know who I was. And then like a month later they're like, who is this guy? And they just deleted me. I think that's what happened. I hope it was nothing more malicious. I've got it back now if you need anything sort of like slipped under the rug for Appium to buy me a drink first. Anyway, and then I guess lastly I had a conference proposal rejected and I was like, it was the perfect conference. I won't say which one it was, but it was like totally relevant to what I was doing and it was in like a nice tropical location where I wanted to waste my holidays for work and they rejected me and then so I emailed the guys back saying what on earth? Like this is perfect for your conference. Can you reconsider? And they said, oh we've already accepted two other Appium talks. And I was like, I didn't know Appium had two other users. Like that's really cool. So anyways, it's a bit different than the real world. My day job. I would never look at losing responsibility as a sign of like doing well. Pro tip to any of you out there who need career advice. Also scaling becomes a challenge. So eventually you won't be able to answer every question. So when it was 20 or 30 questions a day, Jonathan and I could spend an hour and a half answering them. When it became hundreds of questions a day, that became problematic. And I guess I'll talk about sort of a strategy for doing that later. You also won't be able to look at every commit. Eventually there's just too much going on for you to like actually look at it all. So I recommend unit tests for that. So if you have a nice unit test policy, unit tests will tell you a lot about the quality of what's going in there I think. Because generally people who make bad quality code don't know how to write unit tests. Also you won't know what's going on. And release notes and commit messages can be very helpful for that. But anyway, another interesting sort of deviation from what is normal I think is how you deal with conflict in an open source project. So normally like at a big company, there's like a chain of command, right? Where there's someone in charge and if you disagree with me, you just talk to my boss and that sort of thing. But it's not necessarily the way it works.  But when they disagree, there's really no higher power to go to. And so I found that having the philosophy was a bit helpful for that. I also found that having the fights out in the open was helpful because then people sort of came to a shared understanding of what was going on. And people became sort of more informed with what they're arguing about. But sometimes it just came down to, well, no one really else has time to do this and here's a patch that works. And it's like the third of the 10 options on your list. And so you kind of just let it go. But also losing contributors is not bad and there were definitely sort of more important decisions where compromise was really not an option. But the nice thing about open source is they're still going to do free work for someone. And if you're interested in it, you can still look at it and use it. Multiple projects doing the same thing isn't also a bad thing. From choice comes about innovation and having a lot of options is good for end users, especially when they're all free, I guess. So in the end, you just have to trust the most awesome thing will win and sort of let go of it all.  But for someone who had worked at Microsoft where open source at the time was like a dirty word, like I think you might get fired just for saying the word open source. And now that Microsoft writes their own edge driver and their own Windows driver. But anyway, don't use proprietary tech. I initially wrote Appium in Python, but then I converted it to .NET to work better with what I had where I was working. And if you want to start a .NET open source project, you know, it's 10 years ago, you weren't going to find a lot of people doing that. So I was sort of trying to blaze, trailblaze a bit too much there. So try and use open technology, so languages like JavaScript, Python, Java, open languages. I used to email people around code for stuff. GitHub is a much better place for that.  Documentation is helpful. Putting my slides up is helpful, and I'll post these probably. Though I don't know how helpful these would be. This talk is like totally useless. This is like the keynote, right? I'm just supposed to like entertain you guys and set the mood and sort of like relax you. So there's not many code snippets in here, other than those ugly ones I showed you earlier. And then lastly, post all your responses to Google, read them, Google will index them, and you'll get a lot less questions, which will be helpful. So as we evolved, it started out as I want to automate iOS applications like automate things with Selenium. I like Selenium, so let's just add a web driver client for UI automation. And then it became, well, maybe I don't just want to automate iOS applications. I want to automate all the mobile applications. So we added the Android support and we moved it from being sort of a different version of the client server that then talked with normal Selenium clients. But then after that, it sort of was like, well, it kind of caught on.  Why can't they just be like Selenium? And we realized it wasn't actually a lot of work to like sort of wedge in like mobile application support. So it actually wasn't that much more work to wedge in Windows and Mac support. And fortunately Microsoft did all the work for the Windows and then for the Mac, I did a lot of it. Mac support is like, you know, I wrote it like four years ago, it may not work. But in theory, someone could pick up that project and make it viable if anyone wrote Mac apps anymore. Then this idea was proposed, the Star Driver vision. Well, what if I could automate everything using the WebDriver protocol? So we had no trouble wedging Windows and Mac and Xbox and all these other things in there. Why can't we just automate everything with the WebDriver? Simon's already scared by this. The thinking of the meeting is the W3C to automate everything. I don't know if you heard that. Anyway, but now it's sort of like we're in year seven of the project. We have hundreds of contributors, hundreds of thousands of people that use it. We've got over 7,000 stars on GitHub. We're inching up on the Selenium project. I think you guys are at 9,000? Don't know. We'll change the conference name and get the star count. It's going to happen. But I think we're making progress at this conference. I think I'm the first Appium person to do that. Am I right? Or has Jonathan done one? Yeah, I've been on stage, too. Anyway, we're at a good point in Appium-Selenium relations that we have so many talks at this conference. And we had our own conference, actually. I'll show you a bit from that later. Anyway. Anyway. So where are we going with Appium? So, as I mentioned earlier, this is sort of a community-driven project. There's no rigid chain of command. One could tell us where you're going. So this is my version of where we think we should go, where I think we should go. And it kind of starts back to the future a bit. So bear with me. That movie was released here, right? Like, you guys know about this movie. Oh, okay, good. I was worried about this. But you know about this guy. Does anyone recognize this man? Jonathan? If I had something to give away, I would give it to you right now for that. No. No, it's an Italian man named Guido Di Arezzo. And do you know what this man contributed to society? It's right behind him in this photo. So he's the one that came up with a unified form of representing music across every different instrument. And so you can think of musical notation as similar to what I'm going to propose here for a star driver in Appium. The composer doesn't know how to play very many instruments in the orchestra. He may know how to play the piano. He may know how to sing.  But he certainly doesn't know how to play the bassoon or the oboe or the recorder or the clarinet and nothing like that. But he knows how to control them with what he writes and what he gives people, right? And he sort of knows what each instrument can and can't do. So he basically says, I want that sound to happen at this point in time. And that's sort of his extent of that relationship, right? He doesn't need to know that that involves like pressing the tenth button and blowing through it some frequency or something like that. Or that involves finger on the tenth string or nothing like that. And that's the way automation really, really should work. So what if we were to make a web driver for musical instruments? Just bear with me. I hope you don't do this at the W3C meetings. This would be a nightmare. But you can think of a piano as sort of like a kind of thing you could automate. And it would have certain capabilities. So it has a phonic range, right? It's actually A0 to C8. There's 88 keys on it, right? You can play all the tones at once. I granted with only 10 fingers, maybe more like 12 or 13. You can't really bend the pitch unless you stick a wrench in the piano. So I'll say that it doesn't have pitch bending. And it has a sustain sort of all on, all off. But immediately you're seeing some things here. So the way web driver currently works with its capabilities, you can't represent some of this stuff necessarily. So look at a guitar. You can only play six notes at a time. A string can only produce like one of 25-ish tones. And some fingerings aren't really possible for people to do. And certain notes can't all be played at the same time and that sort of thing. But how would you represent that sort of, if you were representing a range of notes you could play? It probably looks a lot more like a lambda expression or a function or something like that. Which currently isn't supported in capabilities at all. Piano also has sustain, but there's several different configurations. So there's the sustain pedal, which will sustain all of the notes. There's another one called the sustenuto pedal in the middle which will sustain, I believe, it's only the lower half of the notes and only the ones you've played when you hit the pedal or something like that. And then there's another one that just sort of makes all the notes quieter, but that's not really related to that. Anyway, so how do we start representing this complexity in automation? And I think, I'm asking a lot of questions here. Like I said, there's nothing useful in this talk except a lot of questions. Or each finger, each foot, like how does it work? I actually don't know. But anyways, we're not actually trying to do music with WebDriver, thank God. We're trying to do, I want to automate everything the same way. So using what we learned from creating Appium, we know that automation is highly generalizable across many different contexts. As you've seen with several things here, we do web, we do native, we do all sorts of things with Appium. And there's really not that much difference between Appium versus Selenium. Anyway, so getting ahead of myself, Jonathan's, you know, taking the lead on this. And at Appium conference this year, he put together a BAM, which is all being controlled by Appium. And this always answers the can you do multiple devices at once question. I like to use this. We have a lot of you on this. This sounds, trust me. I believe things I've heard. Those I've said are better, sir. Scanning my whole brain. Anyway, so sort of taking that a bit literally now, like what does this look like? And this is what I'm going to finish the talk with a bit. So there's some quirks of Appium because it's based on WebDriver. So number one is we have the idea of WebElement, which is kind of overridden with this mobile element thing. But nonetheless, it's sort of a weird thing to call if you're going to automate anything, call something a WebElement or a mobile element. It doesn't really make sense. Element.click. On Appium we don't click things very often, as most of the things we support don't have mice. Getting the page source is sort of a Web concept. XPath is an XML concept. Driver.executeScript is also kind of like a JavaScript Web concept. And things like browser.windows, like that. So what do they look like when they can't abstract them or generalize them a bit more? So maybe WebElement, maybe that's a UI element now. Maybe clicking is something more generic like pressing. Maybe instead of page source, we're really talking about like the UI hierarchy. Or XPath is really just like a search expression, right? And so forth. Like I said, I don't have the answers. But thinking about it at a higher level, how can we think about automation for anything? So devices have operating systems, right? And operating systems have applications. They have outputs. Applications have user interfaces, and user interfaces have elements, right? And you can manipulate those elements with the different inputs and outputs that will really the different inputs. And then you can sort of perceive that on the different outputs. Also, devices kind of all have different capabilities. So in the case like hardware buttons, volume up and down, devices also have the ability to turn them on and off, that kind of thing. But an operating system lets you do things like launch applications, check if they're there, set the date and time, access your inputs and your outputs, execute a command. And at the application level, you're talking about things like settings, user interface hierarchy, and so forth. Inputs and outputs, press gesture, get screenshot of a graphical interface, use the mouse button, type on a keyboard, speak into a microphone. What we're trying to do here is sort of separate like the actual code and the application and the device from the things you use to control it. Because as you've seen in the new world, we have all these different ways. So you can have AirPods that are the microphone to your phone, or you can have a robot that's actually using your finger or so and so forth. Anyway, let's take a look at an example. It's a bit abstract. So an iMac is a device. An iMac uses the Mac OS operating system. Mac OS has the Firefox application, a mouse, a display and a keyboard. And the Firefox application has a user interface. It's a web-based interface. Or an iPhone. It's a device. It has iOS as the operating system. That has Facebook as an application. And Facebook has a user interface. So if you look at it like this, it becomes a lot simpler to sort of make something that can then work across a bunch of different things. Now, I won't get into the question of like, if you're doing end-to-end automation across like 10 kinds of devices in a test, you probably should rethink the way you're testing it. But nonetheless, you shouldn't have to learn something new to automate a new kind of device or a new category of device every time one comes out. Because as you've seen, new things are coming. I don't know what they are, but they're going to be new things. And how do we deal with them? And also, how do we deal with things that talk to other things? So like Bluetooth headphones or wearables or so forth, right? So anyways, I'll skip the robot slide. Anyways, it should all really be a plug-and-play. With adapters for any device or operating system, you can really automate anything new. And if you made it a spec, then vendors could implement it, and they could give you a device off the shelf that would be automatable out of the box, much like browser vendors do now. So I guess what I'm really getting at is a world where something new comes out and I can automate it on day one and people don't have to like work on open-source projects to do that. There'll just be people sort of working on committees trying to iron out the specs for what that looks like so that they can all play nice together. Not that I haven't enjoyed working on Appium for the last six years and not that I think a lot of people don't enjoy working on Selenium, but if you think about it, the right way for this to be done is sort of by the people that make the things. Or at least I think a better way of getting it done is that way. So anyways, I have a little bit of time left and so I have a really long takeaway section here. So the most important thing I learned is that developers want to develop their way. They don't want you to tell them what to use. So you should always be open and inclusive and try and support as many kinds of development as possible. Let them use their programming languages. Let them code the way they want to. Appium is largely successful because it was based on something that people wanted to do. Selenium is something people chose to do from a number of different tools for websites. And obviously I don't think most people looked at like how it's a mobile device. Everything I enjoyed for web is no longer enjoyable to me. I don't think anyone thought that. And that's, I think, the largest contributing factor to the success of Appium is that we based it on something popular that people already knew. So the barrier to entry was non-existent. You know how to automate a website. In two minutes, I can show you how to automate an iOS app. So like I said, be inclusive. So we support all these wonderful languages. Ruby's on that slide, I'm sorry. We support all of these languages. We support these lovely operating systems. From a long time, we've had documentation in English and Chinese and the site translated into a number of different languages. And I went to a lot of interesting places to talk about it. Jonathan, once again, would have a much cooler slide with much more tropical destinations, I think. But nonetheless, it's been good. It's been a lot of fun. So I've learned a few lessons from this and that's more what this talks about. Like I said, I'm not here to teach you anything. There was already an advanced Appium workshop yesterday, so there's nothing I could teach you up here that wasn't in that. But I can sort of share with you what I've learned in the last sort of six years working on this. And number one is share your ideas as often as possible with everyone. Even if they involve horrible hacks like the one I show you. And I guess sort of what comes from this is like sometimes the least bad idea is the best idea. I think by definition, the least bad idea is the best idea. The initial version of Appium was definitely a least best or the least worst way to do something. Also listen to everyone else's good ideas as they can really come from anywhere. And I mean that is like, I was just a guy at a dating site who had a boss that was yelling at me because our app always broke when we submitted to the App Store. I don't work at some fancy company or I didn't work at some fancy company.  Like that's not what I did. I worked at a dating website. Like literally we just take people's money to let them chat with other people. It is not rocket science. So anyway, good ideas can come from anywhere. Also try and be as inclusive as possible. So to this date, I'm not sure I've ever said no to a conference for a reason other than a scheduling conflict. So I never said no to go anywhere. I tried to come here but the government wouldn't let me.  The world's a much nicer place than you've been led to believe. I don't know about India but in America we're sort of taught that the rest of the world is crazy or it's dangerous or it's unsafe. And even in Europe I sort of hear like oh that country's like no go or that kind of thing and I have yet to find anywhere really like that. I'm sure I could if I really really wanted to but nowhere that's hosting a conference where the Selenium is that kind of place. And maybe that's a tribute to the Selenium project. Maybe it's like the world's peacemaker. I don't know. But anyways, the moral of the story is it's a nice friendly place out there despite what you've heard. And then lastly, never say anything bad about anyone in public. Especially if you're being recorded. The world is... So I'm being recorded today. If I wasn't being recorded and if none of you were here this would be a very different talk. I tell the story about the time I flew 12 hours to go to Australia from or 14 hours from San Francisco and literally 12 people came into my talk. And I was having a week where someone had said something bad about me and someone else on the Appian project.  I said something bad about this person. And lo and behold one of their good friends was one of the 12 people there. Never mind that this person is not from Australia or anywhere within like eight time zones of that. So anyways, lesson learned. Always be nice. I also will give you sort of more philosophical quote from Steve Jobs who said, I used this one last year but I'm using it again. Life can be much broader once you discover one simple fact.  You can change it. You can influence it. You can build your own things. Once you realize that, you'll never be the same again. You know what this basically means is have no reverence for the people that came before you. So everything you've heard at this conference take it with a try and buy attitude. Treat it like shareware if anyone remembers what that was. Use it a bit. It works for you then invest in it. But what I'm telling you is that this is a conference where just because we're up here speaking doesn't mean we're experts at anything and that you don't have better ideas. So I'm going to I would encourage you all to go and share your ideas with as many people as you can. So work on open source. Publish blog posts. Go talk at conferences. Call your mom and tell her about Appium. I don't know. Make a better project. I've had a good run. I've got to go to some good places. I make no money on Appium. There are no children that will starve if one of you creates the Appium killer to be a lot better, to be honest. So what I'm saying is don't be afraid to try things and share them with people and fail. I lucked out in that I had one good idea and six years later I've gotten to go to a lot of fun places and we now have a working solution for mobile automation, which I guess is more important. That being said it won't always be like that. Your mileage may vary. I've had other ideas that have been less successful. Some before Appium, many after Appium One of them might have been this presentation today. So anyways, don't let that scare you away from persuading and if you see something out there question it.  And if you find something that you don't like or that doesn't work for you it's probably a bug and you should come back and you should fix it because that's what you want done with your bugs, right? As people who log bugs, you'd like it if someone went and fixed it. So please come and fix it in general. Just test everything and that is it for me. I guess we have five minutes for questions. Indeed, you have six minutes for questions. Six minutes for questions. All right, your lucky chance. Hi Dan, it's a wonderful it's a wonderful presentation actually. And this is the first time I'm seeing Simon Stewart and Dan together. It's a very good, very pleasure moment for me and I have a requirement kind of like it's a payment kind of app. It has to generate a random number, a kind of pin number and it will be transferred to the watch, iWatch, and it has to be captured again by the user and it has to be pinned or voice over by the user to the iPhone and it has to be approved for the payment gateway. So can we control both these two devices in a single session via Appium? I believe Appium currently supports the Apple Watch so the answer would be no. But in general with this vision I presented for a world where everything is automatable out of the box then you could. Okay, thank you so much. Was it an Android Watch? Because then I think it might work actually. Oh yeah. Hi sir.  First time in my life I am seeing two gods, one is Simon and one is yourself. Because from the last four years I am following Appium and I am providing training to university students and all and Selenium and Appium. But recently I saw that video, guitar automation using Appium. My wife asked me one question when Don and Simon can go to work on washing machine automation using Appium? I heard washing machine and Appium. Home appliances automation when they can try. Because every husband is saying I am in automation I am in automation, I am in automation house so every wife is asking when you can automate my house related things. Oh okay. Also another maybe we should get the house wives on board. Thank you. I didn't even think of this. Or maybe you should do the washing. Or you have children right? They need to earn that allowance right? Basically he is trying to avoid washing so he wants you to automate his washing machine. Cool. Any other questions? Going once. Hi, I am Mahesh Kulkarni. In one of the slides I saw about Viniyam actually. Since I am from Windows world I am interested in knowing what will be the progress in Viniyam world. Viniyam is the one of the framework that you run on Windows desktop machines right? So I wanted to know. What is the progress of the Viniyam project? I don't think I had that in my slides but Microsoft makes something called WinAppDriver now which fulfills most of what Viniyam did. Viniyam will support some older versions of Windows that aren't supported by WinAppDriver. But the project has sort of been replaced by the official one from Microsoft which as awesome as the Viniyam project was and the cool guys that worked on it in Russia. I think it's the right thing to have the actual vendors themselves building it. So to answer your question github.com. Microsoft. WinAppDriver will work for all Windows apps Windows 8 or later I believe? For phones as well.  They killed actually. Now Windows 10 is the operating system for both phones. So in that case WinAppDriver will work with that. Is it open source or? So it's on github but it's not open source because I don't know if they've actually open sourced the internals of it yet. I don't believe they have. So you can download it and use it and there's some stuff on github but in general it's not fully open source or it wasn't last time I looked at it. So yeah. Last question. WinAppDriver from Microsoft so it's only with .NET works with .NET languages? No, it will work with even WinForms and WPF and WinJS and all those old ones. VBScript based like anything. Thanks. One last question and then we have something. I just missed one more question. I'm just following this Appium Studio and what is the huge difference between Appium Studio and this Appium normal version? Appium Studio are you referring to the Appium Appium client like the GUI that records stuff? Yeah, the new one Appium Studio it's controlling kind of multiple devices and all. I haven't seen it yet. I wouldn't know much about it. We have a GUI now that we release it's written in what is it, an Ember or something? It's a JavaScript thing and it runs on Linux and Mac and Windows. I'm not aware of I don't know anything about Appium. It's developed by Xperia Test. Oh, it's a paid thing. Oh, okay. So how are we just getting I don't think we should dedicate any time at an open source conference to a paid product. So I think we should sort of Oh. But feel free, XperiaTest.com maybe? I don't know. If it gets you using Appium, I guess fine. How Appium is good in automating the apps developed using AngularJS? There is a talk by Wim cells on that exact topic. Isn't there at this conference? Am I not mistaken? Oh, it's React. It's not Angular. I've done a little bit of that not in a while. I can give you a two or three year old answer and that it was sort of buggy before because there were some things in the Angular logic that Appium sort of threw off and Selenium didn't work with Appium. I don't know the latest on that specific scenario but the message board is a good place or the form is a good place to start with that. Or maybe ask Wim. He's like an expert on React. I'm sure he probably also knows something. Is he around? Oh, he's right there. That guy. I think we have reached our end. Thank you so much for inviting me. It's been a pleasure to come. Enjoy the rest of the conference.


This movie is based on a true story and I'll go ahead and let you know if you are directly affected by the financial crisis in the housing market in 2008 this really is going to hit close to home for you. I'm Brandon Keith Avery and this is just my opinion. So the big short is directed by Adam and Kay and I was really surprised when I heard he was attached to this and after I seen the film. I mean this is the same guy that wrote and directed step brothers and anchor man and the other guys. So for him to be behind such a serious film I have to give him credit where credit is due. He did an amazing job. It has a great cast with Christian Bell, Ryan Gosling, Steve Carell and Brad Pitt. They all did a fantastic job and as you know this is about the credit and the housing market and higher crash in 2008 and there can be a lot of terms that's being thrown around in this film that you don't understand and that's one of the best things that I liked about it. You know everyone doesn't understand adjustable rate mortgages and subprime loans and CDOs and synthetic CDOs and ISDAs and all this other jargon and when I throw out all of that to you off the screen it can get a little confusing but at the same time I love what Adam and Kay did. I mean he just sat there and stopped and had someone look at the camera and explain it to you whether it was a character in the film stepping out of character or just literally jumping out of the film and saying hey we have so and so and so and so celebrity and they're in a hot tub right now and they're going to explain it to you and the film would just jump over and they would stop and give it to you and a great analogy and lamest terms for you to understand and I really did love that. So anyone can see this film and enjoy it and get a full understanding of what happened in 2008 and I don't care how much you think you know about what happened I guarantee that you will learn a lot more after you see this film. I know that from myself I know that because after the movie let out everybody was in the lobby talking about it saying the same thing oh my gosh I thought I knew what was going on but now I have more insight and when that's what's going on and when the film can teach you something that you didn't know from the past and also inspire you to go home and look it up and do your own research in my opinion that's a good film and the film did that. I also like how honest the film was since this is based on the true story I was saying about 97% of it is true and the other 3% they admitted it saying okay hey this portion right here did not go down exactly like this it went down like this but we're going to tell it to you like this I don't know why they did it that way but it worked and it made me respect the film more and everyone behind it and everyone involved. Out of the 4 main actors I say the one that did the best is Christian Bell he just didn't care or at least his character did and the way he portrayed him was great I mean when he was up he was up and when he was down he was down and I really felt for him through all of that. Now towards the end of the film things did get a little repetitive but I think that's just because I wanted you to really understand what was going on and this financial crisis and you know you really do but it's not too much more that I can say bad about it it's not the best movie that I've seen in my entire life or all year but it is damn good and really entertaining and it's very insightful and informative and there's something that at least someone can take something away from. If I had to rate this film out of a 1 out of 10 I would give it a 9 out of 10 yes a 9 out of 10 but guys that's just my opinion have you seen the big short do you want to see it have I turned you off have I turned you on do you agree with me or do you disagree with me let me know in the comment section below let's get this conversation going and keep it flowing if you like the video go ahead and give me the thumbs up and if you didn't like the video that's perfectly fine just leave me a reason why in the comment section below and still give me the thumbs up subscribe to the youtube channel so you become one of my subscribers and get all the content that I have to provide in the past and in the future go ahead and look at the bottom of the screen so you can find out what else you can find me whether it's the website facebook instagram twitter and all that good stuff and guys share the video I'm not gonna get mad if you share the video but guys thank you again for tuning in and before you go don't forget that my name is brandy Keith Avery and that's just my opinion peace


Welcome to Learning English, a daily 30-minute program from the Voice of America. I'm Ashley Thompson. And I'm Dan Novak. This program is designed for English learners. So we speak a little slower, and we use words and phrases, especially written for people learning English. On today's program, you will hear stories from Dan Friedle and Dorothy Gandhi. Later, Brian Lin presents this week's Science Report.  But first, here is Dan Friedle. Vietnamese Electric Vehicle Company, Vinfast, recently announced its plans to build a $2 billion production center in southern India. The new factory is expected to produce up to 150,000 cars per year once it is completed. The project will include an opening investment of $500 million. Construction will start this year. The production centers are expected to support over 3,000 jobs in the Tamil Nadu state. The center will be close to the port city of Thutukudi. Vinfast started in 2017 and has been producing electric vehicles since 2021. It already announced plans for a factory in the southern US state of North Carolina. The factory there will cost $4 billion to complete. And vehicle production is expected to begin this year. Vinfast brought its cars to market in the US for the first time in 2023. The cars have not sold well in the US because they have received some bad reviews and there are questions about their quality. Vinfast officials, however, believe the company can succeed in the US. The company's stock is listed on the NASDAQ stock exchange and for a short time its shares were worth more than Ford and General Motors. However, by the end of 2023, the company had lost more than $1.4 billion. Vinfast said it hopes to sell its cars in 50 markets by the end of 2024. It announced a $400 million factory in Indonesia late last year. Vinfast cars will be used in Laos by Green SM, a taxi company mostly owned by Vinfast's founder. The production center is the first move by Vinfast to enter the growing Indian market. The country has one of the fastest growing electric vehicle markets in the world. India has launched a $1.3 billion plan to support electric vehicle manufacturing and use. However, of the 2.3 million EVs in use in India, most are inexpensive motorbikes, rickshaws, and scooters. Some experts wonder if there are enough Indians who have the money to purchase a costly electric car. Vinfast is part of Vin Group, which was started as an instant noodle company in Ukraine in the 1990s by Pham Nhat Vung, who is now Vietnam's richest man. I'm Dan Friedel. On Monday, Americans celebrate Martin Luther King, Jr. Day. In this next report, Dorothy Gundy tells us a bit about the life and work of the civil rights activist. Martin Luther King, Jr. was an American leader of the Civil Rights Movement in the 1960s. King is remembered for his nonviolent protests against the unequal treatment of African Americans. His actions led to equal rights laws for all people. In addition to being an activist, King was a scholar and religious leader, a pastor in the Christian Baptist Church. One of the most famous events related to him came in 1963. That year, more than 250,000 people gathered in Washington, D.C. for the march on Washington. King spoke to them on the steps of President Abraham Lincoln's memorial. He delivered a historic address known as the I Have a Dream speech.  King's actions helped pass the Civil Rights Act of 1964. The law ended the legal separation of people by race in public places. The act also banned job discrimination on the basis of race, color, religion, or national origin. King and other activists watched the president sign the law. The Civil Rights Act was important, but it did not address all kinds of racial discrimination. For example, black Americans still did not have the same voting rights as white Americans, especially in southern states. So in March of 1965, a group of activists in Alabama marched in protest of unequal voting practices. State police attacked the protesters. Some wanted to answer with violence, but King urged peaceful action instead. The events in Alabama pushed Congress to pass the Voting Rights Act. It was signed into law by President Lyndon Johnson in August of 1965. In the following years, King worked for economic equality. In April 1968, he was attending a workers' strike in Tennessee. While he was standing outside his hotel room, a sniper shot him in the face. King soon died of his wounds. The shooter was identified as a criminal who had escaped from jail. James Earl Ray was a white man who said he hated King. Ray was found guilty and sent to prison. King is remembered for many things, including his focus on nonviolent action to achieve social and political change. In 1986, the U.S. government observed the first Martin Luther King Day. Many Americans have the day off school and work. They are urged to use the time to volunteer in their communities. Martin Luther King Jr.'s life and achievements are also honored at a memorial it was dedicated in Washington, D.C. in 2011. I'm Dorothy Gundy. The American Space Agency, NASA, has postponed two moon missions that are facing development and safety issues. NASA's program to return astronauts to the moon for the first time since NASA's Apollo 17 mission in 1972 is called Artemis. The agency split the program into three parts. In 2022, Artemis-1 sent NASA's Orion spacecraft on a trip around the moon without a crew. The agency's huge space launch system, SLS Rocket, carried Orion into space. The spacecraft traveled more than 400,000 kilometers from Earth and completed a close flyby of the moon. NASA officials declared Artemis-1 a big success. The second planned trip, Artemis-2, was set for late 2024. The goal was to send Orion on the same path Artemis-1 took but with four astronauts. NASA announced last week it had set a new September 2025 target for the launch of Artemis-2. The third mission, Artemis-3, will attempt to land astronauts on the surface of the moon. NASA says the crew is expected to include the first woman and the first person of color. Artemis-3 was planned for 2025 but has now been pushed back to September 2026. NASA administrator Bill Nelson said the postpone months were necessary in order to give the agency time to deal with several ongoing problems affecting the Artemis program. Safety is our top priority, Nelson said. He added that the delays will give Artemis-1 teams more time to work through the challenges. NASA's announcement about the delays came shortly after the successful launch of a private American company's spacecraft that aimed to land on the lunar surface. That spacecraft, called Peregrine, is a moon lander built by Pennsylvania-based Astrobotic Technology. It launched January 8th aboard a Vulcan Centaur rocket built by America's United Launch Alliance, ULA. Immediately after Peregrine's launch, Astrobotic officials praised the mission as the first step to becoming the first private space vehicle to land on the moon. But shortly after the launch, a fuel leak was discovered. Astrobotic has said the spacecraft would continue on its mission while leaking fuel but faces ongoing power and propulsion problems. The company aims to keep the lander going as long as possible and to collect data from its instruments. But officials from Astrobotic have said Peregrine is no longer expected to land on the moon. Peregrine is part of NASA's Commercial Lunar Payload Services CLPS program. It aims to hand over the nation's major missions to private companies in an effort to operate at reduced costs. Peregrine and other planned missions in the CLPS program aim to land on the moon to support future Artemis activities. Another program member, Texas-based Intuitive Machines, plans to launch its Nova Sea lander to the moon next month. Astrobotic has said it also plans to send another lander called Gryphon to the moon's South Pole in late 2024. It will be carrying an exploring robot or rover called Viper. Viper is designed to search for water sources on the moon. NASA's moon landing effort has been delayed repeatedly over the past 10 years, adding billions of dollars to the cost, the Associated Press reports. Government estimates have predicted total program costs will reach $93 billion through 2025. Reuters news agency reported NASA discovered problems with the Orion spacecraft's batteries during vibration tests. Engineers have said the batteries will likely need to be replaced. Catherine Kerner is a leader at NASA's Exploration Systems Development Mission Directorate in Washington. She said in a statement all technical issues will be fully investigated with safety as NASA's top goal. We are letting the hardware talk to us so that crew safety drives our decision making. Kerner added, we will use the Artemis-2 flight test and each flight that follows to reduce risk for future moon missions. Even with the delays and ongoing concerns, she said NASA is closer than ever to establishing sustained exploration of Earth's nearest neighbor under Artemis. I'm Brian Lin. Brian Lin is here now to talk more about his science report. Thanks for joining me today, Brian. Of course, Ashley, glad to be here. In this week's report, you described some changes to NASA's moon mission plans. Would you say these announced changes, which relate to the timing of planned flights, came as a surprise? Well, on the one hand, I would say it was kind of a surprise just because only weeks ago NASA was talking about looking forward to another test flight this year of its Orion spacecraft. And this time, the flight was to include astronauts also riding aboard Orion on a distant trip around the moon, which the agency seemed very excited about. But these Artemis missions have already faced delays, and NASA says these are necessary to resolve remaining issues to ensure safe and successful flights. Has NASA identified specific issues that led them to announce the latest mission postponements? The agency did say it identified some specific problems related to the operation of the Orion spacecraft. These include a battery issue, as well as difficulties with electronic elements that control airflow and temperature. So these aren't seen as major problems, but again, NASA officials are saying they just need more time to examine the difficulties and carry out more testing. And the earlier timelines set for the moon missions would simply not give engineers enough time to deal with these issues. Okay, thanks again for joining me, Brian. You're welcome. Thank you, Ashley. Welcome to the lesson of the day on the Learning English podcast. My name is Andrew Smith. And my name is Jill Robbins. Thanks for joining us. Today's lesson will help you learn more about the English you hear in our video series, Let's Learn English. The series shows Anna Matteo in her work and life in Washington, D.C. Here's Anna introducing herself. My name is Anna Matteo. Today we're going to look at lesson nine from level two of the series. Anna and her friend Ashley talk about their pets. And they talk about things they could have or should have done. Pets are animals that live with families, such as dogs or cats. Ashley's pet is a dog named Dublin. But Anna's pet is, well, it's very unusual. That's because Anna's pet is a rock. It's true. Anna has a pet rock. Of course, this is a kind of joke. Anna makes her rock look like it has eyes and hair. And her rock wins a contest for one-of-a-kind pets. One-of-a-kind means unique, which means there are no others the same as it. We spell unique, U-N-I-Q-U-E. Now, let's listen to Anna tell Ashley how she won a contest with her pet rock. And our lesson will focus on the phrases should have and could have. Listen for these phrases and we will explain more after you listen. But Anna, tell me, how did you win a pet contest without a pet? Okay, the closest thing I have is my pet rock. I know it's silly, but I've had it since I was a little girl. So for a joke, I brought it to the fair. But then I was invited to enter the one-of-a-kind pet contest. And I won. Anna, only you could have won a pet contest with a pet rock. I should have brought Dublin. He would have won a contest. It's not very easy to win one of these. Does he have a costume? They had a costume contest. You should have seen this little girl. She and her dog wore matching princess costumes. Dublin doesn't wear costumes. Does he know any tricks? Come this way. Now, watch this. One more. You caught it. You killed it. Good dog. Ashley, he could have won the best catch contest. Oh, good boy. Ashley, pets are fun, aren't they? Yes. And they become part of your family. Did you hear the examples with should have, could have, or would have? We can say should to give advice, as in this example. You should try to speak English. And we say should have plus the past participle of the verb. When we talk about actions in the past, we wish had been different. Ashley said, I should have brought Dublin. He would have won a contest. Ashley didn't bring Dublin to the contest, but she wishes she had brought him. When we talk about the past, but wish it had been different, or think about the past in a way that is different than what really happened. We say should have, or could have, or would have before the past participle of the verb. But native speakers usually shorten these with contractions. So it sounds like this. Should have, could have, would have. And sometimes native speakers reduce or shorten the pronunciation even more. So it sounds like this. Should have, could have, would have. Oh, I wish my past had been different. Should have, would have, could have. I should have gone. I would have won. I could have seen my friends. When you hear someone say should have, would have, could have, it's often because the person is saying it's not good to look back with regrets. I know, but sometimes I wish I could have done something different. Well, we all probably wish we could have done something different in the past. But now let's talk a little bit about owning a pet. After playing with Ashley's dog, Anna thinks she wants to own one. Ashley, I think I want a dog. No, I know I want a dog. It's a big responsibility. You may want to spend time with a dog first. Responsibility is a noun. The plural of this noun is responsibilities. And the word responsible is the adjective. And responsibly is the adverb. We often use the preposition for after the adjective responsible. Jill, what are some of the things you are responsible for at your home? Well, I shop for the food and I cook quite a lot. And I also feed the dog and take the dog for walks and give the dog baths. That's a lot of responsibility, isn't it? Well, it sounds like you do have a lot of responsibilities or things you are responsible for. And, as Ashley says, owning a pet can be a big responsibility. When you own something, that means it is yours. It belongs to you. The state of owning something is called ownership. Jill, you have a dog. What responsibilities come with pet ownership? And I'd like to say that I think my dog thinks she owns me. Well, first there are the basics. You have to make sure your pet has enough food and water and stays healthy. Sometimes you need to take your pet to the veterinarian, which means an animal doctor. And you have to protect your pet from danger, such as other animals or getting hit by a car. And then, especially for pets like dogs and cats, you should be nice to them and try to make them happy by petting them and speaking to them in a nice voice. I've heard you speaking in a very sweet way to your dog, Jill. And I noticed you used the verb pet. So that means we pet our pets. That's right. To pet means to gently touch and move your hand over an animal's hair or fur. Most dogs love to be petted. But you have to be careful because not all pets like to be petted. There are some dogs and cats that don't like to be touched or that only want their owner to touch them. We can say that those animals are very touchy. If someone or some animal is touchy, that means they are very sensitive and can become upset or angry very easily. My dog was like that when we first got her. That's because she was a rescue. A dog who had other owners who didn't want her or could no longer keep her. Yes, we talk about animals being rescued when someone new takes them into their home. It takes some time for the animals to adjust to the new home. So don't touch a touchy pet. But please, pet the pets that want to be touched. Isn't English fun? We hope our lesson of the day has been fun for you. And we invite you to write to us about any pets that your family and friends have. And do your pets like to be petted? I used to have a turtle. I don't think it really cared if I petted it. Probably not. You can email us at learningenglishatvoanews.com And remember that you can also find us on YouTube, Instagram and Facebook. Thanks for listening. I'm Jill Robbins. And I'm Andrew Smith. And that's our program for today. Join us again tomorrow to keep learning English through stories from around the world. I'm Ashley Thompson.


Relations and formulas associated with risk, we have relative risk reduction. So relative risk reduction is the proportion of risk that's reduced and can be attributed to the intervention, comparing that to the control. So to calculate relative risk reduction, we're going to do 1 minus our relative risk, which we talked about earlier. Here's an example of relative risk reduction. If 2% of the patients receive flu shots, develop the flu, while 8% of unvaccinated patients develop the flu. So to calculate our relative risk reduction, we're going to do 1 minus, and then our relative risk of 2% develop the flu with the shot, and then 8% are unvaccinated and develop the flu. Calculating that out, we get 1 minus 0.25, and that equals 0.75. So our relative risk reduction in this case is 0.75. The attributable risk is the difference in risk between exposed groups and unexposed groups. So our calculation of our attributable risk is A over A plus B minus C over C plus D. So let's add this into a calculation. So we're going to say that risk of lung cancer in smokers is 21%, and risk in non-smokers is 1%. So we can calculate our attributable risk as 21% minus our non-smokers being 1%. That equals to 20. So our attributable risk to smoking and lung cancer is 20%. We can make that into a percentage by adding in this calculation that our relative risk minus 1 times 100 is equal to our attributable risk percentage. Finally, the absolute risk reduction. This is the difference in risks, not a proportion, but a difference in risks that's attributed to the intervention as compared to the control. So that formula is C over C plus D minus A over A plus B. This is very similar to attributable risk, so you need to make sure you're very aware of the different formulas and the different ways that this formula is set up so that you can get these questions answered really quickly and easily. So let's take an example here, 8% of the people receive a placebo vaccine will develop the flu, and we'll compare that to 2% of the people who receive the flu vaccine. So to be able to do that, our attributable risk reduction, we're going to take that 8%, and we're going to subtract the 2% that developed the flu. That gives us 6%, or 0.06 is our attributable risk reduction of the flu shot to developing the flu. Furthermore, the number needed to treat is the number of patients who need to be treated for one patient to benefit. So our calculation here is going to use the attributable risk reduction that we discussed earlier, and we're going to do 1 over our attributable risk reduction to get the correct answer for our number needed to treat. Obviously, a number needed to treat that is high means that this specific treatment is not going to be very effective, because if we have to treat 10 patients before one of them is actually receiving the benefits, then there's 9 patients that are not receiving any benefits from that treatment. Number needed to harm, however, is different in that so many patients need to be exposed to a risk factor before one can be harmed. So our calculation of number needed to be harmed, or number needed to harm, is calculated as 1 divided by the attributable risk. So we're going to take our previous calculation we've already discussed and learned, and apply this to number needed to harm. Finally, our case fatality rate is known as the percentage of deaths that occur among those with disease. So we can take that and calculate out the number of deaths divided by the number of cases, multiply that times 100, and we get our percentage of our case fatality rate. So in this example, if we have 10 patients that have meningitis and 4 of them die, we do 4 divided by 10, multiply that times 100, and that will give us our percentage of a case fatality rate of 40%. And this is going to be over a certain period of time. Let's compare and contrast.


BBB, somebody says is Bed Bath and Beyond. I wish, I wish that would be much better if we were talking about $1.7 trillion for Bed Bath and Beyond. Bed Bath and Beyond would allocate $1.7 trillion in the economy better than the Biden administration for that matter, any political administration could do. All right, you were probably talking about ridiculous.  He basically told the Sunday shows on TV that he will, he's backing away, he's not negotiating anymore. He was playing tough, he was negotiating, he's told Biden that they could probably cut a deal and Sunday he said, now there's no deal to be cut. I think he basically realizes that West Virginia, the state, which he is a senator for, does not support another $1.7 trillion of spending, particularly not of the kind of spending because 1.7 is cheating. It's much, much, much, much more than 1.7 because what the bill is full of is, for example, child tax credit for one year. But we all know that those will be extended but if they only say it's one year, they only quote value it for one year. So only one year of it goes into the 1.7 trillion. But if you assume it's a perpetuity and it's there forever, well, it's much more than 1.7 trillion. And then add to that all the different benefits that expanded and new benefits that all in the bill have sunsets, not because anybody believed that they were sunset, but because in order to get the deal somewhat balanced, revenue and expenses and not to make it be a gazillion dollars, just 1.7 trillion, 1.7 trillion these days is small, is nothing. They have these sunsets, but they know that once you establish a social program, in particular, once you establish a social program that benefits the middle class, it's there forever. Nobody is going to not extend a social program that the middle class benefits from. Just ain't happening. So this bill is actually many trillions. And what Manchin is, I think what Manchin is basically upset at is they're not treating him nicely. I mean, he said today that people in the White House are just not nice to him. I mean, it's not that Manchin is some principled advocate for capitalism. It's not that Manchin really objects to the expansion and growth of social programs. It really is the case that for Manchin, this is just a matter of, he doesn't want to go to West Virginia and say, he increased the deficit by 1.7 trillion. He doesn't want to have to go to West Virginia and say he increased taxes. He's worried about elections as he should be. West Virginia is a very, very Republican place and he runs as a Democrat. And he's, I think the easiest thing for Manchin would be to just convert to the Republican Party and now it would save him everything he'd be, then he'd be elected as a Republican and he'd win every time and he could vote whatever he wants.  It's not that he has beliefs. But in this case, what the Biden administration with a 50-50 Senate is trying to do is so outrageous, so ridiculous, so off the charts, so dishonest that somebody like Manchin for purely political reason is calling them on it. Now I will guarantee you that there are probably a dozen Democrats, Democratic senators, that are sighing a sigh of relief because they don't want to vote for this bill. They can't not vote for it probably, but they don't want to be in a position one way or the other to vote or not to vote on it. They are loving the fact that Manchin is getting all the blame for walking away from it. And they don't have to engage in it. All these so-called centrist Democrats who don't want to have to face the constituency having voted for a loser bill like this bill that expands government, that expands government spending that doesn't pay for it, that expands the deficit, during inflation expands government spending by giving people checks, the equivalence of giving people checks that is just inflationary as well in spite of what some economists claim, pseudo-economists claim. Oh Seth says, Manchin, maybe the least principal politician in the history of politics. Oh no, no, no, no. They are far more less principal politicians than Manchin. I mean, God, there's no end. There's no end. Manchin is just in this tricky position of being in a 50-50 Senate, where he is the swing vote, where he has to get elected in West Virginia. I mean, Trump was less principal than Manchin. I promised to hold no punches on Trump so he will be mentioned frequently in spite of the fact that you don't like it. Some of you don't like it anyway. Some of you keep coming back. So I think what's gonna happen here is that the Democrats are gonna go back, structure a new bill that'll be negotiated on. Some of the other centrist Democrats are gonna have to intervene because they won't like it too much. And they'll pass something next year, probably. Next year is difficult because it's re-election, right? It's an election year. So a lot of these centrist Democrats won't want to vote for it. There's a good possibility nothing gets passed before 2022. And there's a good chance that Democrats lose both the House and the Senate in 2022, which is my hope. My hope, yes. Thank you for listening or watching the Iran book show. If you'd like to support the show, we make it as easy as possible for you to trade with me. You get value from listening. You get value from watching. Show your appreciation. You can do that by going to iranbookshow.com slash support, by going to Patreon, subscribe star, locals, and just making a appropriate contribution on any one of those channels. Also, if you'd like to see the Iran book show grow, please consider sharing our content and of course, subscribe. Press that little bell button right down there on YouTube so that you get an announcement when we go live. And for those of you who are already subscribers and those of you who are already supporters of the show, thank you. I very much appreciate it.