As Jacinta Richardson she is the winner of a white camel award.  One. Don't tell them. And I'll just hand you straight over to her and she'll begin her talk now. Thank you.  Anyway, thank you all for coming. I hope you enjoy this talk. There are a whole heap of best practices I would really like to cover. Unfortunately in 35 to 45 minutes that's not going to happen so I'm just going to cover the ones that I like best. Now to get started, in 2005 Dr Damian Conway wrote this book. It has 256 best practices. While several of these practices have over the last five years been considered maybe not best practice or at least opinions have changed on them somewhat, there are still a lot of very very good recommendations in this book. So if you write Pearl Code I strongly recommend getting a copy of Pearl Best Practices by Damian Conway and having a read over it. Just cross about the ones you don't like. Now of course there are many obvious best practices and the book covers quite a few of them. And I'm not going to waste time on all the obvious ones because you've almost certainly heard of them before.  That's not going to surprise anybody. If you aren't using these hopefully you know why you're not using this. I hope that you're using scalar file handles and three argument open. They've been in the language for more than 10 years now. It's probably about time that you found them worthwhile. Of course most importantly I trust that your company has coding standards and that they are more verbose and more interesting than just use strict and use warnings. So let's look at things that aren't as obvious. Some of these things are a lot less than five years old. This one isn't. Upgrade your version of Pearl. I still have customers terrifyingly enough who are using Pearl 5.00503. Some of them are using 5.6.0 which is more than 10 years old. Upgrade already. Timeline to give you an idea of how ancient your version of Pearl is. Notice that 5.6.1 is almost 10 years old. It'll be 10 in April. Are you using an operating system that is more than 10 years old? Hopefully not. Debian Lenny ships with 5.10.0. It ships with 5.8.8. If Debian can do it you can do it too. 5.10.0 is already three years old. It's not like Debian is being leading edge still. I recommend picking one of these versions if you can. So if you must stay in the 5.8 branch for some reason, upgrade to 5.8.9. If you're allowed to be brave, skip all the way down to 5.12. Pick your new version. If you want to take advantage of the new features that have come in, just write this in your code. Use v and the version of Pearl that you've done that you've picked. This will give you all the new features and you can go forward and have fun. It also tells Pearl, of course, that this is your minimum version of Pearl that you're going to, that you're targeting. So obviously your more ancient versions of Pearl will not be able to run this. That's right. If you use this, you get all the features that come in. You don't have to use the features module itself. If you're going to ask a question, could you use a microphone for the sake of our AV operator up there? New features. Let's have a look. After 20 years, actually 21 years, Pearl finally has a print line. It's called C. It's print with a new line at the end. How awesome is that? Indeed. Plus, of course, it mentions dollar underscore, which is terrible. We can get rid of all of these red characters here. In particular, we can get rid of dollar underscore. Say hello world. Since we're not giving it an argument, it's the default argument with a new line for everything in my list. Drop the each in the foreach. I like the foreach better. Or returns true if the value is defined or considers any defined value to be true. So we're not saying is it true or false. We're saying is it defined or not defined. Let's set up an example. Here we want to handle the sale of an item price. Now, the price may have discounts applied to it. We're calling this internally. We're not allowing the user to give us a price so we can trust the price that we have here. If the price is false, which includes zero, then we grab the cost out of the product. If the price is false, way an item for free. I'm using this as a way to add things to an invoice except that I want to give a bonus item away for free because they've already ordered four of them. This code that I have will reset that to the full price. We can fix this problem, of course. That's how it might be a bug. We can fix this problem like this. This is how most of you have tried to solve this problem before. Unless my value is defined, set it to the cost. Okay, but it complicates the code. The all equals much, much easier. Or we can use defined all. Price defined all product cost. So now we're saying if the value is defined, we keep that value. If it's zero, that's okay. Otherwise, set it to a value. If we don't pass in a price, the price gets set to the cost. If we do pass in a price and it's zero, we keep that zero. So defined all is pretty awesome. We also have state variables. These are really a lot like C's static variables. So it's kind of a surprise that they took 21 years to get into the language as well. Very simple example. We want to keep track of how many images have been viewed.  We can't do this inside the subroutine. Because if we said my image is the loud equals zero inside the subroutine, it would just set that to zero every time, to 100 every time. Outside the subroutine like this, then other subroutines can see and potentially change this value. So traditionally we solve this with a closure. And now suddenly your subroutine is not against the left-hand margin. And that makes people sad. Or perhaps we create an entire object layer to handle this. And that's way too many lines of code, so I decided not to show you that. Or a state variable. A state variable, when Paul sees this, it runs that line once, sets it to 100. Thereafter it does not run that line again. That value remains private to the subroutine or to any enclosing block that is declared. But it remembers the state that it last had. It's pretty awesome. So given a when, this is like a switch statement on steroids. So here's an example. Given some value a dollar has, if it matches any of these three regular expressions, then increment the value in my block there. If it's a value in this array, then we're going to increment our others. If it is a key in our hash percentage cool, then we're going to increment our cool or do some other code if we wanted to. If we have gone through all of those, our final else, we just increment borrow. If we wish to, we can actually say continue inside our blocks and it will continue on doing the rest of the tests. So we have these as choices. So given when is switch on steroids. And what's more, it works with foreach as well. So we don't have to have the given, we can just say for each all the items in this list. When this, when this, when this, when this, and a default. It's because of smart matching. Smart matching looks a lot like this and we invoke it with tilde, tilde. Is through undefined? Is through a member of this array? Is foo a key in this hash? That should be tilde, tilde. Oops. Does the subroutine in this code ref over here return a true value when given foo is an argument? Does foo match this regular expression? It might be an array reference. Is it an element in this array or a hash reference is it a key in this hash or even just the string? Are they string compare equal? So smart match does the right thing. Highly magic way. Very cool. And there's some cool things in newer versions of Perl as well. Let's have a look at how Perl handles failure. By default, Perl's built-ins return silently on failure. So you have to say open this file and then all did that succeed. Change to this directory, all did that succeed. And you'll all be very familiar with this. But really it's heartbreakingly terrible. It means that you actually have to rely on your programmers to always do the right thing. Programmers don't always do the right thing. And it's the one you forgot to check that is causing your program the buck. Like this. Open my file for reading or die with some error. Read from my file.    And that's just frustrating. And some of Perl's built-in functions return false values on success.  For example, system says zero for success.  There's a lot of error code here. Pluttering up our program. Now of course we might have stopped reading from the file before we closed it. There might have been some other error there. Not sure how you catch it. These things can get quite difficult. From 5.10.1 auto die comes standard with Perl. So if you're upgraded to 5.10.1 or better, you already have auto die. Otherwise you can download it from the cpan for versions of 5.8 and above. Here we say use auto die. That makes Perl's built-ins auto dying. And then we just succeed or our program automatically throws an exception for us. Excellent. And our code is way, way neater and more correct. These exceptions are failure. Sometimes we might want to do something but not have it throw that exception. Or more importantly we might want to catch that exception. How can we catch these?  Who's never seen block eval before? Excellent. So from this semicolon at the end of eval that you can't see because it just doesn't look obvious, that's required. Code doesn't work otherwise. Eval says run this code and when it throws an exception, capture that and stuff it into dollar at. Because that's a meaningful variable. This is how Perl spells try and catch. But we can fix that. Because we can use try tiny which gives us try and catch semantics. So try this block of code. If it succeeds, we skip the catch block. If it throws an exception, we catch that exception and it puts the value in dollar exclamation mark. Much more reasonable. Other exceptions or other, so yes. Finally as well as a block. Yes, we have finally blocks as well. Other exceptions. Modules when we write them should not throw exceptions with die. Let's see why not. Here's a really trivial module. Package greetings. We create a hash with some basic language code and greetings in them. Here I've been really lazy and I've just defined English Australian. We take a subroutine. The subroutine takes a language out of our underscore and it looks up. Do we have that greeting in our hash? If it does, it returns the greeting. Otherwise, it dies with an exception. When we run this code, we might get this. I don't know what JP is at greetings.pm9. 100 times where I call that greet subroutine. Which one of them passed in JP? Where was my code at fault? We use carp and carp's been around for a very long time. If instead we use carp, we can croak. Croak. I don't know that language. And now we have I don't know JP at greet line 3D. What we get to say is I'm throwing an error, but is that piece of code over there's fault? Not my fault. That code over there. And you can do stack back traces and such if you'd like to. You have to upgrade and I've shown you awesome new features, but you might be thinking I'm not allowed to. I can't upgrade my code, upgrade my version of pill because it might break my existing code. And I can't test whether or not my existing code will break because I can't upgrade my version of pill. It's a quandary. People get stuck in this one. But there's a very, very good and easy solution. AppPulbrew allows you to fetch, build, compile and install whichever version of pill you'd like to with permissions in your home directory. It takes a little while, but you get pill in your home directory for as many versions of it as you have patience for. You can even install onto removable devices. This is how we start and we fetch pillbrew to get going, and you only ever need to do this once. This is all in the man page as well. Once we have pillbrew, we just install the version we want. Pillbrew install pill-5.12.2, install that version on pill onto your machine. If it then sets our path so that this version of pill is found. It doesn't kill our path, it just adds to it. So now we run pill-3, we now have pill version 5.12.2. We can see the list of pill versions available to us. We can switch between the versions we have and we can turn pillbrew off. We turn it off, it just removes the part added to your path so that you go back to using the system pill. Pillbrew makes upgrading easy. It's awesome. Your code needs modules too. Fine, you say. Fine, I can test the latest version of pill, but what about the latest modules? Modules are hard. Installing modules into your home directory isn't as easy as it ought to be. And I don't want to cut and paste them, I'll try to compile them manually. There's a good solution for that one too. Local lib makes handling local modules easy. We bootstrap it like this, assuming you can't convince your sys admin to install it for you. In our code, say use local lib. If we say use local lib, by default it assumes that it's installed into your home directory, pill-5 directory.  Alternately, and it's much, much cooler, if you allow it to, say local lib wants to set all of these environment variables for you. And once you have allowed it to set these, just put them in your bashrc file, your TC shell. Once you've done this, in order to use your local directory of modules, you want this. That's right. Once those are set, it all just works. Do your own version of Perl. We're using our own version of modules. How do we install them? The modules, that is. We recommend cpan-m. It fetches, builds and installs your modules. It knows about local lib, as I'll show you in a second. And it does the sensible thing. It's quiet. It doesn't say, hey, I just found this extra dependency. Do you want me to add it to the chain? Of course they do. No, you're going to say cpan-m install this module. And it goes and it does the entire thing for you as quietly as possible. No pages and pages and pages of cpan-output. Again, bootstrapping it is easy if you can't get your system into install it for you. And then you install it like this. And as I said, it knows about local lib. So here it's just using local lib setup for default. If you have set up your environment variables, oh, yeah, there we go. We just say cpan-m test most or whichever module we want to install. And life becomes much easier. Start writing modules. That's not too hard either. Module starter is a great way to start off. You run on the command line.  Preferably you include your build system. And in return it makes for you module stops for all the modules you specified. And it fills those out with example documentation. And it creates tests for all of them to make sure that they're loaded. And it gives you a make file and a changes file and a to-do file and all the files that you'd usually want to start off with. It gives you most of a distribution that passes all of its tests, although it doesn't do anything, straight away. Much, much easier to start if you switch. What was that? They fail because one of the tests is a check that's done. Because it's done. Schwer is going to say that it doesn't pass all of its tests because one of the tests checks that you have changed the stub documentation. Fortunately this is actually not an issue because it requires that you have turned on all the tests for that to fail. Documentation for a moment. Because indeed you don't want to leave your stub documentation in. But comments in your code, whilst really, really useful to other people, might be considered a little bit boring. I know a lot of people who don't update their comments when they update their code and that's a bit of a problem. But comments can be smart. Comments can tell you about stuff that is happening in your code when your code is running. That's pretty awesome. We do this with a smart comments module. Smart comments module, we create a bunch of special comments and these do things when our code is run. So here we're saying expected and we're doing a small expression and it's going to print out that result there. It's going to tell us what cookie is. And it's going to look as we run through our loop and tell us how we are going through that loop iteration wise. And if I ran this code, about 70% of the way through the loop, I would get this. Expected 30 got 30 eating cookies. And I'd get more dots as time went on. 77% done. So your comments can be smart. And then when you just comment out smart comments at the, I want your code is ready, they're useful comments that people can read later. Now let's move on to tests. Tests and Perl is actually pretty easy. Here are some different ones. OK says is my first argument true. Is compares the first and the second argument and says are they the same. EQ or diff says are the two strings I have the same? If they aren't, it gives you a diff of the two strings. So you know where the difference is. Die is OK. Does this method I'm about to call throw an exception. There are lots and lots of different types of tests available. I strongly recommend writing more tests. Test most is an aggregation of the most popular test modules. And I've listed these all out here. Exceptions, differences, deep warns and more. And there's tests, no warnings as well, which allows you to ensure that your code does not emit warnings during the run of the test suite. Because if your code is emitting warnings, you are later going to fill up your log files. And that would be bad. To help ensure that your tests are testing what you want them to test, use Devel Cover. It's very easy to run Devel Cover. You write cover minus test in your test directory. And it has a bit of a reputation for being right once. And so there are a lot of messy programs out there that I hope I don't ever get asked to fix. You probably encountered a few yourself. Some of this can be fixed by just tidying up the code. And if you had to do that manually, that would be terrible. So we can use Piltity to make your code beautiful. For example, we can go from this mess here to this mess here. This is actually still kind of ugly. But it's pretty. And you've written it and you've got your modules working beautifully. And you have tests and such. Hopefully at some point in your organizational chain of doing these things, you will actually be reviewing your code. Or rather, someone else will be reviewing your code. And they'll come back and they'll say, hey, you know, you chose this algorithm, but this one over here would be faster. Or they'll just give you feedback. You know, you've done this, but that's a really terrible way of approaching it. Or you've done it. That's fantastic. I'm going to steal that for next time. Hopefully you've got someone else who looks at your code and gives you feedback and helps you learn, and they learn from you. Some of that at least can be automated. You don't really want to turn up to your code review and have the first thing the person says to you is, hey, you haven't yet turned strict on. Go turn strict on, fix all those issues, and then come back. And you come back and you forgot warnings. Go and fix all the warnings and stuff. There are things like that are obvious code review things. It can make it, it can do that work for you. So, Pearl Critic can review your code view in the ways that are easy to automate. It won't correct your algorithms. It won't do the things that a fellow programmer can, but it can complain about important things. Here is an example.  Pearl Critic has read Conway's book, and it will tell you what you are doing that is wrong. And it will tell you why. It will say, see pages 68 and 71 of Pearl Best Practices. Or 236. And it colors these so you know which ones are most severe. It's most unhappy that there was code before I said use strict. It was only, it was less happy about the purple stuff and very unhappy about the black stuff. So, somewhat okay with the black stuff. So, it color codes this. The things that are right red sticking out at you. You have done this. You shouldn't do that. It helps you out there. It's a pearl practice I can give you. And you'll all know this one, which is fantastic, is don't reinvent the wheel. C-Pan is Pearl's biggest strength. If there's a module on C-Pan that does what you need to do, don't do it. Just use the module. But I am going to mention a few specific wheels that I really love and want to encourage you to consider. Now, first of these obvious ones that everyone seems to forget. Scaler, U-Till, List, U-Till, Hash, U-Till. All those three that I mentioned come standard with Pearl. List more U-Tills doesn't, but it's not so bad. They all have useful subroutines in them to just help you do the little things. For example, if you want to randomize a list, randomize a list. Just use List, U-Till, Shuffle, come standard with Pearl. There is no penalty for using this. And it's better than trying to use an unbalanced... So, what is the phrase? Trying to sort with a RAND inside your sort block. An object or a national mapping. Rather than writing SQL directly into your code. By the time you're doing anything with a database, your code is probably sufficiently complex that mixing up two languages is going to be more problematic than just keeping one. There's also a good chance that any ORM you pick will write better SQL than you do by default. Just wait for a moment please. Okay, so the assertion here is that any random SQL you write yourself is probably less good than what your ORM is going to give you. No, the problem is that whenever you actually manage to get a DBA into the picture, it's usually easier for the DBA to fix SQL than any code written by your ORM. Humans are really, really good at writing good SQL code. Okay, I agree that if you need to get a DBA in at all, then you probably already have a problem. However, if you're just writing something to update tables, pull the data out, and all of those kind of things, which is the vast majority of this kind of work, and you don't need to write specialized queries, the average program is going to find it easier to do this. So if you ever need to refactor your database, the ORM gets in the way horribly. Yeah, it shouldn't. It does. No, your ORM gets. You can do either. We will talk about that later. So ORMs turn database rows into objects and relationships with other tables into methods. These are the two that are most loved at the moment.  I'm just going to mention two of them. Catalyst is Perl's salute to Ruby on Rails. It's fast, flexible, and elegant. And it's probably about equally as difficult to learn. And Moose is a post-modern operating system. There, what do I mean? Object system. OO under Moose is gorgeous. If you hated OO under Perl before, Moose makes it all better. Well, a lot, lot better. All the pain from multiple inheritance is reduced because you start using roles or in other languages, you might know them as traits. I'd love to cover this more, but it's a whole talk on its own. I will happily tell you more about it later if you grab me, though. So add antlers to your code. Well, let's face it, uglier than every other language out there. Well, subroutines don't have any useful way to declare your arguments at the point where you create your subroutine. Even C lets us do that. This is terrible. Act them from add underscore. And if we forget the add underscore bit over there and put a semicolon, we've just created two undefined values. I've done that way too many times. There are a whole bunch of problems with just trying to unpack our variables from add underscore, including the fact that we don't, there's no easy way to say in advance that this is how many arguments our subroutine expects. We might unpack a few from add underscore here and then some more from add underscore later in our subroutine. Hopefully you never do that, but I have dealt with code that does. So this is heartbreaking. Again, I really, really hate the fact that the start of our subroutines has these problems. So after 21 years, we've made it better. Method signatures allows us to say, this is what our subroutine looks like. This is how we call our subroutine. Plunk instead of sub, the name of our subroutine, and then we pass in our arguments. Isn't that so much more awesome? We don't have to worry about add underscore anymore or trying to explain to other people what that means. It also gives us methods. So if we are dealing with objects and we want to create a method, method get and the arguments we pass in, and we can call our subroutines there. Now it's worth noting here, I'll let you ask a question in a moment. Self is springing into existence, it would seem. That's because you're calling a method. So clearly you're going to be operating on an object and that gets populated as dollar self to start with. Yes, Michael. When you call a method, what happens if the signatures don't match? What happens if there's only two arguments specified and you try to call it with three?  Yes, it will. Thank you. Practice is the code for portability. If you ever have to deal with a file system, any kind of interaction with that file system, try not to code your, to tie your code to any particular system. If you had code forward slash is in or backslashes in to your code, other operating systems might not understand your directory interaction. For example, how do you move up a parent directory? Is it always under every system ever dot dot? Probably not. How do you address a file? All these things. Path class makes file system interaction easier by abstracting away the interaction. Let's use path class. My directory is foo something bar something bad. I'll let it work out for my operating system what that something in between them is. Obviously under unix it's forward slashers. If I want to go up the parent directory, I just say go to parent. If I want to jump up two parent directories at once, I can do that too. Close the files so I can create myself a file. This directory with this file name and under windows it gives me my backslashes. And the very, very nice thing about this is I don't have to go, oh, that's right. I'm doing this under windows. I can't use double quotes. And go and escape all those characters. Regular expressions.  So what are you dealing with two languages before we even add SQL? It isn't regular. So regular expressions aren't really either. Somewhat misnamed, I would say. I've got a few hints here of things you can do to make your regular expressions more awesome as well. So use the slash a and slash z meta characters. These will make your life easier. At least they ought to. Have a regular expression, hat, find me at the start. Without the m there, this hat matches the start of the string. When our colleague helpfully adds the m later, the m modifier says process our data in a line by line mode in a sense. Then now this will match the start of any line within that string. If we wish to match the absolute start of the string, we should use slash capital A. And you should do this even when you are not adding the m modifier. Just in case later, your colleague does add it. With the m modifier, dollar matches the end of line. So instead of the end of string, it matches the end of line. If we want to match the end of the string in the same way that dollar would have, we use slash capital Z. So use this whenever you want to actually match the start of string or the end of string. This will actually match the end of the string just before the new line character if there is a new line character, just like dollar does. If you want to match the absolute end of string and you have to deal with the representation of a new line if it's there, slash capital slash lowercase z will do that for you. But I'm surprised at how many people get this wrong. Be aware, be proud of and enthusiastic about the fact that Perl allows you to use other delimiters. We do not have to write this. Have we got enough there? I never know. Because we can write this instead. I like curlies. You might prefer square brackets. It doesn't actually matter if you pick one that already appears in your regular expressions as meta characters because Perl knows how to work out where the things balance. So change the delimiters to be something that isn't going to mess up your data. Your regular expressions out of QR fragments if that makes sense. QR for quoted regular expression. It's like we have qq for quote a double double quoted string and single q and qx. QR for quoted regular expression. This is a fairly trivial example. Here I'm matching against my line some word characters followed by full colon followed by some word characters, a space and equals a space and some more word characters. And we could fragment this if we wanted to. We could say everything on the left hand side of the equal side and everything on the right hand side of the equal side. This is a really simple example so maybe you wouldn't bother. But unfortunately if I showed you a very big example it would take longer to explain it. So here we've split it up. Our left hand side of the equal side and our right hand side. So word characters followed by full colon followed by word characters and just word characters. And that's what our regular expression now looks like because we just insert those in and interpolation means that that all works. But we do have a small little problem. It's possible that we will unpack what we've captured in this case dollar one, two and three at a decent distance from where we defined dollar LHS and dollar RHS. So we may not be able to look at these four lines of code and be sure that we got that right. In fact we might wonder, hang on, was that right instead? It's hard to tell. What if we mess up the order of those variables we're capturing into? Things will go strange. Fortunately named captures make this so much easier and much, much, much more awesome. We have those from 5.10.0 and above as well. So for the last three years characters populate the special hash percentage plus. So we can pull our values out like this. Type is dollar plus type. Name is dollar plus name. Value is dollar plus value. And that's really awesome because unlike dollar one, two and three we can make sure that we're actually getting the type variable from type, the name variable from name. Capture into percentage plus. We name our captures like this. Question mark and then the name. Question mark and then the name. If we have multiple captures with the same name then they go into an array reference stored in the special hash called percentage minus. Now just as we shouldn't reinvent the wheel if there's a CPAP module that already does what you're going to do, you should avoid writing regular expressions that have already been written for you. Rather than thinking that you are perfectly capable of writing a regular expression to match an email address, maybe you should use what someone else has done. Expressions for all of these things. Didn't test the IPv6 one? That one might actually be wrong. I doubt it would be but I really don't know. That's right. Excellent because I know there's all sorts of magic stuff with IPv6 that I don't understand. It has a profanity. It has a regular expression for common profanity and it's what 13 so that you can't offend yourself. Magic is common to save yourself some effort with the regular expressions as well because they're all the common regular expressions. Yes. Jeff, it's actually a number of them. Not all of them but if you, so the question was which country post codes am I saying this matches and that really just depends on which other modules you have installed. But yes you can get Australian post codes if that's what you're particularly interested in. So I think that's a little bit more awesome than just regular expression. I mean there's a lot of things we shouldn't be doing with regular expressions and then there are some things that we want to be doing with regular expressions that we may not, maybe we shouldn't be doing anyway. Perhaps you want to write a grammar. Well, Pro 5.10 made grammars much, much easier just by including them in the language. Pro grammars for everyone. And here's an example. So what this regular expression does, this is why the complicated regular expression is it matches an expression by which I mean a mathematical expression. A equals 5 or A equals B minus C equals D. So what it says is it says an expression is a term optionally followed by an opt term being an optional term. A term is an identifier or a number. An opt term is an operator followed by a term optionally followed by an operator, sorry by another optional term. An operator is any of those standard mathematical ones. An identifier is a sequence of letters followed by numbers. And a number is of course just a digit. So this defines the grammar we would need to match a mathematical expression. And we could say if A plus 7 equals B minus 2, if that matches our expression, we say yes. And indeed that runs and says yes. If we tried A equals 1 plus nothing, then that will not say yes. Because that is not a valid expression. We have a term there that is not, sorry, an operator there that is not followed by a term. Is everyone cool with that? Okay, so there's a small problem with this. What were our terms? What were our operators? Yes, it's great to know it matched. What if I want to pull it apart now? Give me my parse tree. Can I have my parse tree? No. No, no parse tree for you. The syntax doesn't give us a way of accessing this information. We can only say yes we matched or no we can't. So Damien Conway, who wrote that excellent book I mentioned at the start, fixes this for us. He wrote a module called regex grammars. And this allows us to write a grammar that takes advantage of this system underneath, but keeps our parse tree for us. The syntax is a little bit different. Essentially the same thing, but we have to define these as rules, which actually makes them, I think, a little bit NATO and easier to read. Now if we say a equals 5 plus 1 expressions, if that succeeds, this populates the hash called forward slash, which as you could see is a very meaningful variable now. And for the simple expression a equals 5 plus 1, we get this beautiful tree here. Now I know that this is kind of complex and I'm not giving you enough space to read, I haven't given you enough size of characters here to read that all, but it was mostly just to show you that it does actually break everything down. So we can see at the top level the empty key is our expression. You can see what the expression was and how it was decomposed. Then our op terms, where we're up to and what our term was, our operators and so on. If you do need to parse a grammar, this is a great way to do it. Much, much better than trying to do it on your own. If you missed Michael Schwurn's talk on Monday, please watch it online. Perl5i, Perl5improved, combines many of these great ideas into one package which gives you an idea of what Perl5i might be, or what Perl5 might be if we wrote it today, which is in some ways an idea of what Perl6 will be. And he gave me some excellent examples to show you. So here's some fairly standard Perl5 code. We want to write an ISO 8601 timestamp into a file. Should be an easy thing to do. And this is not bad code. Any version of Perl from 5.8 and above will happily run this code. So we use a whole stack of modules, create our subroutine, which opens the file, prints the line to it, and closes the file. And to create the ISO 8601, we use the stirriff time thing here. The problem is that that's a lot of code for something that should be a really simple idea. Perl5i, it looks like this, which I'm sure you'll agree is a lot less code and a lot nicer. C12 file handle, local time goes to ISO 8601. Easy. These are the things that are covered lightening fast. All very, very cool. These slides will be available for those who want to play with them. Are there any questions? More of a comment regarding exception handling. If you're not using a web frame, which doesn't already do it, a top level signal handler to catch the worn and die signals and generate a fault report and give you that information. Environment variables, backstab, backtrace, is a really, really invaluable tool. Autoday is a better tool because the best thing about Autoday is that it gives you really nice error messages. For example, if you fail to open a file, it'll say something like could not open file name for reading reason why at this line, at this reason. Whereas by the time you throw in the die and you've caught it in the signal hand and you start processing that, you may have lost, you may already have lost what's on the $1 at because that's a little tad too volatile. And there are a wealth of problems. It is certainly not a bad option to have a top level signal handler to catch dies, but it's really a measure of last resort. Shwern has a comment on that. Yeah, the problem with a top level die signal handler is that it's global. Somebody else will decide that's a great idea as well and put theirs in this place. And then your entire exception handling system goes away. Yes. Thank you very much indeed, Jacinta. Time is up. You've had your time, but Jacinta's going to be packing up for a while and you can ask your questions and those of you who have. We've got a little gift here to show our appreciation for your talk. You did good, Teach. It was really nice. Put your hands together for Jacinta, please.


