Coding 101 49 (Transcript)
Father Robert Ballacer: Happy New Year and welcome to a brand new edition of Coding 101. This time we're bringing you the PHP.
Netcasts you love, from people you trust. This is TWiT. Bandwidth for Coding 101 is provided by CacheFly at cachefly.com. This episode of Coding 101 is brought to you by Squarespace. Creating and editing your website is easier than ever using their redesigned interface. Squarespace 7, which includes integrations with getty images and Google apps. New templates and more! Try the new Squarespace 7 at squarespace.com and enter offer code: C101 at checkout to get 10% off. And by lynda.com. Invest in yourself for 2015 lynda.com has thousands of courses to help you learn new tech, business, and creative skills. For a free 10 day trial visit lynda.com/c101. That's lynda.com/c101.
Fr. Robert: Welcome to Coding 101, it's the TWiT show where we let you into the wonderful world of the Code Monkey. I'm Father Robert Ballacer and this good looking man over here is Patrick Delahanty.
Patrick Delahanty: Yes, glad to be back!
Fr. Robert: You were here for Perl and you Perl'd us all up.
Patrick: And then I told my life's story in episode 42.
Fr. Robert: That's right. So you've been a big part of Coding 101. We've changed formats a little bit because people said, we'd like to see project-based stuff. We want to see more stuff that will help us in our actual programming lives. So you're going to give us a 2 episode segment on PHP.
Patrick: Yeah, the first one we'll go over the basics and then the next episode we'll get into a little project-
Fr. Robert: Some of the fun stuff.
Fr. Robert: Now the nice thing about PHP is I actually learned it without ever taking any sort of class, without ever looking at anything. Just looking at PHP code and going oh okay I kind of recognize that. That looks kind of like a loop, oh that's an index. So it's one of those things where you can really get in and start hammering at it until it does what you're wanting it to.
Patrick: Yeah coming from a Perl background, PHP was so easy because a lot of it was the same. It was like, oh that's how it works, that's easy I can do that.
Fr. Robert: Fantastic, before we get into that do you mind if we take some time to talk about a few of the things that I think are going on around the world of programming that I think our audience may be interested in?
Patrick: Yeah, absolutely.
Fr. Robert: The first one is about a business in New York called Andella. This firm is doing something very interesting, they've gone to Nigeria and they're teaching Nigerians how to program. Now there are some people who are a little suspicious here. Essentially what they've done is created a four month training program, Nigerians come in they get tested for their aptitude and if they're a good fit for programming, they'll go ahead and train them and after those four months, they'll be able to place them as a contractor with a US business. Patrick, how does that strike you?
Patrick: Well teaching people programming is always a good thing and these are skills that they can learn and use the rest of their lives and it sure beats going out and mining tin.
Fr. Robert: It sure does. Now there are people going out and crying foul here. They're saying this is just exploitation and I get it. Because you have to pay a coder in Nigeria a whole lot less than you do in even India and definitely less in the US but here's the thing, I looked at the entire interview they had with the founders of this company and I like their philosophy. Essentially what they said was, programming the skill for programming- The aptitude for coding is not limited to the developed world, it's all about the way that someone thinks and that's equally distributed throughout the world's population. So what they're doing is going to Nigeria and finding those people who have the aptitude for programming and giving them marketable skills.
Patrick: Yeah, there's nothing wrong with that.
Fr. Robert: There's absolutely nothing wrong with that. This story actually holds a place close to my own heart because this is essentially what I did in Bolivia and the south side of Milwaukee. It's the same idea. In Milwaukee we actually reached out to the south side so gang members. And we brought gang members into a program, it was a four month program and we taught them to do web development so we taught them html and PHP. Back then it was Java and just starting to do Ruby. But what I found was it wasn't necessarily the skills per se, because if they were in the program, they had the ability to have the skills it was opening a new world to people who didn't know that this kind of professional life was in the cards for them.
Patrick: Yeah, and these people may be doing something on a contract basis for a corporation now but later on they may make the next flappy bird.
Fr. Robert: Which, by the way, was made by a developer in Vietnam so you never know where the next great idea is going to come from. That's one of the wonderful things about this new world that we have, powered by the internet, which is ideas don't have to come from a monolithic corporation, they don't have to come from a government. The next great idea may come from a kid in his bedroom who learned from a couple of books or come from an online course and said hey why don't we do this?
Patrick: Yeah a lot of people may struggle with school, they may struggle with their real world job but then they do something on the side and make that into a career and maybe that's what these people can do as well.
Fr. Robert: Right, we do have one public service announcement. I know this is the new year so we're here on the 8th of January but we had to prerecord this at the end of 2014 because of CES and the break and all of that other stuff. I'm not supposed to tell you that so please don't tell Leo that I just told you that we're going back in time because I'd get in trouble. But there is a public service announcement in that, if you have not yet updated your GET, do it. There was a critical vulnerability that was found in the GET Hub client and the GET Hub service so essentially anything that touches GET, that's the code repository that we actually use here for Coding 101 you're going to have to update it. The update is available for you right now. This is a remote code arbitrary command execution exploit which essentially means that somebody could make your computer run things that it's not supposed to run.
Patrick: Let me update that right now.
Fr. Robert: Yeah, go ahead and upgrade your GET. What they figured out was that somebody could arbitrarily create a malformed GET tree and overwrite it's own config. file. And as we know, whenever you do that in memory, if you could overwrite the entire thing and overflow the buffer, you know spill out into execution space in the memory and then they could remotely place instruction that would open your computer to hacks. So get that replaced. When we come back we're going to go ahead and dive into PHP. You wanted it so we're going to give it to you. But before we do that we're going to take a moment to talk about the first sponsor of the first episode of Coding 101 in 2015. You know them, you love them, it's the easiest way to get your portfolio online, it's Squarespace. Now what is Squarespace? Squarespace is where you go if you've got a project, if you've got a website, if you've got photos that you want the world to see. Squarespace recently launched the latest version of their platform, Squarespace 7. The completely redesigned interface that makes it even easier to create your own professional website or online portfolio. Here's why you're going to love Squarespace. They've added a bunch of new features in 7 including my personal favorite, live editing on one screen. Now you know what it's like to reprogram your website. You make a change, save and preview it. You go back and forth until you find it just right. You don't have to do that in Squarespace 7 because they give you a live view. It will show you in real time what the changes you're making will do to your layout. Squarespace also gives you 14 new designs giving you now over 30 to choose from and Cover Pages is new with Squarespace 7, which lets you choose from 10 new templates. You can add these to any existing Squarespace site, which means it's perfect for creating quick landing pages. Squarespace 7 also gives you access to getty images right in the interface. For just $10 each, you can pick from thousands of high quality professional getty images. Add it to your assets and never worry about licensing again. Now, the developer platform is used by some of the world's top digital agencies and if you're a developer you can customize your site exactly the way that you want. That's one of the things I love about Squarespace. Yeah, it's easy to use but it also gives you the hook if you're a professional who wants to tweak it just a little bit more. Speaking of tweaking it more, eCommerce is now available for all subscription plan levels. You can easily add a store front to any site and instantly accept payments. And it includes GoogleDoc integration, which works with Gmail, GoogleDocs, Sheets, Drive, and Calendar. Plus Squarespace 7 can easily link branded email accounts to your domain so you never have to worry about generic emails again. Not only that, but Squarespace is going to give you a way to control your site on the go with mobile apps that let you check Metrics. You can look at your traffic and see how content is performing, which is an incredibly powerful tool if you are a content creator. All of this would be worthless if it was so expensive that you couldn't afford it. But of course, that's not Squarespace's groove. It starts at just $8/month and Squarespace takes care of the hosting so you don't have to worry about it. Plus, if you sign up for the entire year, Squarespace will give you a free domain name. Now start the year off right and start with a free two week trial, no credit card required, and build your website. When you decide to sign up for Squarespace make sure and use the offer code: C101 to get 10% off and show your support for Coding 101. To begin using Squarespace 7, existing users can go to the 'settings' tab to activate all of the new features. We thank Squarespace for their support of Coding 101. Squarespace. Start here, go anywhere. Boom. Now folks, we know that you have been wanting to check out PHP for a while, and we know that we've been wanting to cover PHP for a while. So we asked this man to come in and show us some of the basics. Now Patrick, one of the basic questions coming out of the chatroom is: Why do I want PHP? What does PHP give me that I don't get from something else?
Patrick: If you're doing a website and you want an easy way to put some sort of interaction on there or have some sort of dynamic data or dynamic presentation, PHP makes it really easy to do that and it's all server-side, unlike Java Script so that means you don't have to rely on the user's browser to process all of the data.
Fr. Robert: Now, we talked about this before when we were talking about Perl.
Fr. Robert: The idea of server-side versus client-side. Really quickly, what we're talking about is where is the code executed. Like Java Script, it's actually executed on the browser of the client, which means you have to worry about what settings the client has and whether or not their network is going to work the way you think it's going to versus server-side, which does what?
Patrick: Server-side it's all computed on the server and then the results are returned from the server to the user. So like Java Script, you have to worry about if they have Java Script enabled or what happens if they don't? If your service supports PHP it will work for everybody going to that webpage.
Fr. Robert: Right. We decided when we were talking about this module, we didn't want to give you instructions for installing PHP because it's going to differ depending on what host you use. And there are plenty of tutorials on how to enable it on whatever you're hosting. So, I would suggest jump over to Youtube and look at installing PHP. I'm sure you can find it for your particular provider.
Patrick: Yeah, there's plenty of documentation on this so we'll let them explain their version on whatever service you're using and if you're web host it might already have PHP installed. So in that case, you don't have to do anything. The one I'm using, it was already there. I'm on Dreamhost and didn't have to do anything.
Fr. Robert: Let's assume they've got PHP installed and running properly. So they can just drop code in and it will execute server site but could you show us just a few examples of what's possible and how they do it.
Patrick: Okay well PHP will put thea code in with the HTML. But instead of using an HTML file you're using .php and that's just telling the server, alright this is actually PHP code so execute. If I named the file .html it would just print all of the PHP.
Fr. Robert: Right. And what it will do is when you put the .php it's actually going to parse out the html, execute that as html and will say, over here by the way there is PHP make sure you run that on server-side.
Patrick: Yes, so if we could bring up my screen here. The first example says, 'Hello, World' and so all it does is it has the header there and it says, 'Hello, World' and so if I look at the code for that...
Fr. Robert: EMax.
Patrick: Yes I'm using Emax here and so if you want to zoom in on that all I'm doing is -
Fr. Robert: That's an html file... It looks exactly like an html file.
Patrick: It is html except this one line right here that says- ?phpechohelloworld.
Fr. Robert: Right and it's just like a tag so what it's doing when it gets to there- Because remember, you've already told it that it's a PHP file and now it's looking through the file and parsing out all of the html stuff where it will just execute that manually and just script it out but when it finds that ?php tag it's going to go, okay everything between this and the closed tag is the actual script that I'm going to write.
Fr. Robert: And now it's easier because you're just echoing. You're just printing something to screen. Now, echo is a basic but what else do we got?
Patrick: Well I've got a few more examples.. Let me go to Demo 2. This one, I've got 'hello, world' printed four times, but what I did was four different ways to do a print. So here, we have a string. I have greeting=helloworld.
Fr. Robert: And if they've done any of our other modules this looks very familiar. What you did is you created a variable- And I assume it's dynamic...
Patrick: Yeah, you don't have to declare the variables at all. You just use it, and define it by putting a valuable in.
Fr. Robert: Right, so greeting could have been an integer, it could have been a floating point, it could have been a string. PHP will just say, oh this is what you want to put in it. That's the type I'm going to make it.
Patrick: Yeah, it recognizes that this between the quotes is a string, if I put in a number, it would know it's an integer, if it's got a decimal in there it knows. So it figures everything out on it's own, it's very smart like that.
Fr. Robert: Right. One of the things that you will notice if you go back to that example is, again, if you've watched our previous modules it works the exact same way. Declare the variable, fill the variable with something- In this case, of course we're filling the variable greeting with the string called 'hello, world' and we're echoing greeting. In the previous example, you saw that we echoed a particular string. In this particular example you're saying Echo, write whatever is in that variable. So that's one way, what's the next one?
Patrick: The next one I just put in a print command. Putting html in right there so I put it on a new line and then 'print greeting' and it's the same thing. You'll also notice I've got a comment.
Fr. Robert: Now, why do we have Echo and Print, what's the difference?
Patrick: They're essentially the same. And it's like another way to do comments. Up above, I have slash slash and that's for a good one-line comment, but then down here you have do slash asterisks. And everything until you do asterisks slash, it ends your comment.
Fr. Robert: Which, if you have ever done html you know this, because that's just an open tag and a close tag, which isn't very useful if you're doing multi-line commenting.
Patrick: And then down here after the third 'hello, world' where I've got it all one line and I can just put the variable in there with no special treatment or down here I've got a dot. I have taken it out of the quotes. And so that's helpful if you need it put- Like say you want greeting, and then you get some word with no space after it. You don't want to think that 'greeting hello' is you're whole comment when it should be greeting then you put the period, and quote 'hello'. That way you can tell PHP okay it's not one long variable.
Patrick: So in the first example you showed us how to echo something out to screen, a very simple, basic print command. And in the second example, you're going to show us a couple of different ways to do the same thing, but with the use of a variable, which we've learned from all of our modules, once you have variables then you have options.
Fr. Robert: That variable means the program can do more than one thing.
Patrick: So we'll look at demo 3, let me bring up the web page first. Oh look, let's do math.
Fr. Robert: Okay math is good.
Patrick: Math is fun because this is variables with integers. And we can just do math functions. So if we look at the code down here, I've got the html that says, 'let's math' and then it goes into the PHP code and it says 'X=2' 'Y=6' and 'Z=X+Y'
Fr. Robert: And then again, looking at what you've written there, you've got a simple declaration of a variable using the $ so declare variable X, declare variable Y, declare variable Z and then we fill X with 2, Y with 6, and we fill the variable Z with X+Y. Which, we know that's cool because if we change either of those first two variables, it's automatically going to change the third one. We've got a question in the chatroom from a dealer, DLR and he wants to know, I don't think the slash asterisks works in html. That's the point. Remember when you put that tag for PHP the parser is going to know this is no longer html, it's PHP. That's where the tag works.
Patrick: Yes in html there's just a tag for comments.
Fr. Robert: Exactly. Just remember, it looks like an html file but where do you see that ?PHP tag, essentially what you're saying is everything in between this and the close tag, treat like PHP and execute on the server side.
Patrick: And so if I change the plus to divide or multiply, save that reload the page let's see. 2 divided by 6 will give us 0.333333 until it just gives up.
Fr. Robert: Right. So we've got strings, simple printing, and now math. Where do we go next?
Patrick: Go to demo 4 and I've got 'if' statements. So we've defined variables and now we can actually compare them so let's compare. 2 is less than 6 and so if we look at the code here...
Fr. Robert: Ooooh. And we know this is where that gets really useful. Because when I can start comparing values, that means I can actually have it do something and make a decision. So I've got the same two variables, X and Y and here, I'm just doing 'if X is greater than Y then echo out, X is greater than Y.
Fr. Robert: Hopefully people are noticing that even though this is PHP this 'if, then, else' statement looks a lot like the other 'if, then, else' statements that we've used in C#, and in Perl and that's the whole point, right?
Patrick: And one difference between PHP and Perl and other languages is how they handle 'else, if' which is why I wanted to include an example of that in here. In PHP it's 'elseif' as one word. Some languages have 'else if' as two words and then there's 'elif' in some so.
Fr. Robert: But the structure is the same and the idea is the same but you've got to learn the vocabulary for that particular language, which I love. Now let's go on with the examples in just a little bit but before we do that, I want to take another break to talk about the second sponsor for this first episode of Coding 101. Now PHP is great and wonderful but you know what? We're not going to be able to give you all of the learning that you're going to want. This is a two episode module where we will basically introduce you to PHP and in the next episode we'll give you something fun. And I'm sure there will be those of you who will want something a bit more substantial. I want to get learned up and I want to fill my knowledge hole...
Patrick: Yeah, after you see this you'll be like this is something I want to learn more of so what can you do?
Fr. Robert: You're going to go to lynda.com. Lynda.com is your one stop shop. It's the place on the internet that's going to serve as the place where you learn new things or refresh your old knowledge. Kickstart your new year- I mean this is 2015 and it's a brand new opportunity to start anew. Why not start with lynda.com. It's going to challenge you, give you something to learn and with a free 10-day trial, it's a no-brainer. Lynda.com is used by millions of people around the world and has over 3,000 courses on topics like web developing, photography, visual design, and business as well as software training like Excel, WordPress, and Photoshop. All of their courses are taught by experts and new courses are added to the side each and every single week. What's your plan for the new year? Do you want to improve your job skills to ask your boss for a raise? Do you want to impress people with all of the new skills that you've acquired/. Do you want to make yourself more marketable to find a new job? Are you looking to explore new hobbies, set new financial goals or find a better balance in life? Well folks, that all starts with knowledge is what lynda.com is about. Some o the videos that I recommend are programming with iOS, People have been asking about whether or not we're going to cover it. Well of course we are and if you're anxious, why not jump into lynda.com because it's there right now. Why not jump into foundations of programming? If you've got kids who want to start learning, they've got programs and videos that are specifically tuned for young coders. They've also got Code Clinic. It's an innovative series where each month lynda.com issues a code challenge and authors share their solutions using a variety of different programming languages. It's like the Nirvana of coding, give me a problem and I'm going to show you as many different ways I have to solve it. They've also got Swift Essential training if you want to get in on Apple's newest language. I've been using lynda.com not just as a place where I can learn up on new programming languages, but also where I can find reference. So any time I forget how to do something in C# or if I need reference for Java or if I need to go back into PHP, lynda.com has got it for me. They've got searchable transcripts, I don't have to work through an entire video series. I can type in what I'm looking for and lynda.com will take me right there. Do something good for yourself in 2015, folks. Sign up for your free 10 day trial. You've got nothing to lose, nothing to pay. Try lynda.com by visiting lynda.com/c101. When you do, you'll get access to every course on lynda.com including acces to a few tutorials on Android and iOS devices plus access to the new courses added each and every week. That's lynda.com/c101, try it free for 10 days. And go ahead I challenge you to learn something new in 2015 with lynda.com and we thank lynda.com for their support of Coding 101. So we're moving and grooving and getting the basics, where do we go next?
Fr. Robert: I like Case. Let's do case. Refresh people, for people who don't remember what Case was, when we covered it I think we did it in this first C# module. What are we doing?
Patrick: It's a fancy 'if' statement, really. It's a series of 'ifs' and so in my latest example, I have a page that tells me which show is playing. It says, what show is this? Coding 101 is now airing. And if we look at my script it's really not that smart because I declared code as the show. Now, if this was more complicated I could go out and do some things on the TWiT schedule-
Fr. Robert: We're trying to keep it simple.
Patrick: Then it would return the value of code. The question is how do I handle that? That's what I'm showing off here.
Fr. Robert: Well you're showing them a decision engine. So if you had some sort of data set and you knew the values that data set could return, you could use Case to trigger an action which of those options return to you. Now for example, at TWiT we know the names of all of our shows so if we had, say a webpage that played in real time and had the name of the show we could use this to scrape off the name of the show and then trigger an action whenever Coding started or whenever Know How started.
Patrick: Or if the new website is an API return that and somebody could have something like this where when we look at the code, it has a switch command and then uses the variable show. And then the Case statement just if it matches AAA, it's All About Android and then it breaks, which means okay I'm done with the Case statement. And then it goes on for Arena, BYB, Code, Floss, etc., and then down at the end is a default one for 'I don't know this show'.
Fr. Robert: Which is important because we always want to give it the other option because otherwise it could just sit there. It will just wait and wait and be like, none of these Cases match. You want there to be a line that says, if none of these match, this is the decision you make.
Patrick: Yes and it's very important with PHP because it's running on a webpage so you have to plan for every situation because there's going to be that guy that goes-
Fr. Robert: There's no way to reset the server. It's not like restarting your browser. You just hung a server that's in a data center somewhere.
Patrick: Or there's going to be that guy filling out the form and you say, enter a number 1-10 and he types, berries.
Fr. Robert: That will happen. Always plan for exceptions.
Patrick: So yeah, if I didn't have that default answer it would say ' is now airing.' With no show name.
Fr. Robert: Yeah we've got one more, right?
Patrick: Yes we have one more example and this is where it starts to get a little tricky.
Fr. Robert: Well we want to have a little bit of a challenge here.
Patrick: Let me bring up the demo form 1A.
Fr. Robert: Oh okay, data entry.
Patrick: Yeah it took us like 6 Perl modules to get this far.
Fr. Robert: Exactly this is huge because before we were just displaying and we were making decisions based on information found elsewhere. Now you're showing us how we can actually take in information from the user.
Patrick: Yes, I am getting input from the user in this one and this is- How high should I count? Enter a number. So I'm going to say 35 and if I actually look at the code before I submit it- So this is just instrumental. This is just html, there is no PHP on this page, whatsoever. But you will notice in the form declaration line the action I've got demoform1b.php. That means that when I submit it's going to do a GET, which is this method here. And it will submit it to demoform1b.php.
Fr. Robert: And this is actually the way you should be doing it. Just like we did in the last module of C#, you kind of want to keep the main page as clean as possible. So if you can call pages that do specific things, that certainly is a good idea.
Patrick: And it definitely is possible to have PHP call the same page it's on but there's a little bit more fussing you have to do and for this example I'm keeping it simple. Let me go ahead and submit this form.. And so now if you look all the way over to the left it's counting all the way down-
Fr. Robert: And so this is just a loop and it counted all the way down to 35. It printed out every time.
Patrick: And I could have had this process something else but if we look at the code here, it's very short code and didn't take much at all.
Fr. Robert: Just a loop.
Patrick: It sets the limit variable, limit=_GET and then it's square bracket number.
Fr. Robert: So GET is the way you tell it to take data from the user on the screen.
Patrick: Yes. And because it's Git I submitted it as Git on the form and that means it's up in the URL. So if we look up at the URL it says number=35. And Git as we explained in the Perl module will put it as part of the URL. The first one will have a question mark and then variable name=value and if there are any more it will put an ampersand between them so if there's another one it'll say ampersand name=fred.
Fr. Robert: So you could actually change this right now without having to go back to that interface. You could change that number to say like 40.
Patrick: Yeah and so we'll go back to the code down here and all it's doing is a while loop which is another thing to show off here. We've got whilecount which is a variable that is not set, is less than limit. So the limit we had in this case is 40 and while that value is less than 40, echo the count. So this is just echoing the number of the count-
Fr. Robert: And that's just an increment so count the variable name ++ means add 1 every time we run this.
Patrick: And we could've done count=count+1 but ++ is a nice shorthand way to do it.
Fr. Robert: Yeah.
Patrick: And like many languages, there are multiple ways to do anything.
Fr. Robert: This is one of the reasons I like PHP so much. It does feel kind of mythical for a lot of people but we've already been able to do more through PHP in just a couple of minutes than we did in the first four episodes of Perl.
Patrick: Yeah and the advantage of PHP over Perl is you can do it right in the webpage. With Perl, you had to have a separate script, it would print out all of the html but most web hosts will support PHP, check with your local web host. But if they do you can go and try this right now.
Fr. Robert: Patrick, thank you so very much. Again, we asked for a really basic PHP module and this was a really basic PHP module. What we would suggest for you folks is all of this code is going to be made available. It will be in downloadable form in a zip file and will work out of the box as long as you put it onto a server that has PHP configured correctly. What you may want to do is look for a provider that will have that and most will. If you've got a provider already they probably have a way for you to enable PHP. Patrick, what are we going to do next time?
Patrick: Next time we are actually going to modify an image so we're going to take a giant leap.
Fr. Robert: Whoah.
Patrick: But it's all through PHP.
Fr. Robert: Folks don't forget that you can always find out more about each and every episode by going to our show page. Just go to twit.tv/code and there you will find all of our episodes. We talk about our previous modules a lot and in those previous modules, you'll be able to learn about whatever we covered. In C#, in Perl, it's part of the corpus of knowledge that we're slowly building up. If you want to figure out how PHP stacks up against C#, download those episodes and you can find out just by watching or by those show notes. Besides, the notes will also have links either to the github or to the downloads for the zip files that contain things like Santa's Little Helper from the last episode or Patrick's examples for PHP. Also don't forget that you can find us at youtube.com/coding101. We don't actually get a lot of traffic to our Youtube page since most people like to download but we offer it because we want you to have options when you decide to watch Coding101. You can also find us on our Google+ page. Go to plus.google.com/twitcoding101. It's a strong group so it's filled with expert intermediate and beginner programmers so you can find a way to fit into the community. You can find me on Twitter at twitter.com/padresj and it's probably the best way to figure out what I'm doing during the week and what topics will be covered. Finally I want to thank you, Patrick Delahanty for being our code warrior.
Patrick: My pleasure.
Fr. Robert: I work with you every day and so any chance I get to have you on any shows of mine I do it every time.
Patrick: And I love being on shows.
Fr. Robert: Can you tell the folks where to find you?
Patrick: I've got a website called enemycons.com or fancons.com which list all of the fan conventions that are coming up so if you're looking for one in 2015 it's a great place to go.
Fr. Robert: You've also got a thing where you torture toys.
Patrick: Oh yeah, just go to adequate.com and yeah we've got a podcast where we torture toys.
Fr. Robert: You've got a Twitter address right?
Patrick: Yes, @pdelahanty.
Fr. Robert: If you like his knowledge, follow him and say hi, Follow him and say hey I saw you on Coding 101. Until next time, he's Patrick Delahanty I'm Father Robert Ballacer, this has been Coding 101 and goodbye!