 All right, so I'm sure you'll all be happy to hear that this is a sponsored talk also known as a thinly disguised marketing pitch Okay, so if you would like to leave the room at this point like this gentleman There's a much better talk on numpy. I just make your excuses. We won't be offended. We totally understand But in order to expiate our own guilt and make this as good for you as possible We'll promise several things first of all everything We're gonna show you today is entirely free and will always be free So it's just out there for you guys and then secondly we're gonna do the entire presentation through the medium of Interpretive dance Not really it will instead be through the medium of a small sketch show So we'll introduce the cast of characters. I am an Enthusiastic teacher brimming with excitement at trying to teach Python skills and programming skills to bright students And I'm I'm a very smart but totally new programming students Come a little bit this way Giles. You'll be in video range that way Okay So all right Giles Let's get Python installed and we can start learning to program if you just pop on over to the Python website Download and install Python on your laptop. Okay. I think I've got it installed. So how do I start programming? Right. Okay. So just to open up, you know a terminal and type Python and you'll get the Python prompt No, no, it says command not found so listen jazz when When you when you when you downloaded the the DMG Mac install thing you definitely did you drag that to the application? No, no, I'm a PC. I'm not on a Mac Of course he is all the students have got PCs right. Okay. So Google's frantically Right, I think if you have managed to install Python correctly It says here that you have to add Python to the path because although that is an option in the Python install of these days Which is wonderful That's unticked by default. So what you need to do jazz is just add the Python's directories to the path Environment variable, you know, I have no idea what you just said there. Okay. All right. Okay Installs Windows onto virtual machine tries to get XP working Right, it looks like what you need to do is click the start button Then you go to control Then you go to system settings then you go to advanced settings Yes, you find the entry called path, right, which is a long string of text characters and you need to add this Okay, be kept like so you have to type this right C colon backslash Python 3 4 backslash Semicolon C colon backslash Python 3 4 backslash Scripts Semicolon and then the rest of the text was already there. But Harry you just said 3 4 right? Yeah 3 4. Yeah No, but my friend Jane said that 2.7 is the one that everyone uses the 3.4 So some fancy thing that nobody actually uses. So that's what I downloaded installs to 7 instead Yeah, okay. All right. Yes. No, we do need to use 3 4 and I'll cue a massive rewind as we go back to the start of this story And do it again except this time with Python 3 4 Well, of course that then introduces the fun of installing two different versions of Python on the same system And which you might be able to get working on Linux, but on a PC Finding one executable is gonna be Python 3 and Python as we all know is not necessarily the easiest But let's suppose that we get more or less to the end of that We've got the right version of Python installed haven't we Giles? I hope so good So let's try some programming so in your Python prompt Will you type for me type exactly this important that we have to have a syntax right print open brackets quote Hello world close quote close brackets. All right, and if you do that, it should actually print something out to the screen Yeah, it prints something out. What does it say? It says syntax error Right, right. Okay. Okay. All right Well, why don't we just come over there and take a look over your shoulder And then maybe I can see what you've typed and and I'll be able to help But you kind of forgot we're in totally different countries. Oh, that's right. We're in different countries I can't go and look over your shoulder boy. This makes debugging your issues a lot harder Yeah, so Harry. Um, yeah, actually no longer a PC user I've suddenly become a Mac user and actually in the interest of gender balance. I'm now a lady called Jals Lena And I've also been told that because I'm doing this astrophysics stuff. I need this external package called sci-pi sippy something like that Okay, right. Well now we've got the nightmare of trying to get pip installs and compilers working But at least Jals is on a unix platform a nice Mac and they just work right? So I should have much fewer issues getting Python working than I do on a PC, right? Yeah, kind of Kinda what why why does what what's wrong? Well, I Install both Python 2 and Python 3 on the Mac as well And but unfortunately they didn't work and then one of my friends said this thing called homebrew was better So install Python with that and now I've got three Python interpreters when I run pip to pip install stuff I don't know which version of Python it's installing to but it's not the one I want And when I run pip 3 I get loads of permission errors because I read on stack overflow You should always run it with pseudo so I did that once now everything's owned by route And I can't install anything. I can't even run anything Okay, okay. All right. I'm sure we can sort this all out actually actually because there is a Python 3 4 solution to this There's the insure pip module, isn't it which should be able to bootstrap and download the pip for you And there's the the VM module for you so that should should work. I think that's probably foolproof isn't it? So let's go Well, it might be but now I've magically transformed again I'm actually a Debian user and insure But it sure doesn't work because the package maintainers have decided the required VM module needs to be in a separate package It's not installed by default. That doesn't work at all. I've been reading absolutely fascinating mailing list discussion all about this stuff. I Envy the dead if only there was a better way So now we rewind Right back to the beginning of the story Programming so Harry. I've heard about this website called Python anywhere Which means I apparently don't have to install Python at all. Should we try that? Okay, I guess. Um, why don't I sign up for an account now? Me too. All right. This is the bit where the demo gods will be against us or not Wow Python anywhere look at its beautiful sculler scheme and look at this the logo is a little snake But it's made out of Python interpreter Chevron. That is so clever Again, I don't have an account but I can sign up here. That's nice. What's this? Hmm pricing plans These all cost money. No, no, no, I don't think I'm paying for anything beginner account like everyone does Username. I know what this Harry rocks. Fine email Harry at Okay, great. Thank you Yes, yes, all GR. That's what it is Portuguese keyboard man. I've never touched this laptop. Okay password. I Agree to the terms and conditions and I will read them in detail Let's have a look Hooray, okay. Well, it looks like I've been signed up for an account. This is a sure is a helpful friendly welcome screen What do we have to say next? Okay, so Charles, how do we start a Python console? Well, there's this very large thing in front of me that says consoles and there's a thing That says Python. Maybe I should click one of those. Okay. Yeah, I see them too. Oh, look at that They have I Python Charles. Why don't you start an I Python 3.4 console? Okay? Just why would the scroll go backwards? All right, fine. Okay. Good. Um, so you've got I Python in front of you now. I think I do. All right, great So now will you type for me? Print open brackets open quotes. Hello world close quotes close brackets and press enter And now the Python should print something to the screen for you. What is it printed? Yeah, it prints something again. Oh great. What does it say invalid syntax? What shall we do now? Wait, I've heard that Python anywhere has some education features If you navigate over to the accounts page I think you might be able to specify me as your teacher and then I'll be able to help you interactively Well, let's try that. It's always a bad idea learning a programming language when you're actually tethered to your Android cell phone Okay, what was your username Harry? It is Harry rocks. I Use that everyone How do I spell that ha? Oh Okay, I've done that. Okay. Good. Well, let's see if that's registered in the system Oh, look at this now. It's telling me that I'm logged in as Harry rocks Currently viewing Harry rocks, but I can switch to viewing Giles the student. Let's have a look at this. Oh And now I can see Giles has already opened some consoles I wonder which one of these is the console that he's got a problem with look at that I can just open it up. I can see exactly what Giles has been doing There you go. You told me to type exactly what you said. So that's what I did All right, what happens next? It's a shame that we have to keep skipping to the script and then people read it guys Just close your eyes for a minute Well what I couldn't print it out Okay, right fine All right, so just I would like to help you fix this Okay, I mean I could explain slowly to you exactly how to print that to do this But why don't I just demonstrate it to you instead? So I can type into the console and we go open brackets Quotes as if I'm gonna find some quotes on this Yes Hello Close quotes Look at that child. Oh, I see now it all becomes clear. You're a python. Wow. Why don't you give that a go for yourself? You can press the up arrow to repeat the previous command and then edit it slightly. Let's try that Yeah, I could type Amazing. Don't you think the colors in this console are pretty as well, John? Yes, they are Congratulations But what about that sci-fi thing that I saw that needs to use all right to install that or something God installing sci-fi I don't know how that's gonna happen. I mean, I remember doing this on my own laptop You had to get a compiler. There's no way that this pipeline where things gonna be able to compile things We're gonna have to like download a wheel. I don't know what platform it is No, I don't think maybe we should just leave the sci-fi thing for it for another time Well, all the sci-fi scripts I've seen to start with this magic word import sci-fi maybe we could try that Maybe you could try typing it as well because my internet connection just disappeared Yeah, okay I mean, I know it does say that on the instruction for the thing is you have to install these things first So like there's no this doesn't work. You have to first you have to pip install it Okay Yep, looks like it's all there. Wow sci-fi installed by default all of those installation hassles that I thought I was gonna Have to deal with a just magically solve for me straight away. Thanks, Python anywhere Okay, close your eyes again everyone No, you're not Right, okay. All right. Good. So just now let's do some assignments. Yeah, I'm gonna give you an assignment Okay, so do we just use the same system as we did before we start using Python anyway You just email me the assignments But you just need to remember to tell me exactly where to save the save the files Because you have all the problems we had when I tried doing Python my assignments They just didn't work because you didn't tell me where to install it. Yeah. Yeah, okay. That will work. I mean, yeah Yeah, okay, and then when I've completed the assignment, I'll do what I usually do So I'll take a screenshot. I'll put that in a PDF attached that to a word document then email it to you Yeah, well the important thing is that the process works Yeah, it does well Giles we could do that but actually I know that Python anywhere has education features and So I'm gonna take a look at their documentation and see if there's anything they can do to help with this What I love about this website is it's got such powerful servers and that it doesn't matter how slow the internet connection is It responds like the lightning So what are we doing here five minutes we've got where are we on our little story? I'm reading the documentation and I'm finding out that oh, yes magically because I'm a teacher I can actually access all of Giles's files directly. So if I was to open up one of our little editors here And I can go and start a new file, which I'm gonna call week three dot pie And then okay Oh syntax highlighting so pretty we can save that good. Why is he unhappy? It's because there's no pass over here Look at that Pyflake's checks built into the editor so useful for beginners Start a bash console goodness me so I don't have just I Python consoles I can also start a full bash Linux environment and everything is in here God where is the backslash? And a slash home I've got my own home directory and I can see Giles is home directory So if I copy the week three not pie to Maybe that's gonna magically appear in Giles's home directory Let's go and have a look because I can actually see all Giles's files and folders So here I am being carry switched to being Giles I go to his files directory and look at that week three dog pie has magically appeared in Giles's home directory And now you go on and try and solve the problem Okay, yeah, why don't you carry on and and do that and while I start thinking about next week's assignment because next week we have to do web development and I mean like has lovely Frameworks in Python isn't there but I also want to get my student to deploy his code on the internet If you thought they're getting Python installed on a laptop on a cross multiple platforms was quite difficult Just you try getting what was done. Oh You've solved the problem Okay, but um what I'm I as I was saying Yeah, God web development headaches had to deal with this a lot I'm starting to think about how where am I gonna get a virtual machine from and I'm gonna have to set up user Accounts on there and I need him to do the SSH key gen command and set up an SSH key with a parse So you do SSH login to the server and then we're gonna have to install Nginx or Apache certainly not Apache engine X engine X But then we need a front-end web server So we're gonna have to have junior unicorn and get his code I've got he's got to get his code on there So I'm gonna have to FTP it up and explain how FTP works and then we've got the code on there We're gonna have to install stuff probably virtual in so I'm gonna have to explain virtual lens I think I'm just gonna do it for because I mean it's not gonna be able to edit all these config files anyway, so Yeah, all right I will do the editing of the config files on the server as long as I can Involve Giles in the process and then he'll probably be able to see his web out Oh God, and then I've got to make sure it port 80 years open on the firewall and then anybody here in Amazon user Okay. Yeah, what oh my god Okay, well that was it. That's pretty much a tour of Python anywhere. I hope it wasn't too tedious The that was pretty much all of our features. There's a few other things you can do you can run scheduled tasks You can We've just started Doing education stuff, so we're really interested in getting new people on board It's all free and We've had maybe a couple of dozen teachers on there now So in students it might be a hundred or more. Yeah, just over a hundred Okay, so like we've got about a couple of dozen teachers on there running classes We've got a couple hundred or a hundred students They're all using it But we're really interested in getting new people on there getting some feedback getting you guys to suggest new things What should I say? There are a few limitations, right? This is not the magical solution to everything One of the first things is this is a server-based computing environment all the Python here runs on our servers So they don't have access to any kind of graphics or display So I mean you can build a web application You can have a lovely text console with colors, but you can't do turtle and you can't do pie game But for like maybe slightly more advanced students It's great to be able to do web development easily and we can also recommend our frenemies at Trinket.io who've built a sort of browser-based Python sort of sharing platform and their Python runs in as in a sort of JavaScript emulator and they do support turtle and they're thinking about supporting pie game. Good luck to them But I mean Trinket is great Like it's really easy to share a little snippet and you can have pictures and stuff and it makes it really easy to Share it between students and things like that But so that's where we are we've got you know We've got our teachers on board your students We've got people doing screen sharing you can share consoles like this the teacher can have a demo console They share with their students they can share read only you can exchange files like we sort of demoed all of these sorts of things But we're really looking for people to come and have more suggestions We're also really keen to make sure this is a success for our first few teachers So we're always happy to go the extra mile to do some manual steps If you're like oh, I need to bulk register a hundred users will do that for you if you're like Oh, please pre-prepare all of their home folders with this get hub check out will do that for you And and that's about it really So are there yeah, so unless there are any questions comments feedback suggestions right away. That's what we'd like to take Hello, there you go. There's a plant over there. What about you sir? Yeah, so so the logistics was one of the things that I thought about So I have run like 50 students And I mean having students with like weird usernames It would be better if I know who they are Yeah, yeah, yeah So so I use like Like student response systems which are online and I do the registration for them there and give them their password. Yeah But but so so you said that that wasn't inside now, but you sort of could do a worker on something Yeah, we so we've when we bulk create accounts either if you give us a load of email addresses will generate a username based on their You know the before the app bit from their email address or we can generate randomized usernames. She probably don't want Those are the two options currently and we can also go like your username and one your username to So so do you do any Authentication stuff because I mean No, I mean, I mean but that external authentication. Oh, right. Yeah, we haven't done that But that's something that's on the agenda for pretty soon Like third-party authentication thing you want to do. Yeah, maybe use their Google accounts or whatever. Yeah Yeah, yeah, we're looking into that so that might actually happen soon, but I don't want to promise right here Thanks for the suggestion. Hi, Harry. Hello, Giles. That was a really entertaining talk So I'm Nicholas and I work at Snot Grove comprehensive school in school and thought and we're on XP with IE six Can you help me? Yeah Yes, no, no, no Yeah, that's a good point I mean like a lot of schools have got you know One of the advantages here is that you're going to be able to run Python without installing software on school laptops And you know, maybe school IT systems are a bit conservative on the other hand if they're that conservative They're stuck on IE six, you know, maybe we really can't help that much, but it's worth a try So we support more things than we thought A lot of schools are starting to give out Chromebooks to their students and then like they're like Oh, one of these shine shiny, but no Python. So it's one solution for that as well Okay, any else comments reactions suggestions on how to improve the talk Yeah, brilliant. Yeah Yeah, so so Another way that that I use Python is during lectures. I have like live demos. Yeah, and Currently we have this web system, which is actually also using sculpt wet that tinker is using. Yeah And that enables me to sort of just give my students URL. Yeah, they get that They don't have to log in or anything. They can just follow along. Is that possible with Python anywhere? Anonymous sort of Yes, yes, yes, yeah We have we support like so the the console sharing feature where a teacher can see their students is actually Grown out of a previous feature that we built with so anyone can share a console with anyone else on Python anywhere And we've also got the ability to share it with anonymous strangers So if you fill in an email address, we'll send someone an email with a unique URL to that console And then they can go in on the internet without logging in and they can see exactly what you're typing into that shell And so you can send that you know, you can send that email to a group And so you can send that to a mailing list and all we could Yeah Yeah, everyone see the same one, but you can share it read only so it's a demo only thing Well so that console that Right. Yeah, so that console is like a single console for the whole group So then you've got the sort of read-only settings if you did have your students all registered And you can like log them all in and then switch read only on and off for one of them at a time If you want to hand over control to one student things like that Are you thinking that it would be nice to be able to share things with students? And then they can sort of fork it and go off on their own. Yeah. All right. We'll have to think about how to do that Okay. Yeah, good good suggestion Yeah, yeah Yeah, all right, I think there's ways and ways to do that, but we could probably make it slicker. Yeah Good suggestion. Thank you very much. Uh-huh Yeah, it looks really great and there's lots of stuff for free and I can see it being really brilliant But obviously you're a company that makes money. So what are the paid options? What do you get for them? And so who who's the target demographic for that? Because because I might be interested you see Oh, right. Well, if he's interested, so don't don't do the evil laugh. So good question, obviously What basically you are the product? No, it's a it's a freemium model So we just hope to get you know, like so if we have a sort of 10% ratio of users who end up needing the paying features Then we're great. So the education deal is like we get a bunch of students used to Python anywhere So later on when they want to do some more professional programming They at least think of us as an option and then they like, you know So at the moment all the free features is you can start up to two consoles at once So you have to close one if you need more than two you can have 500 megs of storage You can store one web application Which is at your username dot Python anywhere dot com and that's free And but the things you have to pay for is like do you want more than two consoles? Do you want a greater CPU quota? So we start throttling people after it's the equivalent of like What's the CPU quota for users 500? 100 CPU seconds. So if you max out the CPU for a minute and a half we then start throttling it I mean not not that aggressively But you know like if you're really going to use it for serious number crunching You might want to think about paying for an account. There are a lot of people who don't and we still do run their jobs for them and Finally if you want to do any web hosting on your own domains then we ask you to pay for that So if you want to get away from the Python anywhere branding, that's kind of the line Alright, and it's out of time. It's time for lunch. So thanks very much Harry and Giles