Here's a very LA story for you.  Okay. And it was Kim Kardashian. Oh, no way. And like Kanye would drop her off some days. She would come in and I would be like, I think this is like, I'd be on, I'd be outside, we had a little patio, like a window with a patio so I'd be outside like sunbathing essentially. And she'd be like right there, right where you are. And I was like, I think this is Kim Kardashian. So weird. Nobody like no bodyguards, no paparazzi, just getting out of a car. There was a guy, I'm pretty sure it was Kanye dropped off a couple of times and then her mom came the second time and it was like every Tuesday she was doing this thing. And what I would notice is she would leave and was decked out when she would leave after maybe three hours, like full wardrobe, full makeup. And there all of a sudden be paparazzi now. Right. And so they would be capturing her as she was leaving. And then like after two months, she came out with that suspicion. And so it was like giving her the press, same thing. And it was like, what is happening? It was like the weirdest thing. Well, you know, they call and alert them. Like, this is the time that you want to be there. I learned that too. They don't tell them when they arrive. I learned that. I was like, oh, this isn't really, they're not really being followed that much at all, actually. Well, if you think about it, like how would the paparazzi find them? Right. I mean, I'm not sure where you live. But they make a way, too. Like they would be, it was the weirdest thing where the paparazzi would be out there for an hour, an hour and a half, just waiting. I used to work at a production company. It was the same production company that did the Kardashians. And so they had this interview building. And it was always like, you knew when the Kardashians were also filming there because like an hour beforehand, the paparazzi would start lining up across the street. And it was always this like, I don't know if it was like a written rule or unwritten, but they would have to stay across the street and could not cross until the Kardashians got there. And even then it was like this big pomp and circumstance event where Kendall or Kim or Chris would pull up in whatever nice car that they were in. This was when I think Tyga was also involved in that family, so he would pull up as well. And then all of a sudden the paparazzi would storm across the street. But it was always like, they got out of that car. It was probably after leaving the esthetician and they were fully made up, ready to go, like prepared to face the paparazzi. It was this big event for them. I cannot imagine having to get that done up every single day, like to be photographed. It's exhausting, like I feel for them in a way. I also will say like seeing her without makeup, quite the transformation. I was like, oh my God, if people saw you.


Hey, it's Joy, and today I'll be talking about Art Therapy. I'll be going off the article, Art Therapy, by Danzia Cecila. Many people suffer from mental illnesses, something that is commonly triggered by stress. It takes a lot of money to get professional help and prescribe medication, and oftentimes lack of money is the source of stress. People can spend from $360 to $2,400 for a single mental illness. Additionally, medicine can be harmful, as there are side effects such as diabetes, slow reproduction of brain cells, thoughts of suicide, and such. There are other alternatives, such as cognitive behavioral therapy, but most of them only work if patients are good at expressing themselves using words, because those alternatives mainly focus on answering one, why, and how questions. Art Therapy, on the other hand, breaks out of that mold and doesn't require specific answers. It's a cheap and safe alternative to recover or cope from mental illnesses, since it doesn't comprise physiological health factors. Art Therapy comes in many forms. 1. Theater In theatrical therapy, improvisation games give therapists a better understanding of what their patients are like, because theater helps people express the underlying issues hidden within the subconscious. It also helps people vent or act happy until they begin to feel better. 2. Dance Dance therapy works similarly. Freestyle dance helps therapists analyze the subconscious and can be used to vent or tell a story. Specific styles can be recommended to shape the client's mind. 3. Music Musical therapy is broken down into listening, creating, and performing. Different genres of music affect various people differently, and listening to certain ones is a way of coping that can be used as an assessment tool for therapists. Creating lets people express their emotions and their stories, while performing can be a wonderful stress reliever, since it allows people to fully express themselves. 4. Visual Art Visual art is diverse as well, as people get to work with all kinds of mediums, from sculpting to painting to sketching. Therapists can assess the subconscious by analyzing what their patients create, because making specific shapes and using specific colors can reveal a lot about a person. Art therapy can be tailored for certain people. For example, introverts usually start with one-on-one sessions that focus on self-realization using improv and art. Extroverts, on the other hand, might benefit more from group sessions that focus on communication and sharing their wicks, helping them gain confidence in their emotions and memories. This flexibility allows therapists to try multiple techniques and see which ones work the best without experiencing any repercussions. Since art therapy can range from theater, to music, to dancing, to visual arts, it can match the needs of many different people with their common goal of recovery. It has no negative side effects, so it's a wonderful way to become self-aware and uncover any underlying issues within the subconscious. Because it's so diverse and accessible, art therapy is an approachable solution for anyone, allowing people to relax, socialize, and exercise their brain at the same time. Who knows, some people may even discover a new talent or hobby. Now that you know the benefits of art therapy, what are your thoughts on it? Do you think that it's better or worse than other forms of therapy? Comment your answers down below! Don't forget to subscribe to our YouTube channel if you enjoy our content and follow us on our Tumblr, Twitter, and Facebook. And as always, thanks for watching and have a fabulous day!


Dear students, in this module, we are going to discuss that how family diversity is happening on the global level. It's a global portray of family diversity. So family diversity is a term used to describe a wide range of family structures, values that exist across different cultures and societies. When we talk about family diversity, we can't call any of the values of the family universal. It's not that the values that exist within a family are the reflections and representations across the globe that we see within the family institution. In fact, in modern society, family diversity is gaining more and more attention because of the globalized world because of the connected world and particularly because of the social media. While nuclear families remain the most common family structure worldwide, other forms of family including single parent families, blended families and same sex families are becoming more common. So because of the globalized world, we are seeing changes in the western world, changes in the family units, especially the major changes are the addition of single parent families. Since there is a lot of diverse rates, single parent families are also increasing. And single parent families and single parent families are also increasing. Along with this, there are blended families in which two such families have a relationship or two such families come into existence because of the marital relationship in which first there are divorces or separations or a spouse that doesn't exist in the world. For example, if a family or a woman who is divorced is married to a man who is already a child, then both families form a blended family. Then we see the same sex families are becoming more and more prevalent in the western world. Since in western societies, homosexuality and such relationships have a legal status, the same sex families like two women or two men, are also becoming more and more common in western Europe. The definition of family is also evolving with some cultures recognizing extended family networks, cohabitating couples or even groups of friends as family. So the definition is also very interesting. The most common or traditional definition of family was that two parents and their children form a blended family. Now this definition is subject to change because in the western world, the new patterns and trends introduced by families can also form a blended family. Single parent families also exist. There are also parents who are not married, but because of their relationship, they are considered family. Along with this, adopting children is also considered a part of the definition of family. So attitudes towards marriage and child rearing are also changing, with some cultures emphasizing individual choice and personal fulfillment over traditional gender roles and family obligations. So individual, because in today's society, it has more importance, for example, collectivity and family, because collective unit was considered in traditional society, because of this, your individual interests were considered to be very important to sacrifice so that collective good can be achieved. The family units constructed in today's society is important to preserve individualization. Keep your personal interests in mind. Decide on the basis of that. Decide on the goals and values of the family. Then economic and social factors including poverty, education and employment opportunities can also impact family diversity. So the factors of family diversity, especially your education, for example, to achieve education, if you go to any foreign country, if you get married there, that is also creating an interesting aspect of your family that in Pakistan, such people are considered to be a bit poor, called house husbands. But if those house husbands go to any foreign country, get married there, because of their social, geographic mobility, because of marriage, because of geographic mobility, then such people are not considered to be poor. They are considered to be the house husbands in their own culture. All these factors are very important to express your family diversity. Besides that, the family diversity is a very complex and evolving phenomenon. That is why it is considered that how it reflects the changing social, cultural and economic realities of the modern world. So it's a food for thought for you that you need to observe and you need to judge that how family diversity is impacting the unit of family in Pakistani society.


Roma wine presents suspense Roma wine made in California for enjoyment throughout the world Salute your house in your Roma wine toast the world the wine for your table is Roma wine made in California for enjoyment throughout the world this is the man in black here for the Roma wine company of Fresno, California to introduce this weekly half-hour of suspense tonight in Hollywood Roma wines bring you a distinguished all feminine cast of stars headed by Margo Miss Elsa Lanchester and Miss Janet Beecher the suspense play with stars these ladies and which is produced and directed by William Spear is called finishing school despite the absence of male participants in ethyl Lena White story we can promise you there is nothing dainty about proceedings and so with finishing school and with the performances in the order of their appearance of Margo is Caroline Watts of Janet Beecher as Melody and of Elsa Lanchester as Dean Sterling, Roma wines again hope to keep you in suspense. So vividly now just as I saw them the very first time those high stone I draped walls of Miss Nash's school for girls and the first person who greeted me that amiable soul Miss Melody I can see her too it was she in fact who showed me into my new room and who stood there watching me a moment smiling this is your first teaching job isn't it how did you know well if you've been around nothing but teachers for 30 years you'd know too let me guess now your subject is either French or no no it's sport on the nose what's your subject Miss Melody mine come in yes I'm Miss Sterling Madine welcome to the Nash school oh how do you do Miss Sterling I've been looking forward to meeting you thank you I wanted you to know about the general faculty meeting in my office pre this afternoon I'll see you then at three o'clock Melody yes Sterling Miss Nash is a little concerned about the new students might just check up on supplies for third floor it's already taken care of very well I should answer your question swap you see my subject is house keepers oh I didn't know I just suppose that you were one of the teachers I was up until a year ago when Miss Penelope passed away oh yes that was Mr. Nash's sister no changes like that are inevitable I suppose as inevitable as well that ugly rumor of that room about Miss Penelope's death but I hadn't heard any rumor or anything about it oh then I'm sorry this watch I I assumed you were that familiar with the school what was the rumor Miss Melody oh it was nothing really not even worth repeating wait Miss Melody look I'll I'll hear about it sooner or later well it's just a silly stupid tale but somehow it got around that Miss Nash's sister had been frightened to death this then was Caroline Watts introduction to the Nash institution a place which future events proved to be with the vengeance of finishing school that's the prologue for tonight's tale of suspense the narrative will be resumed in a moment but first let's take a little journey we'll journey to a capital in Latin America here at a gay allegation party on a lantern hung carols beside a garden pool listen everything is perfect at your wonderful party including this exquisite wine it is a wine that helps to bring back pleasant memory I of course agree it helps good friends such as us to appreciate good food too and this sherry has come far to add enjoyment to our allegation party it is of the famous vineyards of California in the far away United States see it is the celebrated Roma wine yes Roma wines are prized in other countries for the great enjoyment their superb quality of Ford they are esteemed as something rare a luxury but you in America may enjoy Roma fine wines in all the variety of types as an inexpensive everyday delight so trifling in cost are these fine Roma wines here in America that you can be a most generous host offering to each of your guests his or her favorite a delicious tangy California sherry a fine California Claret or Burgundy or a heavier sweeter California port you'll be delighted to learn from your dealer at what small cost you can get an assortment of several types permitting you now to boast of your private wine sellers as for Roma are all ma America's largest selling wine Roma wine made in California for enjoyment throughout the world and now it is with pleasure that Roma wines bring back to our soundstage Margo Elsa Lanchester and Janet Beecher in finishing school a tale well calculated to keep you in suspense frightened to death Miss Nash's sister well if I had known then what I know now I would have been able to judge with real accuracy the importance of Miss Melody's remark but the excitement of my first classes left little room for other thoughts a week or so later out on the athletic field one of my students Flora Nash the niece of the owner became quite ill I said it to the infirmary but within 10 minutes she had returned Miss Sterling she said had ordered her back I was furious and well I told her I was going to have it out with that woman what wait I know it isn't my place to say this but please for your own sake don't antagonize sterling oh now really I know what I'm talking about listen you know Miss Melody don't you of course Miss Watts she practically started this school with my two aunts when Miss Melody died everybody thought she'd move up to take a place but she didn't somehow or other sterling saw to it she was left with the job of housekeeper Miss Watts don't have any trouble with that woman please alright Flora I'll go see Miss Nash oh no why Flora Miss Nash is your own ass but sterling would find out please you must know I never heard such nonsense in all my life hurry straight to bed I went to the top floor of my building and entered the small waiting room of Miss Nash's quarters it was empty but just opposite was the door to the private apartment almost halfway open and I walked over to it ready to announce myself then I stopped dead still but it was then that I heard are you there Mr. Melody yes I it was an incredible sight seated at a table holy unlikely elderly but austere white haired lady I'd seen before was Miss Nash her eyes were closed and swaying gently she seemed utterly transfixed as she listened to Dean sterling's low mama we are here Mr. Melody we are waiting speak to her Miss Nash speak to her now oh my thing says you says you have predicted some tragic accident for another of our loved ones and then sterling turned toward me what what are you doing here I I'm sorry I wanted to speak of not the time or the place for that miss what miss Nash it's about your knees I'm familiar with this matter about Flora Miss Nash and at the moment I don't want you to be disturbed by anything so trivial trivial but I well I don't think I need to call a trivial miss sterling Flora was ill today why did you send her back to the field because she was no more ill than you are she was simply up to her old trick playing on the sympathy of a new teacher come we'll talk about this outside no I miss Nash your niece miss sterling she handled it and miss sterling knows best yes miss Nash good night if you'll just step out here no miss sterling you evidently don't realize that Flora Nash suffers from a slight heart condition it's entered on her card I'm sure it is because I entered it I'm a fairly competent judge in her state of health miss what's the simple reason that I happen to be a registered nurse can you say the same well no after this please be assured that I don't make a practice of deliberately murdering my students especially the niece of my employer I'm very sorry miss sterling very well miss what that will be all but it wasn't all I was bewildered even alarmed I suppose at the recollection of that voice calling out miss Penelope and I went to the one person that I felt must be told for quite a while the housekeeper said nothing then she motioned me to a chair you might as well know this miss what's sterling you see has deluded the smash into believing she can actually hear this Nash's sister she then reports relays messages which are supposed to come from Miss Penelope but Melody I'm afraid I don't under my dear these messages direct miss Nash to delegate more and more power to sterling that's a grip on this Nash that's the instrument she using to get the whole school away from her I can't under miss Melody how could she ever delude miss Nash that way the head of a school and in order to an old grief-stricken woman's what more important she's a woman who's been thoroughly sold on sterling's clever in power you see sterling's made quite a number of predictions and always they've come true they've come true because she makes them come true miss what there's a reason why I've told you this I have the feeling that rather soon there'll be another prediction and somehow some way it mustn't be allowed to come true I want your help miss Melody what could we do yes sterling what I'm perfectly aware that you regard me as a very ominous creature a sort of Lady Macbeth no doubt your special charge Florence shares the same view so bring her along when you come to my cottage tonight your cottage other girls I'm having a little party I hadn't what's the matter don't you want to what oh yes yes of course I do miss sterling I'd love to come back and you can come to Melody eight o'clock shop we were prompt Laura and I and the sharp tenseness and alertness we carried with us into that cottage banished almost at once to my surprise I discovered that when sterling chose to be she was one of the most compellingly charming women in the world and that night she chose to Laura since you're the one student in the whole pack of teachers we'll make you the guest of honor now what would you like to do yeah I don't know miss sterling anything I guess have you any ideas miss what well we can always play cards that of course is exactly why we shouldn't sterling I got what remember last spring that say aren't you gave us oh no no I don't think so Helen in the first place I haven't picked up a single new trick that's all right it'll all be new to Watson's Laura come on give them a chance to see you demonstrate your real powers all right then oh no I rather not Laura you're not scared are you a little maybe don't be it's all in fun like watching card tricks thank you yes we'll use this large table come on Laura you stick with me all right so presently in a room quite dark we ranged ourselves about a large bear table at the very head of which sat the dean and then the several long moments there was quiet broken at last yes by the low drone of sterling's yeah I hear you yes yes but you must announce your presence let us know you're here in the medicine just in the infirmary here the keys and hurry I'll go back sterling here what pick her up we'll put her on the server frightened yes frightened nearly to death there miss sterling you did this deliberately you knew that girl's heart condition you can't anticipate a thing like that I was simply going to tease her warn her not to not to fake any more illnesses well you see how she's faking this one you planned this mr. link the party having her here finding out her uncle's name I happen to know her uncle's name it was a joke a game everybody knows that game you tell these women it was a game but will you tell that to miss Nash don't know what I said oh yes she does you'll show miss Nash proof of another successful prediction melody you will have a completely at your mercy flora's the only remaining air to the school the only person who stands in your way don't leave all right flora I'm only going to get my coat will be right back please don't worry about a thing come along with five minutes later that melody and I crossed the campus to sterling's cottage and found it empty we learned that the doctor had arrived had prescribed for flora and ordered her to the infirmary sterling sterling alone was left in charge of the girl that's where melody and I found her directly before flora's room at the infirmary we wasted no time literally we pushed her aside and hurried into flora can't you see she's asleep the doctor gave her something to make her sleep is that what this is what this bottle a nice then you can see the label what it is digital a heart stimulant miss melody and not oddly enough a deadly poison the doctor left it here it's been given to flora every two hours now will you please be good enough to leave yes I'll leave but I shan't go far I expect to stay very close to this girl until she's safely under someone else's care you're completely mad aren't you that's an obgra marks sterling coming from you we maintained a watching post not far from the room and from their first melody then I made regular trips to the bedside flora was better there was no doubt of that and so at last I dropped off to sleep the sleep that lasted for an hour or more for dawn was filtering into the long infirmary corridor when I woke suddenly melody was shaking Caroline it happened what what do you say Caroline it happened what do you think she's dead flora's dead it was only a few minutes ago it's time for her medicine and I went over to wake her up for it her heart just stopped beating the medicine the digitalis you mean that's right melody where is it what where is it where is the bottle of medicine why why it used to be on that nightstand there but it isn't now where is it sterling what have you done I don't know let's see under the bed it might have rolled under but it didn't know under the chest of drawers either perhaps you should look out of the window maybe sterling decided not to give her any medicine at all this melody this medicine chest it's locked lock yes you happen to know where the key is one of our housekeepers major duties see if this will work Caroline being keeper of the keys it works what is it sterling bottle of medicine unopened unopened and unused I was right sterling you just sat there and watch her die that's not true Helen you saw me give floor of the middle early tonight right after the doctor left Helen you remember that don't you look like a different bottle still a different yes and I can guess what was in it a sleeping draft that's what you gave us sterling you knew that even a slight overdose would stop a weakened heart all right sterling we found one bottle the one that would have saved floor as life where's the one that took it you should know that melody what you should know where that bottle is because you took it out of this room just a little while ago when I was calling this Nash you are insane what's more you brought it into this room tonight in one of your countless visits you bought in a bottle of heavy sleeping draft and exchanged it for the digitalist you were hoping I couldn't tell the difference and that I'd give that to floor instead of the heart stimulant and that's what I did you did it all right but without any help sterling just how for example could I produce a bottle of sleeping draft so exactly like the digitalist that you couldn't tell the difference you had whole medicine chest to work with that's how you did it and that how I knew you did it Helen you know I know what you're thinking it just came to me go on when we were at the cottage when you set me over here for the bottle of digitalist that there wasn't any there wasn't any in that chance of course not sterling didn't put it there until tonight well that's not the point melody she couldn't have put it there at all because she had no way to get into the chest you see when sterling set me over here she gave me a key well well I forgot to give them back to her here they are I still have them in other words melody you were the only one who could put the digitalist bottle there in the chest very true what you said before one of a housekeeper's major duties is being keeper of the keys miss Melody that isn't true is it miss Melody it isn't true no the Scottish agent don't listen to the Caroline day no Caroline don't listen to us listen to Melody let her keep drugging you with lies until you see everything she wants you to see and hear everything she wants you to hear that's what she did to flora you know she flooded that poor girl's imagination with absolute terror and then she killed her I didn't kill her why should I why would I want to I so you could get flora out of your way so you could accuse me of killing her and getting me out of your way too you could have a clear path to miss mash well melody your plan backfired but you're not getting me out of the school Helen what go phone the police I'll never leave you hear that I'll never leave never oh yes you will melody yes you will and sterling was right too for within the month Melody was an inmate of a quite different kind of institution than the Nash school life settled down then into a state of normalcy that lasted through the rest of the year lasted in fact up to just four hours ago when I was crossing the grounds toward the main gate all of the teachers had gone into town and I was on my way to join them when I saw it there on the grass a tiny object glistening dully in the late afternoon sun what made me pick it up I I don't know but when I did it was as though a rocket exploded in my brain it was a small empty bottle and its label bore the slightly faded letters of the word digital then in the next instant sterling yes I I found something sterling this bottle labeled digital you know I bet anything in the world a good chemist can find traces of a sleeping drug in it you mean then you found it Melody's bottle Melody's bottle my guess is that Melody's bottle as you put it never will be found because it never existed except in your mind I picked this bottle up right here sterling right where I'm standing just three feet from the trash bin behind your cottage that was careless of me wasn't it you use this bottle we used it to get Flora Nash out of your way to kill her and make good on your warning you're taking it to the police I suppose I want to see if they can find your fingerprints on it sterling yes I'm going to take it to the police as fast as I can get there certainly what and the best of luck she went on inside a cottage and I struck out across the grounds for the main gate and the road into town I reached the gate just in time to hear the school caretaker playing it shut miss sterling he explained to just telephone the order and early closing hour I remember the service driveway then the other passageway through those high stone walls which encompass the ground and I found that it too was lost and then it was it was right then that the solution came to me I should have thought of it before Miss Nash herself was in those grounds right on the top floor of my own building I would take the bottle to her I would show her the proof the stairs down the corridor through the open doorway of the darkened suite with sterling and Miss Nash gradually then I don't know whether I fainted or not or how I got back to my room but I'm hearing it now and it is just ten minutes before midnight ten minutes before this school year ends my door is locked she has locked it from the outside but now now that door is going to open and she's coming in what are you going to do with it this revolver I'm going to use it to fulfill a predictor please don't please Laura made a prediction to Miss Nash tonight Laura made it through me do you understand that Laura made it to Lanchester and Janet Beecher tonight's tale of before we tell you about our star and story for next week a word about an American anniversary of 173 years this week still standing in California's a little winery founded in 1771 settlers from foreign countries discovered early that California vineyards were among the world's finest that in the rare combination of climate and soil which produces perfect wine grapes California surpasses some of the most famous Old World vineyards take Roma California share your port they are magnificent wines truly delightful yet like all Roma wines priced astonishingly low because you pay no duty no costly shipping charges toast the new year with Roma wine America's largest selling wine and let us hope that next New Year's we'll all be together our sons and daughters our husbands and fathers in a world at peace we help make this more certain with the war bonds and stamps we buy so for 1944 increase your purchases of United States war bonds good luck and help to you on and all from the makers of Roma wine made in California for enjoyment throughout the world next week Roma wines take great pleasure in bringing to you in his first radio appearance of the year mr. Alan lad mr. lad will be heard in a swift moving action drama played against the colorful background of the midway in an amusement park and called the one-way ride to nowhere don't forget then next Thursday same time for Alan lad in suspense presented by Roma wine are all m a made in California for enjoyment throughout the world this is the Columbia Broadcasting System


I honestly don't know how these companies aren't getting put out of business by class action lawsuits for making men grow tits and women start looking at other women, but that's a story for another video. And if Soylent Green did come to exist, it would be far more nutritious than any of these nonsense drinks. And for anyone unfamiliar with Soylent Green, by the year 2022, the cumulative effects of overpopulation, pollution, and some apparent climate catastrophe have caused severe worldwide shortages of food, water, and housing. There are 40 million people in New York City alone, where only the city's elite can afford spacious apartments, clean water, and natural food, and even then at horrendously high prices. I mean to be fair with what's going on, that doesn't sound too far off what could be happening, but that is not what triggered me to make this video.  So just looking at the ingredient list of this, if something's not clicking in your head, something's not working up there. You can start with water, and you know these companies aren't using reverse osmosis, charcoal filtered, well spring mineral water, it's crap it's full of fluoride, chlorine, antibiotic residues, corn maltodextrin, I mean usually they just put maltodextrin, but it is extracted from corn, it's starch, it carries over all of those negative pollutants that were in the corn, but if it was clean it would just be empty calories, sugar, third highest ingredient is sugar, I mean look there's some clever marketing drinks that are a little better than this, but this is just ridiculous. Milk protein concentrate, okay so there actually is animal protein in here, blend of vegetable oils, canola corn, very high omega 6, linoleic acid is direct poison, soy protein isolate, estrogenic, anti nutrients, horrible for you, nonfat milk, and then they have a whole laundry list of like 50 different vitamin and mineral additives to make this a complete food, which are all laboratory powders, and what drives me crazy is a grass fed whey protein like the one on Frankie's Surrange Foods, is far more nutritious than this, it has so many B vitamins, so many minerals, so much protein, it's so good for you, and it's literally one thing, whey protein, now I don't know why no one's made a big deal about soy land, especially considering the name of that movie, and what's always funny to me is on these websites with these mirror replacements or these plant based protein powders, it's so difficult to find the actual ingredient list, all they're talking about is how natural, how good it is for you, showing pictures of vegetables, filtered water, same problems that we mentioned with the water they're using for all of these other drinks, soy protein isolate, heavily processed and heated soy, it's estrogenic, it's high in omega 6, it's high in agrochemicals, anti-nutrients, maltodextrin is that starch made from corn, predominantly pollutant concerns, what types of solvents are they using to extract this, high oleic sunflower oil, it is a vegetable seed oil, it is high in omega 6, it is heavily processed, it's not as horrendous because it is high oleic, alulose is an artificial sweetener, we did a whole video on those, canola oil, another high omega 6 oil, this time it's not aloeic, but vegetable seed oils are the worst things you should be consuming, let alone in large amounts, frequently as a food additive, natural flavors, an attempt to make this taste like some sort of food by adding chemicals to it, and then you have the vitamin and mineral premix, which are the laboratory chemical extracts, we see this in all of these drinks, and between the ingredient list and these laboratory extracts, you're looking at probably over a hundred different sources to combine into one food, which is, it's insane, and those other ingredients on there that I didn't mention that aren't the chemical extracts are just types of food, additives and emulsifiers that are extracted from corn, soy, just more chemicals, more estrogen, more damaging to the body, it's almost like they tried to create a food that took all of the horrible aspects of a stands in American diet, and then just added stuff to it to make it taste okay, all of the stuff is horrendous for you, damaging your digestive organs, lowering testosterone substantially in men, not giving you bioavailable forms of omega fatty acids, B vitamins, D3 or K2 minerals, and when you have other drinks like fuel, I don't even know how to say that bullshit, which my viewers have been complaining, they've been getting advertisements for, it's not really much better, you know, they use pea protein, which has similar downsides to soy protein, ground flaxseed, which is probably the worst health food there is in a sense that people think it's healthy, yet it's so damaging to the body, brown rice protein, and any of these protein extracts, they pretty much check all the same boxes, they're estrogenic, they're highly polluted, they're highly processed, they're high in anti-nutrients, they damage the gut lining, tapioca flour, it's not actually horrible to eat once in a while if it's organic, if it's made properly, but when you're consuming it on a consistent basis, there is a cyanide concern, and people have had liver damage from this, without a doubt, because of how much it's been used in some of these drinks, sunflower oil powder, I mean, if that hyaluronic sunflower oil wasn't bad enough, this stuff would probably kill a rat if it ate it for a couple days straight.  We know they're all in on it, someone drinks this crap, they're not going to lose weight, they're not going to feel healthy, they're not going to get any better, they're going to keep going to their doctor, looking for other solutions. So why do you think when someone like me comes out and talks about this stuff, they don't want people to know? Because then they wouldn't be making any money. So thank you guys for joining me today. If you could please leave a comment down below, drop a like on the video, subscribe so that YouTube can unsubscribe you next week, and check that notification bell so that they don't notify you of my videos. You can go to franktesterfront.com. We have whey protein available on the foods website, and you can support me through all of my other businesses. Thanks again guys. I'll see you for tomorrow's video.


This is your Current Ops Report. USS Porter recently completed a passing exercise with the Romanian naval ship in the Black Sea. The two ships conducted basic maneuvers, small boat operations, weapons live fire, and a visit board search and seizure training evolution. In order to advance security and stability in Europe, Porter is on patrol in the US Sixth Fleet conducting operations with allies and regional partners. I'm Petty Officer Corey Hensley, and this has been your Current Ops Report.


Ladies and gentlemen, the President of the United States and of Mrs. Reagan. I've been called the Theater of Presidents as each Chief Executive has had a performance of this theater since 1835. We are honored indeed to have you carry on this tradition and inaugurate the reopening of our theater by your presence this evening. Thank you, sir, for chairing this evening with us. You're gonna toss away all that dough because of a day? Come on! In the funeral of half a hundred kids who've danced their feet off and gave me the kind of a show you'd be proud of.  Well, Mr. Dillon, you wouldn't do that, would you? I'm not after you. Oh, switchboard. Now, she's an old town of mine and she just told me Dorothy Brock has been calling all over town to get packed in. So that's right. Denny's in town. Let's get back in now. Let's not lose. All right. One of those big, broad, bright, broadway productions, 42nd Street Cat. Them sing and dance, as they did, made me wonder if I was seeing the reason why my own career, show business, took a different term. The National Theater opened as you were told by, on this site in 1835, when the occupant of the White House was Andrew Jackson, Americans perched on the roof and appeared through the windows of this building to watch the horseback inaugural parades McKinley and Teddy Roosevelt. They saw the face of the National when they watched newsreels of the inaugural parades of Wilson, Coolidge, and FDR. Parades that took place on American admirals still wore top-aid cats' hats. And through all those years, the National was staging productions that entertained and delighted the people of this city. In recent years, though, the National fell on hard times. Some even talked of tearing or downing. And then a year and a half ago, an army of designers, electricians, and carpenters went to work. They cleaned the exterior. They've refurbished the interior as we have been able to see tonight. Installed a new lighting and a sound system and added a whole new building, four stories high for dressing rooms and storage. And they did it all without a penny of government money to enjoy the results. A special thanks to Jay Adams, the chairman of the National Theater, to the Schubert's, Gerald Schoenfeld, and Bernard Jacobs, and of course to Carol Laxalt and Betty Wright, the co-chairman of Tonight's Gala. Claught everyone who had a hand in this wonderful restoration. With this reopening, Downtown Washington has a splendid theater and a living linked with the past. And speaking as two who live in the neighborhood, they're all delighted. One more thing, now that the national has reopened, even those of us in Washington, we'll be able to hear the lullaby of Broadway. Thank you, God bless you all.