J-E-L-L-O! The Jell-O program starring Jack Benny with Mary Livingston and Phil Harris in his orchestra. The orchestra opens the program with Latin Quarter from Gold Diggers in Paris. The name on the outside of a book doesn't tell you very much about the contents, but the name on the outside of a package of Jell-O tells you a whole lot. It tells you that you're getting one of the most delicious desserts you ever tasted. There's only one Jell-O, and that name is your guarantee that you're getting the real thing. For the name Jell-O is a trademark, the property of general foods. If you hear any other gelatin dessert called Jell-O, you'll know that is incorrect. So whenever you order Jell-O, always order it by name, whether it's from your grocer or in a restaurant. And this is National Restaurant Week, the week of May 2nd to May 8th. So when you're dining out, order Jell-O for dessert. And remember, to enjoy Jell-O's delicious extra-rich fruit flavor, Jell-O's tempting real fruit goodness, be sure to insist by name on the one and only genuine Jell-O. The Latin Quarter played by the orchestra. Now, ladies and gentlemen, we bring you a man who hasn't made a picture in over a year and still thinks he's a movie star, Jack Benny. Hello again, this is Jack Benny talking. And Don, I don't know what brought the subject up, but it might interest you to know that you don't have to make a picture every five minutes to be considered a movie star. Well, Jack, I didn't mean that. You know, after all, Adolf Zucker, the head of Paramount, gave me a four-year contract. And Mr. Zucker certainly knows his onions. He certainly signs them up, too. Marry them. You don't come into the next page. Oh. As I was saying, Don, I have a four-year contract with Paramount, and next season I get a raise.  Yeah. You see, my contract calls for so much money per week and lunch in the studio restaurant every day while I'm making a picture. Oh, well, where does the raise come in? Well, next season, instead of getting the 45-cent lunch, I get the 60-cent lunch. May not sound like much, but believe me, it adds up. But what I can't understand, Jack, is this. As long as you're under contract there, why don't they use you? Now, take George Raff, for instance. He's always busy. George Raff? Yes. Well, they're scared of him. You know, he's a pretty tough kid. Cosby and Fred McMurray, they're always making pictures of Paramount. Sure they are. Sure they are. And you want to know why? Why? They bring apples to Mr. Zucker. Teacher's pets, that's what they are. Well, if that's the case, Jack, why don't you bring him an apple? I did, and the worm got a screen tag. You know what kills me? This program has only been on five seconds, and already I'm in a corner. Say, Jack. Yes, Phil. What happened to that picture you're going to do with Francisca Gaul? You certainly talked about it enough. Oh, that epic. It was called off. You see, the studio and I couldn't get together on this scenario, and how it should be cast.  No. You see, I wanted to be Francisca's lover, and Paramount wanted me to be her father. And you should have seen that so-called happy ending they had. Here we go through a whole love story, and at the end, Ray Milan gets Francisca, and I get an old age pension. An old age pension? Yes, a fine thing to take to Niagara Falls. Well, one of these days, they'll wake up and give me the proper story in a strong leading part, and then you know what'll happen? Sure, you'll get the 75 cent lunch. You said it. It'll work out by itself. Page two. Hello, Jack. Oh, hello, Mary. What are you talking about? Oh, Don and Phil seem to think that just because I don't make pictures every two seconds, I'm not a movie star. Well, gee, Harold Lloyd only makes one picture a year, and he's a big star. Well, I certainly am. We're very much alike.  It's not rings. It's nightclub mascara. Now, let me tell you something, fella. Sometimes you can make too many pictures, and people get tired of you. Now, you take Clark Gable. See, he's in more pictures than Leo the lion. You know, Jack, I'm pretty tired of Clark Gable myself. There you are, fellas. Even Mary is tired of him. I'll say I had to stand in line three hours to see him last night. Oh. Gee, he's a dream man. Well, so you stood in line three hours to see Gable. Yeah, and you know what burns me up, Jack? What? Carol Lombard gets the dates, and I get the bunions. Well, that's beside the point. Anyway, to show you that I'm doing all right, Sid Grauman asked me to put my footprints in the forecourt of the Chinese theater, and you know that's some honor. Well, did you do it? Yes, sir. Tell him what happened, Jack. That has nothing to do with the tribute. What was it, Mary? Now, listen. Well, Jack went over there, and he didn't want to get his shoes dirty. Now, look, Mary, I didn't... So he stepped into the wet cement in his bare feet. Well... And he said they're taking bow so long that the cement hardened. Whatever. I got out, didn't I? Yeah, but tell him where your big toe is. Well, let's drop all this talk about footprints, and I don't want to hear any more about my cinema career. So please change the subject. Okay, Jack. How about your new house? How's it coming along out there in Beverly Hills? Sick and tired of all this talk about movies. What'd you say, Don? I said, how's your new house coming along in Beverly Hills? Fine, and if you want to know something, I'm starting a new picture for Paramount next week. Call artists and models abroad, and it's going to be swell. Well, that's changing the subject. Well, I can't help it. I'm too enthused. Say, where's Kenny? Here I am, Jack. Oh, where were you, Kenny? Well, I was just sitting over here in the corner with a book. A book? What is it? It's Einstein's new lowdown on the theory of higher mathematics. Well, say... Were you reading that? No, I was just pressing a flower in it. Now I feel better. I was worried there for a minute. But you know, Kenny, it wouldn't hurt you to read a book like that once in a while. It would improve your mind. Oh, I like Einstein, all right. Of course, a lot of his stuff is debatable. Oh, quite, quite. Yeah, but at that, he's a pretty level-headed guy. I'll say he is. Yes, sir. He seems to have both feet on the ceiling. Oh, definitely, you know. And furthermore... Now look, Kenny, Kenny, look. Before somebody asks us both who Einstein is, how about doing your song and we'll carry on with the program? Okay. Here, Phil, hold my book. Don't read it now. Don't worry, it's a strain for me to read the funny papers. Yeah. And don't you... And don't you bother reading it either, Kenny. You'd never understand Einstein. He'd have trouble with me, too. I know that. Sing genius. Hey, whatever happened to my picture? I don't... I've walked right in and through the shadows of... Love walked in from the Golden Follies sung by Kenny Baker. And, Kenny, I've always complimented you on your song, but I want to tell you something.  Oh, really? You... And you were swell. Yeah. Jimmy Finner gave me four bells and a popsicle. Well, you deserved it. You were great. You know, Jack, I don't want to be hammy, but I thought I did a pretty good job as Prince Charming. You weren't Prince Charming, Phil. You were one of the dwarfs. You were sleepy. Well, I can dream, can I? Well, that's what you've been doing ever since I hired you.  I don't know, huh? Gee, Jack, I took the part of Snow White and you didn't even mention me. Well, I was just going to, Mary. You were really great.   Mary Livingston in Rigoletto. Yes, Mary Livingston in Rigoletto. Also the Ritz Brothers. Mary, the Ritz Brothers will never play in Rigoletto. You don't know Xanax. You won't be in it either, huh? I don't care. I met Walt Disney on the street yesterday and he liked me so much as Snow White that he wants me to make a silly symphony. And I'm going to do it, too. A silly symphony? Why, that's marvelous, Mary. I'll bet you'll be as cute as a bug. I better be. That's my part.  Believe me, can you imagine the fun? Yeah, I'd like to be Pluto the pup. I'd like to be Donald Duck. Not me. I'd like to be Mickey Mouse. I'd like to be Walt Disney. Why, Kenny, you're getting pretty smart. Yeah, I better go and sit down. Now, stick around, Kenny. You can take a cold shower when you get home, you know? Well, Jack, speaking of last week's program, you all seem to have forgotten me. You know, I played the part of happy.  You don't have to act much. No kidding, Don. What makes you so happy? Well, Jack, why shouldn't I be? I like my work. I like to be with this gang. And I'm just goofy about Jello. Well, I can understand that, Don. After all, Jack, who wouldn't be happy when they know that Jello has six delicious flavors that it's so economical and easy to make? Why, it's enough to make a man double over with joy. Oh, I could jump up and down. And I tell you, Jack, whenever you see those big red letters on the box, why, I could go right out and do a highland fling. Well, do it, Don! Do it! Be careful, Don. You'll rip your killies. Ah, folks, what other program brings you such low highlights? We're graceful tonight, but that's about all of it. Say, Jack, let's get down to business. What are we gonna do for tonight? Well, Phil, I really wanted to do another play, but I must get over to my house. You know, the one that's going up in Beverly Hills. Oh, yes. I asked you about that before. How's it coming along, Jack? Well, it's worrying me. You see, Mr. Burgess, my builder, has gone haywire again, and I must get to the house. But why do you have to leave right now? Well, he's already built eight stories, and I want to get over there and stop him. And such extravagance, they've used over six kegs of nails already. Say, Jack, how many nails are there in a keg? 18,967. I thought you'd know. Someone's got to keep track of those things. I'm going over there now. Do you want to come along, Mary? Yeah, I'll go with you. Can I come too, Jack? Sure, Kenny. I'm not having enough trouble with Burgess. Say, Don, you and Phil take care of the rest of the show, will you? Okay, Jack. Well, goodbye. Oh, wait a minute, Jack. I won't be seeing you until next week. I'm flying down to Louisville for the Kentucky Derby. Also, you're flying down to Louisville. Gonna take a plane or use your ears? Well, never mind. But, say, Phil, as long as you're going down there, will you do me a favor? Well, I'll put $2 on stagehand for me. I'll give you the money when you get back. Oh, no. Why not? Well, you still owe me $2 on the Dempsey Tony fight. Well, they're still arguing about it. Anyway, I thought I gave you that $2. No, I didn't. I didn't. Oh, that's terrible. I must tie a string around my finger. Make it a rope and around your neck.  I didn't lose anything. Well, see you next week, Phil. Come on, Jack. Let's get started. We're going over to your house. Okay, come on, Kenny. So long, boys. See you later. Come on, Jack. Well, see you next week, Phil. Come on, Jack. Let's get started. We're going over to your house. Okay, come on, Kenny. So long, boys. See you later. Come on, Jack. We'll be ten played by Phil Harrison, his orchestra. Now, ladies and gentlemen, we take you to Jack Benny's property in Beverly Hills where his home is under construction. Well, fellas, here we are. There's my house. What do you think of it? Oh, boy, I think it's swell. Of course, it's not finished yet. All those things take time. How do you like it, Mary? It's all right, but what's the idea of all those statues on the roof? Those aren't statues. Hey, you guys, get a move on up there. Get busy. Oh, go boil an onion. Hmm. I wonder where Mr. Burgess is. He's much too lax with the workmen. Hey, fella, do you know where I can find Mr. Burgess? He's around here somewhere, but you're out of luck, buddy. We don't need any more help. Now, hold on there. I'm Jack Benny. I don't care who you are. We got all the men we need. Never mind that. Where's Mr. Burgess? What do you want a job for, Jack? You're doing all right. Kenny, I don't want a job. I'm looking for my builder. Say, Jack, isn't that him over there? Where? How many charges is on horseback? Oh, yes. Whoa! Whoa! La Cienega! La Cienega? This is where I get off. Quiet. Well, Mr. Burgess, this isn't a ranch, you know. What's the idea riding around on a horse? I got a cowboy suit for Christmas. Oh. Well, I just thought I'd drop around and kind of look the place over. Well, I'm glad you did. We're coming along fine, just dandy. That's good. Oh, by the way, I want you to meet Miss Livingston. How do you do, Miss Livingston? The pleasure's all mine. No, half of it's mine. You're cute. Mary. And this is Kenny Baker. He works on my program. Oh, wow. How do you do, young man? Hello, Mr. Burgess. So you're the man Jack's always complaining about. Kenny. Well, Mr. Burgess, let's have a look around. I'd like to see the grounds first. All right. We'll go around here to the backyard. You'll be mighty proud of it. I hope so. We're coming around to the backyard, man! Well, that was a spurt. Things are sure going fast back here. Oh, there's the tennis court. Yes, sir. We just finished that tennis court this morning. Isn't it a beauty? It sure is. Hey, wait a minute. There's nothing on the other side of the net. There's only half a court there. Oh, were you going to play with someone? Well, I certainly, of course, I'm going to play with someone. Well, in that case, we'll put the other half in right away. Yes, it'll help a lot. Can you imagine that, Mary? How can I play on half a tennis court? You never hit the ball over the net anyway. I do, too. I'm a regular Donald Fudge. Say, Jack, didn't you say you had a swimming pool over here? Oh, sure, it's right. Hey, Mr. Burgess, where's the swimming pool? The what? The swimming pool. Where is it? Well, now that's funny. It was here yesterday. I'll check on that. Hey, Doeville! Yes? Have you seen Mr. Benny's swimming pool? I haven't even seen his last picture. Well, my pool wasn't in it. Isn't that awful, Mary? How can a swimming pool disappear? Don't worry. It'll come home wagging its diving board behind us. Come on, let's go inside the house. Yeah, maybe that's missing, too. Don't be a bit surprised. Come on, Mr. Burgess. I want to see the inside of the house. Okay, this'll give you a real thrill. All right, men. We're coming into the house. My, what activity? I hope President Roosevelt is listening in. Well, here we are. We better go through this window. The door sticks a little bit. You better get that fixed right away. There's a window stick, too. Fine house. The window stick, the door stick. And you're stuck. How are we going to get in? Come on, Mr. Benny. I guess we can get through the door, all right? Just help me push it a little. Okay. Fine, how do you do? I always have trouble with that darn door. That is certainly very funny.  Isn't it cute? I'm sorry, Miss Livingston. That's the front hall. Front hall? Well, that shouldn't be out here in the back, should it? No, it shouldn't. I ought to get a zero for that.  Now look, Mr. Burgess, I want to see all the rooms downstairs first, and then we can go upstairs later. Yes, right this way, Mr. Benny. Programs, programs. You can't tell the bathroom in the kitchen without a program. Program. Hey, what's going on here, anyway? This house ought to be put in a straight jacket. You're right. And, oh, Jack, look at that sign over the fireplace. Where? Right there. It says Big Weenie Rose tonight. I wish they'd stop making a picnic ground out of this place. Hey, Kenny! Kenny, come over here with us.  It fascinates me. Well, don't get lost. Now, what else is there on this floor, Mr. Burgess? Just follow me. Now, right here, right here is the attic. The attic? Why, this is the first floor. Oh, that's right. Then shall we call it the sun parlor? Yes, let's. But if that's a sun parlor, there ought to be at least one window in it. If I put in one window, I might as well put in ten. Well, of course, that's the whole idea of a sun parlor, to get sunlight window. Oh, you're exasperating. Well, we'll settle that later. Now, let's go upstairs. I want to see the bedroom. All right. Okay, man, we're coming upstairs. Hey, this is a regular beehive, isn't it? Oh, they're practically slaves. Now, follow me upstairs. Come on, kiddies. Last one up is a baked potato. Come on, let's go. Annie, you lost.  Okay, put some butter on me. Now, Mr. Burgess, where's my bedroom? I want to see that first. Do you want the master bedroom, the guest bedroom, or just any old bedroom? I want to see my bedroom, the one I'm going to sleep in. Oh, well, that's the master bedroom. Here it is right here. Say, it looks kind of... Why Rochester? Hello, Mr. Benny. Well, what are you doing here? I moved in already. Well, the house isn't ready yet, and besides, your room is over the garage. I looked at that one, but it don't seem to fit my personality. Well, you'll just have to alter your personality. This happens to be my room. Well, I saw it first. That's not the point. You want to know something? I was here ahead of you three days ago. You didn't stick out no claim. Now, Rochester, I'm not going to argue with you. Oh, Jack, let him have the room. I'll do nothing of the kind. Now, you get out of here, Rochester, and get to your quarters in the garage. I don't want to sleep with your Maxwell. It snores. Only when it's on its back. Now, you can nudge it. Now, get out. Okay, you win. Come on, Jezebel.  You think that's something Kenny scratching. Now, look, Mr. Burgess, where does that door lead to, the one at the far end of the bedroom? Oh, that's a private balcony. It'll be nice when I get the ivy and everything on it. Oh, that's swell. I've always wanted a balcony. You'll have to pardon me now, Mr. Benny. I'll see you later. Why, where are you going? It's quitting time, and I want to go downstairs and wake up the men. Oh, by all means, yes. Don't have them sleep overtime. That's double. Well, I'll see you next week, Mr. Benny. Yes, sir. Goodbye, Mr. Burgess. Goodbye. That's the silliest laugh I've ever heard. He slid down the banister, too. He did. He's a smart fellow, you know that, Jack? Yeah, Kenny, smarter than I am. Well, we go now, Jack. Well, I want to go out in that balcony, because I know I'll spend a lot of time there taking sun baths and everything. Oh, let's see the rest of the house. Oh, we can do that later. I want to see the balcony. It'll just take a minute. Darn it, this door sticks, too. I got it. My, look at that. Here's a wonderful new way to make one of your family's favorite desserts. Of course, that favorite is jello, and the new way to serve it is a dessert called cherry gaiety, a cheerful symphony in bright red and green for its made with shimmering lime jello and maraschino cherries. And it's so easy to prepare. Dissolve one package of lime jello in hot water and turn into a shallow pan. Chill until firm. Then cut these little jello shiny green cubes. Arrange in sherbet glasses with half a cup of maraschino cherries and serve it plain or topped with whipped cream. It's a swell color combination and a swell taste combination for a lime jello has a refreshing tart flavor that's tempting and delicious. Jello brings you extra rich fruit flavor, grand satisfying goodness that belongs to jello. Get some tomorrow and try this attractive new cherry gaiety dessert. Just remember there's only one jello. So when you buy, look for the big red letters on the box. They spell jello. This is the last number of the 31st program in the new jello series and we'll be with you again next Sunday night at the same time. I want to take just a moment to thank Ed Vandevere for driving my Maxwell in the annual Fresno State College Hack Race last Friday. But Jack, but Alan's car beat yours. Yes, Mary, Alan won by a nose, which he talks through. Ha ha ha! Chalk up another one for me. How do you make a zero? Good night, folks. Kenny Baker appears on the jello program through courtesy of Marvel and the Roy Productions. This is an actual broadcasting company.


The historical track record says those societies that have been successful at raising food production, especially on small farms, have been very successful at improving their food security and bringing their whole society, including rural populations, bringing their societies out of hunger and out of food insecurity. But at the same time, even when food production is increasing rapidly, there will still be many households that do not have access to that food. And so something has to go on in the rest of the economy, as well as just on the small farms. That rest of the economy is the structural transformation, creating jobs, creating incomes for people who are actually not going to become food secure by growing their own food. They're going to get decent wages in cities and buy food in markets. Well, do you believe in supply or demand? You know, Malthus basically thought the world was supply constrained, and we would run out of food and that would keep the population under control. Sen thinks there's plenty of food out there. It's the poor do not have access. There's not enough demand among the poor populations. And it's interesting, in 2008 you would have said, boy, we're going into a Malthusian world. But here we are in November of 2014. And everybody's worried about low commodity prices, oil prices are falling, corn prices, my friends in the Midwest are bemoaning. They thought the corn prices were going up and they've gone down. And so it's almost as if we're in a Senean world because there's still hunger. Even with lower prices and easy supplies out there, there's still plenty of hunger. There's a lot of people food insecure. So I guess I'd have to say we're in a Senean world right now, but the worry is climate change, things change very quickly. The worry is we could go into a Malthusian world fairly quickly, and then how prepared are we? I think there are two fundamental insights from behavioral economics. First, behavioral economics is established pretty clearly that most decision makers, most individuals, make their decisions around some kind of a reference point. And the reference point is almost always where they are at the moment. And so if you're judging whether how you're going to change your food purchases when prices change, you make that decision based on what your current budget is and what your current diet is. That reference point decision making means that anytime things change, either for the better or for the worse, people are judging it against where they are and given the fact that we discount gains much more heavily than losses. We hate losses and gains are nice, but we don't count them as much. That's part of behavioral economics as well. What it means is even if the fluctuations are just perfectly up and down and even consumers lose out of that because they don't get the gain from when prices go down and they really feel the pain when prices go up. And so what that means is just for welfare economics, the gains to trade that we thought came from volatile food prices are illusory. They do not exist. That means the whole paradigm of free trade and the gains that come from free trade that we've grown up with the WTO is trying to bring that to everybody. That whole paradigm of free trade gets threatened with unstable food prices and behavioral responses to that. The second way behavioral economics is important is it stresses the role of expectations and how they are formed and in particular the prevalence of herd behavior. We tend to do what our neighbors are doing. We watch the TV and oh my gosh, there are people going to the supermarket buying all the rice up. Sam's Club in California has got a run on rice. I better go down and get a rice as well. In 2008 I was teaching as a visiting professor at Stanford and teaching a course on pathways out of rural poverty as the world rice crisis was playing out. So I would be online overnight and then I'd come into the class the next morning and tell them what was going on and I could see what was going to happen to rice prices and I had to confess to my class I went out to Trader Joe's and I bought all the rice off the shelf. I'm guilty of this. I was right of course. This is not irrational behavior but it's destabilizing behavior because if everybody does it then the prices spike. And so that insight from behavioral economics that we have to really understand the basis, the foundation of expectations in order to prevent herd behavior either up or down. If we want a stable environment you can't have herd behavior. That's a key insight. We are now seeing an urbanization process driven by the middle class that has the same dietary transition that we saw in Latin American and in Asia. Who feeds that? Well the concern has been the coastal cities historically have been fed with imports and they've been fed with really cheap imports because Europe and the United States dumped their food aid into Africa. I happen to think that prevented Africa from developing the food systems that would have provisioned their own cities. But what we see now is because of the dietary diversification and the demand from rapid growth in the urban areas we're beginning to see some supply chains working back and they're after higher quality fruits and vegetables. There's a modern poultry industry coming in West Africa now. High quality maize meal rather than the little stuff that breaks it up. We're seeing a demand for quality. We're seeing a demand for a diversified diet. I don't see any real reason why African farms can't respond to that if the supply chains work their way back. Tom Reardon is the supermarket guru that I work with a lot on agricultural marketing has just done a paper on urbanization in Sub-Saharan Africa and he was just startled to see how rapidly urban demand was growing. Now I think there's a legitimate question. Can urban demand grow a middle class without any significant industrial base? Is Africa really just going to skip over industrialization and go straight to a modern service economy? Build a transformed productive agricultural system in the rural areas that will feed a modern service economy in the urban areas and let Asia produce the widgets. I don't know. There's nothing in economic history that helps us play that scenario out but I think we have to think about that scenario going forward but it's very clear that urban areas are a real source of demand now in Africa. They're growing on their own. They don't rely on a successful structural transformation sending surplus workers to go into the factories. They're dynamic on their own. Now in China half of the rice that China consumes is procured in supermarkets. It comes in branded bags from very large scale highly integrated modern rice mills owned by the big conglomerates of the world. Cargill's in there, Weimar's in there. This is big business in the modern supply chain sense and these supermarkets are integrated pretty much back to the mill and the mill now has contracts with farmers to produce exactly the quality of rice they need to put in that bag to get to the supermarket. This is going to be a different world. It used to be, I sort of made my professional career emphasizing the fact that stable keeping rice prices or food prices, keeping them stable was a public activity because the private sector makes money when prices go up and down. They love market fluctuations and volatility and so stable food prices have always been a public responsibility and in Asia they really took that seriously. Asia knows how to stabilize rice prices. What happens when governments are no longer carrying the public stocks to stabilize prices in the market because they're not a very big part of the market? The supermarkets are doing it. Supermarkets are not dumb. They know consumers want prices to be stable. There are few enough supermarkets in each market that they can just tell their suppliers we need to keep prices stable.  You keep enough supply that we can keep our prices stable. We'll have to charge a little more for that. Consumers are perfectly happy to pay a little more if the price will stay stable. Think about urban consumers. They're completely vulnerable to the market.   They are totally dependent on the market and so anything that instills security, a sense of security and confidence in your urban consumer is sure to be popular and lead to food security. We have to stop converting food stuffs into liquid fuels. I don't know whether we do it with taxes or regulation. I don't think the economics are actually ever going to quite go away so I think it's going to take some kind of government action. But we're simply going to have to stop doing that. Now I know the technology people, oh there's second generation biofuels and third generation biofuels and that won't take away the food but they will require water and not only are we in a climate constrained world, we're going to be in a water constrained world in many, many areas. And so I think we need to make sure that the high quality food that's produced is available for human consumption. ASEAN plus three, there's an association of ASEAN plus South Korea, Japan and China that have a rice reserve scheme. The scheme itself isn't very important. There's not a lot of rice in it. But what is important is that Asian leaders sit down twice a year and they talk about food security. It was bad behavior on the part of Asian governments in 2008 that blew up the rice market. It was good behavior on the part of Asian governments in 2012 that kept rice prices absolutely stable and made prices skyrocketed with the Ukraine crisis, Russia crisis. Oh, if we behave ourselves, we can keep rice prices fairly stable. We don't have to basically beg our neighbor, the Philippines announced it will pay any price to buy rice. No, we'll make sure we build up our reserves quietly when the supplies are available.  Oh, we actually have rice in our warehouse. So we don't panic, we don't have to go into the market. So good behavior is part of that. I think the other thing will be in the future going forward as supermarkets become more and more important, their knowledge systems, their intelligence systems, their information systems are so good that they will be able to stabilize just because they can see better forward. Governments are not good at that. And so my sense is Asia is going to have a much more stable food system going forward. One proviso, if climate change really breaks havoc on Asian food production then I think we have to go back to the drawing board where we may need some kind of global agreement on how we're going to handle the big shortages that could come out of climate change. It looks different for a couple of reasons. First, they have a much less stable food system because they have very little irrigation. Irrigation is a big stabilizer in Asia. Indeed, most countries have domestic food production that's significantly more stable than the world market. And so in Asia, they've tried to keep the world market price from destabilizing. In Africa, the world market's way more stable than their domestic food systems because there's some such frequent droughts. You don't have good irrigation. You don't have very good transportation systems. So if you've got a localized drought, you're going to have real scarcity. And you can't get food across the borders very easily. And there's lots and lots of borders, a lot of small economies landlocked in Asia. But then the other thing is it's a multi-stable food system. It's corn and cassava and yams and sorghum and millets and wheat now. Lots of different staples. How do you stabilize that? I'm pretty good at stabilizing rice prices. I did it in Indonesia for 20 years. I know how to do that. But man, I would not know how to stabilize cassava prices. I wouldn't know how to stabilize the prices of chili peppers. Whether consumers wanted that or not, I just don't think logistically, mechanically. Financially, we know how to do that. That's where Africa is caught. It doesn't have that single dominant food stuff that is not too difficult to stabilize. My colleague at Michigan State, Tom Jane, has really spent a lot of his energy in the last 10 years showing why food price stabilization, especially in eastern Southern Africa where he works, is very, very difficult. Made more difficult as he points out by the fact that the private sector does not trust the government, any government, and none of the governments trust the private sector. And if you don't have that, then you're not going to be able to stabilize prices. It will be impossible. So then the question is, how do you do a successful structural transformation, agricultural transformation in the context of a very volatile food system? We've never done it before. So this is a big challenge to us as we look back at history and forward at the nature of that African agricultural system.


Okay, we're back to Wednesday. We're doing Trump week on a Wednesday. That's Tim Appicello over there My co-host on Trump week every week on Wednesday one of the most important shows we do in our lineup 11 o'clock on Wednesday So we look at what's going on with Trump and figure out what kind of crazy things he's done this week and trying to connect the dots with last week and next week and This week has really been chuck-a-block. I guess, you know, why why do we care so much? Why do you care so much what he does? well First off Cynthia is not here and I know she cares and she's She deeply regrets not being here today. Why do I care because this is my country? This is the reputation of Americans and what's transpiring here in the last couple weeks alone is enough to Have us go look ourselves in the mirror and say who are we as Americans? And that brings me to the first topic and that is the announcement that Turkey can come in into Syria in the unilateral decision by Donald Trump himself and this certainly means that the Kurds who have been our allies for years and years and years who have fought 95 percent of the wars against ISIS and We're gonna stab them in the back and give tricky a green light to just bomb the hell out of them We did stab them in the back. We just did they're bombing them right now as we speak The world knows exactly what we did and the world is now going to see the results of what we did I feel great shame as an American that this is occurring right now today Great shame that we do this to an ally What does America stand for nothing else than to stand by our allies that we have for since for Over 150 years we stand by our allies trust us who could trust us and and what is the implication on NATO on this? a huge implication and I think at the end of the day This puts Erdogan and Turkey closer to Russia and further from NATO. He doesn't care about NATO Well, not only that, but this is a you know, this is an open invitation for now Iran Syria Russia Look the Kurds are gonna they're gonna have to side with somebody and if they can depend on the United States They're gonna have to go to God forbid Iran And you know seek protection under their flag or Syria Why do you do this? You know we predicted last week just a week ago that he would do something to change to do a change up You know a distraction it wasn't and and I thought maybe you do something with Syria. I was right That's what happened But what was bizarre about it is this telephone call and it reveals that he has these telephone calls with national leaders around the World that are bizarre that are that are not, you know Part of the script they come off the wall and then he had a telephone call with With Erdogan where it changed his mind and it changed national policy Geopolitical positioning all in one call Complete 180 and now he's dumping on the Kurds and he's I guess I'm not sure what he's doing befriending Erdogan Which I don't think there's a good relationship there anyway So, you know That that is bizarre in itself that without any advice without the without consulting right military He doesn't have a secretary of state because because Pompeo is merely a yes, man, and he doesn't have any he doesn't push back He doesn't collaborate in the thought process. He just does what Trump tells him So, you know, he did this by himself as you said, how can we have an international global? Policies foreign policies where one guy runs it and he's ignorant. How can we have that? We can't this is chaos chaos in the making You said it several times in the previous shows. This is a sole proprietorship of leadership because the United States We cannot continue to operate like this and we've got to somehow Reverse the damage that's been done particularly and help the Kurds as best we can and they're being bombed right now Turkish planes are bombing Kurd positions And this is how we treat our comrades in arm that have been on the on the on the fighting Fighting lines for years and years and years. This is how we treat them This reminds me very much similar to what happened when we were in Iran And we had situation when Donald Trump came to office and he you know He had that Muslim ban and we had interpreters in Iran that were under death threats in Iran And they wanted to seek asylum here in the United States and Trump said no these are our comrades These are the guys who risked their lives or families lives They're you know the whole generation of lives because that's the retribution that they can expect who would trust us Nobody what do we stand for if you can't trust the United States of America? Yeah, well, I mean you can't sorry You know this is another major blow to our trustworthiness and he's done it And what's what's worse is that he he probably didn't know exactly what the relationship with the Kurds was in the past That's not true. That's not true. Oh really September 28th 2018 Donald Trump is good to say all the things Kurds the Kurds have done for us They're great people So he acknowledged that they've done things for us at least now he turns on them Because of one turn only stabbed them in the back. Yeah, I'm as you could tell I'm not happy Well, I mean the result of this it's not only we lose credibility around the world the result is it'll it'll it'll throw the Middle East into much more much more pandemonium and The this is this is like pulling the keystone out of the arch everything is going to fall down now They always say that you know Turkey is the You know, however, you want to interpret this is is an important. It's a capstone one guy said Of the Middle East Western influence in Turkey and it's the joining of the East and the West and all that it's big country And it has a you know big history it has the ability to stick around for a long time Well, they they have a long history with interaction with the United States And they also have a long history of genocide against the Armenians and could be potentially not against the Kurds so as Turkey goes so goes the Middle East and And of course as the US's position in the Middle East goes so goes the Middle East I'm very worried about what Trump has done We don't have to dwell on the other moves he's made in the Middle East, but he certainly wrecked our relationships And I think he's done enough including especially this last maneuver To bring the Middle East into a new kind of a conflagration Yeah, I don't have a problem with the statement that you know He said he was elected as a president to get out of our wars and you know all the trillions of dollars We spent I don't have an issue with some of that, but I have an issue in the way He's doing it you know laterally and what do you have a hundred troops in Syria? That's all That's all and and so getting out of our pulling a hundred troops out. It doesn't mean much I'm sorry, but it's the green light for Turkey to come in and do what they please That's that's the biggest issue is the green lights and go ahead and you know he he made some kind of comment about Turkey and Bossum basically he said if Turkey does anything now That's three days ago if Turkey does anything in my unmasked wisdom remember that Wisdom yeah, I will wreak havoc genius. I will rake, you know wreak havoc on their economy Well, guess what three days later? I I don't think they care Erdogan responded to that. He said we'll do what we want. He's not going to tell us what to do It didn't be friend Erdogan that he that he said that it was a threat on Erdogan well this the background of that was Erdogan wanted to meet him in New York and Trump snubbed him didn't meet with him and so that made him very unhappy and This is some way of trying to you know to smooth out smooth that out and say oh go ahead You do what you wish with the Kurds do what you wish now you if you want to come into Syria because you were you were snubbed in New York Really? So it's all backward and it's it's all crazy and it's not getting us anywhere. It's hurting us It's hurting us in in fact and in an image But let's move on because I continue to feel that what he did was a distraction from his impeachment problems This man is being impeached right? And I think the most the thing that sticks in my brain is that eight-page letter that is Kaleidoscopic White House. I say kaleidoscopic White House because every time you look this new people there Advising him and wrote this stink of a letter saying I'm not going to cooperate with any of you guys because it's not a legitimate Investigation how dare he do that?  You can't do anything. I'm ignoring you That's that's not one why right so I said well, it's not quite a constitutional Crisis I think it's a constitutional There's a you know that thin little dividing line the constitutional crisis would be Would be pushed forward if he overtly avoids a supreme court decision or ruling So that in the article, but I'm you know ignoring the Congress ignoring these subpoenas Not not responding not providing documents nothing building a wall around the article three under the Richard Nixon Constitutional crisis is worse than Nixon's that was our article three his obstruction Yeah, I mean talk about just checking the checkboxes for obstruction Yeah, and a rationale for a vote for it Frank Bruni the New York Times I get his newsletter because I like him in and he was saying you know Isn't it enough? Why don't they just go to a vote already? They should not distract the Congress the House the Democrats in the house. Why are they expanding?  They already have what they need We said that last week go for it Don't waste time because time works in Trump's favor. Yeah, that's that's what I said last week and in here again Keep getting more information more information and making it more complex that the American public won't understand this Right this is fusion. That's what that's what Frank Bruni said. Yeah, and so I think you know I don't think that Nancy Pelosi fully understands this. I don't think a shift fully understands this They've got a move on it the public you and me and a lot of friends of they're ready for this And and we should just move to when patient I did listen to Substruction is part of it. Yeah, I listened to a representative at case for two hours. He had a telephone townhouse town square meeting and He was a Johnny come lately on this, you know throwing his hat in on the the impeachment inquiry And he said there's three things that we have to verify one did Trump ask Ukraine to interfere in our our upcoming election and the quid pro quo To did he withhold money from Ukraine as far as their military assistance if that can be proven The answer is yes, it can be and last but not least but Did he interfere with the lawful whistleblowing process? We're sure for sure. So those three things, you know, that's what he wants to see out of this He interfered with Congress's process. Yeah It was to what degree is the the obstruction so the bottom line is You know someone who was reluctant and his rationale for not Voting for an impeachment earlier was that you didn't want to see both Republican and Democrats Whatever the president whoever the president is elected You didn't want to see impeachment being used as the arsenal because they don't like style or political decisions They didn't want to see the impeachment process being implemented I understand that but these are clear cases end with Mueller 10 are you know 10 points of obstruction? These are valid reasons for an impeachment inquiry and certainly for an impeachment vote I don't know if I fully agree with him, but he he needs to defend his delay That's why he's coming up with these reasons to justify his delay but the reality you and I have talked about it We should run for office Is that you know this should have happened a long time ago We're not talking about style here. We're not talking about we're not talking about policy We're talking about the mad hatter, you know, who every everything he does is crazier than the last thing and we're doing It's a new normal so, you know what what's happening now about You know ignoring ignoring the Congress is just outrageous Let's take a short break Tim. We'll come back as much more. We could never finish these shows. We'll be right back Hello, I'm movie Hanuman. I want to tell you about a great show that appears on think tech Hawaii It's all about tourism. In fact, we call it tourism 101 Well, we talk about the issues and challenges that faces our number one industry throughout the state We'll have some interesting guests Very informative dialogue and allow you an opportunity to maybe learn a little bit more by why this industry is so Important for our state. It's been great for us in the past. We need it today and especially going for it That's tourism 101 on think tech Hawaii Mahalo Aloha, my name is Victoria and I'm a host at the adventures in small business This is a collaboration between us small business administration Hawaii district office and its partners Where we showcase the stories of local entrepreneurs and small businesses Talk about how to start a business talk about great tips for small business owners Please join us every Thursday 11 a.m. I think tech Hawaii You said Mahalo Yes, we're back. We're back on Trump week and we have much we have miles to go Okay, let's let's go to the the judge and the Gee the district court in New York. I think this is under strict in New York rule rule against him He filed an action in that court in the federal court to try to stop Extra turns. Yeah, Cyrus Vance who was the who was the district attorney for Manhattan get Trump's tax returns virus tried the district court agreed and I mean with Requiring the release of the tax returns major decision And it's that opinion that was so interesting and he laid it out the way I would have laid it out I mean, this is protecting our democracy. The president is not above the law. There is no good reason whatsoever To exempt him from this process or from criminal investigation.  Well, that's never been a Supreme Court ruling. It was an opinion in the DOJ So the judge took issue to that and and you know here We have the president in the White House saying well, not only are we not subject to indictment, but also now we're not subject to impeachment and You know the judge took issue with us. Yeah, so what are you? I mean, basically you have self declared yourself king of the United States where he's been going and if you connect the dots with our Little show over here. Trump week. That's what you find and and the really troubling thing is that people seem to accept this It has a ring about it. It has a familiarity about it He wants to be king. He wants to be a dictator. He doesn't want to be troubled by the Constitution I think we're in a constitutional crisis because he's going to keep on doing that Which takes me to one sidebar point and I've been trying to figure it out. I've been talking to people trying to get there You know their thoughts on why does the base support this craziness doesn't the base? No, this is this is a stress and strain and a breach of of the United States Constitution of everything's country stands for Why do they support him support him give him money? You know, he's got almost a billion dollars in the till and it increased that every time he gets to you know He does one of these really wild things gets more money. Why do they support him? You have a theory? I have theories only The story may be similar to Richard Nixon when he was being impeached They were going through the process and he maintained a strong 38% Well, it's not strong, but he would maintain 38% why wasn't those numbers lower? Donald Trump has a cult of personality and You know, I'm getting to the point where I'm gonna start saying the cult of personality similar to Jim Jones I mean if he says drink the Kool-Aid boys and girls do as I say I'm not sure that they wouldn't do it. Oh, I agree with you You know, this is money on Fifth Avenue and get away with it You know, these are you know, these are extreme things for me to have to say but at this point out There's a certain percentage of this country. They know that he's you know He's trying to basically break the Constitution He's trying to be above the rule of law and they don't care now your question is why well I think they just like them. They like the cult of personality. I think that Donald Trump appeals to their inner if you will races tendencies He's trying to make America great again. Well, what does that mean, you know nostalgia for the best out of for no rights or for women No rights for you know gay lesbian No rights for you know minorities You know tight immigration. I don't mind these tight immigration issues, but This is not the best and the best that America can do well He you know, I had a conversation with somebody this morning about this and his view of it And I guess I would have to agree is that this not one thread only Maybe the they're the underlying feature that brings them together Is the cult of personality as you say the Jim Jones effect? But I think there's probably a lot of reasons that people jump on that bandwagon Some of it is is racist some of it is bigotry and hatred some of it is They want to protect jobs for white America, you know their job and they think that you know Hispanic crossing the border Japanizes their jobs Some of them, you know, I'm just very unhappy. They're unhappy with the federal government They'd like to blow up the federal building in Oklahoma City You know, they're just angry with the federal government and they don't want any part of it What's harder to understand is the rich guys and with the education You know, and they made they may turn ultimately The ones who are paying less taxes, they're really happy with that The ones who are involved in this high-level corporate management They may be happy with Trump because he's saving them some money and making them look good But you know, I don't think they're gonna stick with this in the long term Bottom line though is that I think there's a lot of elements a lot of factors and sectors all bunched up under a Personality call where he doubles down on everything where he criticizes people where he gives you shot and Freud the enjoyment of seeing other people's misfortune and and that somehow Acts as a common denominator. I guess I want to differentiate between those that are you know regardless of what he says or does They're loyal. They'll never question his his words or his actions There are people are gonna vote for Donald Trump that did vote for Donald Trump that are doing it based on policies things They want to see I'm thinking of the you know, the evangelical Christians I think okay, he's there to get the Supreme Court, you know to apply where they're gonna reverse Roe v. Wade Yes, there are those that say, you know, he look at my stock portfolios better than ever There are those that say, you know, I am I like him because he is tough on immigration. Those are policy reasons I don't have an issue with that. I don't like the way he's implementing those policy, you know Strategies, but I'm separating those folks from the those that are just no matter what he says or does It's okay with me no matter how horrific Putting kids in cages. It doesn't matter what it is He's okay with us and we we like Trump. I'm gonna stick with them no matter what he does Well, I think it's a whole combination of things. They all have their own reasons But they all come together and if you talk to them, they will have a defense They will have you know, one guy I talked to he said he said You know, would you rather Hillary Clinton be president thinking that you know? I I'm one of those people who hate Hillary Clinton so much. I would vote for Trump instead. I said no Yeah, I'd like to have Hillary. I'd like to have anybody Anyway, let's just it's just it's an explanation a discussion. We have to have moving forward Let's go to talk about the split the GOP because this Tags right on to this topic that we're just discussing and and they are starting to split off They're starting to flow now a lot of them aren't necessarily saying, you know, this is wrong But they're starting to ask the questions Lamar Alexander of Tennessee. I want to know the facts he's talking about the impeachment inquiry and Mike Crapo from Idaho. I want to wait for further information for facts of this matter Okay, Rob Portman. I should have not erased the Biden issue on that call period Mitt Romney, we know what Mitt Romney has said John Fume. I'm not a fan Cases about the president and how he goes about this. So here we have some cracks in the veneer and rather serious cracks Now you take that then you couple it up with the other Republicans about the you know The tricky coming across the border and and putting the courage and in jeopardy You have Lindsey Graham and a whole bunch of others. So these are serious cracks That's a Senate report that just came out about Russia but our Russia was more actively involved in screwing up our election in 2016 Yeah, that report just came out. Yeah, that's out of the Senate. Yeah, that's a Senate. Yeah, that's a bipartisan Senate report Yeah, so of the of the Republicans in the Senate Zero support impeachment inquiry at this point now 14 of them say they have concerns or serious questions about what occurred Okay, and then 39 support Trump unequivocally. Okay, that's the Senate Those numbers are gonna change. Oh, yeah, because he's not gonna get any better I gotta say though that last week just to connect the dots people were saying when the you know Impeachment thing began. He was making these outrageous statements and calling for help from China and all this People were saying, you know, he doesn't have a defense. He doesn't have a team He doesn't have a strategy to deal with the impeachment. Okay. Well, he heard that and now he has a strategy It's distraction Deception and it's that eight-page letter say I'm not gonna cooperate name-calling name-calling, right and you're all you're all Traders, you're all all of you, you know should all be removed, but you know, I don't think that helps him I don't think it helps him in the Senate Because it's bad karma and it's bad precedent for the way government should work The other thing is the other thing is that the polls the country because the Senate is somewhat I hope the Senate is somewhat responsive to the public opinion in the country and the polls are changing They're shifting. Can you talk about it? Yeah, I will I guess I just want to make one quick comment for I hit these numbers is It's not so much The the the veracity of them coming out against Trump It's the silence of them not supporting Trump and I think that's a really critical point about the Senate. Yes. Yes They're not really out there saying, you know What can you say to it?  Give me a break. It's there in English the quid pro quo Yeah, and they still there's some of them still say that it's like a lie in public It's like walking around in a lie. Okay. Anyway, talk about the polls talk number because these are these are shifting numbers now If you remember just as the story broke about this Ukraine phone call We had 37% saying that there should be any kind of mention of of impeachment inquiry 37% well those numbers have changed Washington the Washington Post poll 58% in support of an inquiry NBC 55% Quinnipiac 53% now those numbers are up and of that of those three things 18% of the Republicans on the Washington Post said, yeah That's let's let's let's look at this inquiry On the embassy 11% of Republicans and the Quinn Peck was 6% so of Let's see out of seven different pollsters Five of them were over 50% NBC 55% watching yet Washington Post was 58% CBS 55% so five out of seven were over the 50% percentile. That's that's a that's a shift That's a movement. It's not a movement, but it's a shift, you know, you know what that tells me though Just in the way like Washington Post of all of those media The most aggressive in terms of stories against Trump and the way they characterize things and Lo and behold, they have the highest percentage of people who want the inquiry want the impeachment and I say to myself You know, there's something to be drawn from that That's the Washington Post community Washington Post is aggressively against Trump and it gets feedback in its polls that are more aggressively Against Trump and so forth for the other ones And it's just it strikes me that there are there are communities around there are phenomena That are happening that we don't fully yet understand about how people react on a sort of mass Psychology basis to the messaging that has given them. There was some guy testifying in front of Ted Cruz It was on C-SPAN. He was the former President of the American Psychological Society and he said he had done a study of how The Russians Operated or could operate how Facebook operated or could operate on changing the results of an election One way just one way there are many ways But one way and this was really extraordinary. He said they could have in his analysis a huge effect on an election By sending a go to the polls and vote message Okay, to a certain list list say of Republicans and You know day before our election day go to the polls and vote and nobody would know that they didn't send it to the Democrats Just the Republicans or it was subset, right? Right does motivate people to go to the polls and vote Well, if you motivate one group and they go to the polls and vote you are effectively changing who goes there By a certain margin by a certain thing. He was talking about a differentiation of like 10 million people And I don't know if I believe this guy was in the Senate and Ted Cruz is not credible for me But but it is a catchy idea that with a very fine fine tuned almost elegant change in the way you message in In social media you can change at least theoretically and maybe really you can change the vote well 2016 the Senate report that just broke out the bipartisan Senate Senate report is said the Russians focus Strictly or almost exclusively on African-Americans Yeah, so is that wrong by itself? We haven't come to that You know we can make a rule says you can't focus only on African-Americans We can make a well, you can't make a rule that foreign powers. So not of course What about Facebook? Yeah, they go only the Democrats and say go go vote and not Republicans Is that can that be against the law? What I'm saying is that we don't really fully understand the mass psychology Well, we have the FCC rules have not caught up with television and radio or social media and come on Let's face it a lot of Americans get their news from Facebook. Yeah from all these other social media sources Where's the FCC rulings on on that as a net as entities It's not enough time. Yeah speaking of time. We're out of time But I wanted to ask you what you think we should be looking for next week. We're obstruction more name-calling more We'll see who shows up at some of these subpoenas We'll see if some of these records get you know finally transferred over We'll see if there's any court decisions on, you know the efforts to block subpoenas. Yeah, I remember there's an awful lot of litigation Yeah, we'll see more stuff in the pipeline. We'll see more whistleblowers come out from other parts of You know Department of Justice or maybe the State Department More unknown things like that things that will you know fill the airwaves and then we'll soon forget it because there's So much well on that point I would offer my thought I think next week We're gonna see more distraction. This isn't necessarily gonna be in Syria because I don't think you know Syria is a good thing for him But somewhere else something else somewhere some other place This is a reality show and he wants to keep us hopping He wants to keep populating those first 20 articles in all the papers and we'll see more distractions from a you know A foreign policy point of view. That's my prediction. All right. All right. Thank you, Tim Trump week Thank you, Jane. Aloha to you


I run the Israeli Selenium Meetups. So this talk actually started as a discussion where we talked about page objects. And everybody says they want to implement it in a different way. So I just put it in writing what people think they should do. And what I wanted to present to you is the questions and the pros and cons for every decision you can make when you decide and you create your page objects. OK, so let's start. So about me, well, I did a lot of stuff. I always thought it was non-related to test. But apparently, everywhere I worked, it was test-related even with IBM. So it was how I helped the testing. The cadence, that was the language specific for the hardware verification. And obviously, I helped, I know a lot about web, but I thought nothing about testing. And I helped with the weeks with the test automation a bit, and then found out there's no UI verification tool. So I ended up in Apple Tools. They have a great UI verification tool. Should try it out. Now I'm trying to solve the challenge that everyone wants to solve for the last 30 years, which is the Recode Playback Tool. So let's start. So I'm going to talk about page objects, why and not, and how to remove all your slips, that everybody that's the source of all evils. There's a different talk about locators. You should probably check that out. And we're not going to talk about retries, which you can see in single-page applications. You see it on Angular. You should probably use more advanced techniques. So the page object is just a simple design pattern. So it's funny because what developers do, the architect usually, he takes the model of the application and he needs to transform it into a UI. And it's funny because now we have to take the UI and we actually want to transform it into the same model again as the user sees it. So it's almost the same. It resembles the model that the architect saw it in, that you have in the back end. But now you have to reverse engineering. And so what we're going to talk about is software design. How will you use? You use objects, you use classes. People like to use it so you can reuse using inheritance. Some people prefer delegation. You can use all that. So let's start with page object and see what it is. Everybody knows it by different names. When I started it at Wix, like 10 years ago, people called it drivers. There wasn't any documentation. And it's not just pages. It's not just for a specific page. Every component should have something that some kind of driver that you can interrogate the component have. And actually what you want to do is separate between the implementation and the model. You want to have it as a service. You expose a service, actually, at the model, which you can interrogate and drive through. So I think someone says that Simon said that if you're using in your test, you're using the selenium. So you're doing it wrong. So I hope I didn't misquote anyone. So we'll start with the basic login, which is very simple and kind of interesting. That's the thing, the Google login. And after you remove all the CSS parts that related, you basically get just two text boxes and a button. And usually people start with a test, who actually looks like this, you just, OK, if I want to do a login, I'll enter some text to each text box, and then just click whatever I want. And now after I log in, I'm going to try, I'm going to wait till something loads up. And I'm going to do some assertions. So usually every step is why you start in a state. You use Tim Stimley to go to another step, and you do some assertions. So OK, so Simon says no. Please don't do that. So let's see what can we do. We want to split between the business logic, between what we're actually testing, the application itself, and remove and change it to move to the side, or the implementation part. And I saw it in action at Wix. They asked me to help around with the test automation. The guys started out really, really bad. Now Wix has the best automation in Israel, probably. But there's great guys there. But they started out with exactly what we said you can do. So the first thing I did was, OK, let's separate. I wrote over the weekend interfaces for the entire application. And I gave it to the tester and said, OK, use those interfaces. Now you can write tests. You have the business logic. Everything a user can do, everything you can do with your click, and your test, and your scenarios. You can write now. It's interfaces. But now give me two Wix. And I implemented the application so I can easily implement the drivers. So I separated between the business logic and the implementation that worked out great. The tests were, after two weeks, the test were the minimal code they wanted to test that was over. And we implemented it. So that worked out great. So let's see how we can do that in exactly with the login page. We do want to have something representing the login page and make a connection, a simple login action. Now the question starts. So when we do this presentation is in Java, but the same question applies to all not just the static languages like C-Sharp. I think the question is about architecture. So the same decisions is similar in PHP, Ruby, JavaScript. So what do you think, maybe we should ask you guys. So what does the login has to return? Let's say the login brings us to the gallery page. So there's two options. Let's go to let's return void or let's return the gallery page. Who says let's return void? Who says let's return the gallery page? OK, so let's go through all the options we have. So the first option is void, which means it has an advantage. So that's what you'll do. You'll do a login, but then you don't know where you are and you have to wait till the page loads. And there's an advantage here. And the only advantage is it says, OK, the login deals with the login. That's it. It doesn't have to deal with anything else. So why should I deal with something? The return, where should I go? I don't have the login. I don't know where I'm supposed to go. But it doesn't handle any of the other issues we want to know. Did the login succeed? Where are we now? Are we at the login? Is the login failed and we're back to the login? Are we at the gallery page? We don't know where we are. Is it ready? Should we wait more? So the second option, I don't think it's improved, but probably should raise that. So it's a different option. The different option is let's return the gallery page. So when we get that, the nice part about it is that, OK, I return the gallery page and now I can use it.  That don't worry, we'll deal with the timeout. So the source of available for me when you start writing tests is there's one thing is that's the random sleep. Nobody should, everyone, when he first writes his own test or program, writes a sleep. But nobody should ever use sleep. But we'll get to that in a second. But the first question is, we need to find out. There's an asynchronous, that's the difference between unit testing and end-to-end testing, usually, is that you have asynchronous calls. You're doing the login and it's going to take some while. You're not sure how much, maybe there's hundreds of VMs on one machine, so it's going to take forever. So we're not sure we need to deal with that, but the first thing we need to decide is where to put it. Should we keep it exactly where it is right now in the test? Should we keep it in that side of the login? So let's see what we got. So the first option is, OK, let's add it to the login. And before we return the gallery. And so we wait. The nice thing about it is that you get your test seems like synchronous code code. Yeah, it looks great. It looks like unit tests. Give me the login and do the login. And now I can do something on the gallery. So, wow, it looks cool. Well, actually, if it's something, if we need to wait till the gallery is ready, maybe we shouldn't do that inside the login. Because the login page doesn't know what's the gallery page, it's got nothing to do with it. So maybe if we want to wait for the page, well, let's give it a name. I wait for a page. Let's put in the gallery page and have the same code, the same sleep in the gallery page. So that could be a good option. And if we're back to option one, that we have a login. And after we logged in, we can now ask the gallery page, let's add a static method, and said, OK, wait for the gallery. Now, it's going to interrogate the driver. It's going to aggregate the page, the document, and find out when it's ready. The gallery page is the perfect place to put everything related to the gallery. And once it's done, it's going to return an object, the gallery page object, an instance of gallery page. And we can move on. So that's a nice way to put it. And so what we can do is we can combine two options. And in the login, when we want to return the gallery page, we can ask the gallery, OK, I want to return a new instance. So why don't you tell me when you're ready and give me an object and I'll return you? So the login does know where you're supposed to go. So maybe the login is a different, I chose the login because it's very, very simple. Everybody knows it. But there's a lot of situations where inside your page, you know exactly when you're going. So this is great. I'm not sure if the login is the perfect scenario for returning some return time. We'll get to that in a second. So here the login waits. And if the login has the gallery, tell me when you're ready and I'll return. OK, so if every page is asynchronously, so maybe we should add some conformance. I want every page to have some method. This forces the developers to implement such functions. So we can have every at the login, we can have at the gallery, we can have every component. We should have one. So we should probably have it at the base class and have things inherit and extend it. But my computer says no. You cannot have override versus static methods. But what we can fix that very quickly, if we just remove the static, so it won't be a static method. We'll create new objects and then tell them wait. So it's almost the same. But I think in some languages we can even improve that. Because for here you see the gallery, the wait for page. It implements the wait for page signature, which is returning basic page. So that's what everyone does. But in Java you have the flexibility to return something, even not just returning basic page, you can return something that extends it. And it's still considered not breaking the signature. So you can return a gallery page. So when you call the gallery page wait for page, it returns a gallery page. And this is another option. We'll see it in a few minutes. But this is another nice option too. Just let's put it in the constructor. If the same waiting, and it doesn't matter if it's waiting or if we saw wait for a slave, but we can use the constructor. And the first tip I want to keep using the basic page. It's that common reuse using inheritance. So if you have more methods, more things that is common to all pages, you just add it there. So we'll reuse via inheritance. So people start asking, OK, how do I support different users on different pages? So we can see what we can do. So if you want different users, OK, let's add a user and a password. That could work, right? Sounds simple. But OK, then so we get to the first challenge. And it's that the login, we can log in with the correct password and then the wrong password. And as you can see, the wrong password will lead me back to the login page. And a good password should lead me to the gallery page. So that's these two different places. But when you try to write this code, it's called overloading. And overloading gives you, when you have different signatures, you can use different methods, right? Different codes. But in Java, for overloading, it has to be the name or the parameter. So you can't use overload only with the return type. So you can't. This is going to give you an error. It's going to say, no, no, those are not free. Those are three different functions. You can't overload. So you're stuck. So what you'll see in most cars usually is login as incorrect, login as admin. So different users get, which point to different pages, you'll probably see this. So that's Java. So it won't happen. You can JavaScript or Ruby, you can do that. So that's the invitation. But the next question is, username is in the password. Why do I have to add? I don't want to use a username and password. And that depends on what you want to do. Because when you have the login page, the page object, you have two options. You have two different scenarios. You have one scenario that you use the login to get to the gallery page, and you want to test the gallery page. That's one thing. And there's a different scenario when you want to test the login. You want to test it with a bad username, a good username. So there's two different scenarios. Well, the first scenario when you want to have it as a setup for another, for testing a different component. I don't need any problems there. Because I don't care if you do the login. I just want to log in. I just want to get to my component. So I don't care. I want it as simple as that. I want to have every developer doing the login page dot, and then the ID will automatically say, OK, you have a login. That's easy. That's it. Simple as that. And the implementation can vary from cookies to Google Docs, Google Accounts, and real user and password. I don't know. We don't care. But if we want to test the actual page, the actual login page, so here we do want to have a different API. We do want to have a, the recommendation is usually, OK, had a method called login with the username and password. But there are some people that prefer having references to the implementation, which is usually less recommended. But there's kind of people that do want to have this kind of thing, so they can do unhover effects or something to mimic the user and have it do something similar as they manually do it. So it depends. So should we put everything together? Because we have the simple login, and the straightforward one, and more complicated. So OK, again, this is the login page very, very simplified. So we have two methods. But you can have 20 methods for each one. So the question is, should we put it together? I guess the question answer is yes. Yes, I do want to have it all together. That's all the code is related to the page, to this login page. But if you want to purify it, so if you want to make it simple, you can actually have two interfaces. The one that has the login, one that has the simplified logins, one that has the more complicated way to interrogate the application and drive it. And you can have one method to bring you one from one to another. And the implementation actually, they can be both in the same class that we have interfaces for. So you can use interfaces to expose only the simple API. And if someone wants to, you'll get the more collaborative API. But he can move that only if he needs to. So you can have a convention, getting the driver, and every component will have a driver as well as the simplified API. So when you start implementing page objects, you'll probably find things like you'll try to get reference to an element. So usually you'll start when getting a reference when you want to use it. So in this example, only when you want to do the login, you get the reference and then use it. But usually you'll need it in several methods. So you say, OK, I'll put in the constructor. Then I have reference and I can use it a million times. So you probably had added to the constructor. And then you notice, OK, it's really repeating itself. And every element I need to find in the page is actually repeating itself. So is there anything I can do to remove all this glue code? And actually, yes, there's a page factory. Does anyone here use this page factory? Yeah, cool. So page factory gives you exactly that. You can tell it, OK, initialize everything for me. I just have web elements. And all I want to do is I want to have references to the page. So you can even simplify that and add it to your member. Even the constructor will say, you can add the weight, the weighting to the constructor. So if we do all the weighting until the page is ready, the code for the login at the constructor, OK, after it's done, we can call the page factory and tell it to init itself on us. And that's it. We have everything ready. So sounds great. And actually, what the page are for some people that don't know exactly what happens, what's the magic behind it, he looks for the names. If you have a web element named email, he uses reflection. And he says, OK, you have a field member named email. And he tries to find an element at the document with that ID. If he doesn't find it, he's looking for it with a natural boot name named name that the value is email and so on. So what happens if we have, this is the real example from Google that they use. And the name is Q. So nobody wants a field member named Q. The R&D manager is going to kill us. They added the notation. So you can say, OK, it's called on the page. And the document is called Q. But when I use it, I want to call it search box. So I just want to call it differently. And of course, it couldn't be pre-fied, because there's a shorthand version. So just find by name equals to Q. And you have, they support the ID and tags. And you can write your own custom annotations. That's the best part. You have different ways to find elements. You can write your own code, because everyone's code is different. Maybe yours is extremely different. Well, as for assertion, there's a strict recommendation. It's only one slide. There's a strict recommendation that people tend to go with, so adding it to the test or adding it in some batch of class so you can reuse it. But I did see it in people still using in-page objects, though most the best recommendation, best practices, just either the insider test or insertion classes that you add. But just one more thing I wanted to ask was how do you avoid the random sleeps? I promise to get rid of it, because nobody should use random sleeps. So there's a few, don't worry, don't try to Google the names. I just made them up. And there's a couple of options you can use. There's, I think, those are the most common four. It's four, because the coordinator has two options. And the no smoking without fire, that means that has to happen before.  So it's a before relation. It happens before. So usually, you wait for an element and you know that loads last. You talk to the dev team and say, OK, which element loads last? And if I know, if I wait for that element, I know the entire page is ready. So that's the first common that people use. There's the take your time idea that you use that just, let's try to click it. It doesn't work. Let's try it again. If it doesn't work, let's try it again. And we'll do that until there's a timeout. So I'm taking my time. I'm going to try a busy weight. And suddenly, I did the implicit weight. So it got easier. People usually start with this and then they get bugs. So I usually don't recommend using it. And the coordinate, that means I'm going to have someone at the application site tell me your ideas I can find out. I want to sync everything between me and the application, not just use weight for random elements. So what you want to do, you have two options. The one is use the first option is I want to wait for an event to happen. So we can do two options. There's a we can, when using the test, what it actually does, the implementation, we'll probably use asynchronously. You can inject JavaScript to the document. But we can add run asynchronously JavaScript. So we inject JavaScript that runs in a loop and checks for something to happen. When he finds out something's OK, when something happened, you can be either he checks for some kind of state. And when he gets to that state, he calls the callback and tells me, OK, you can move on. So on the testing side, it's completely synchronous. It's just sync because we're waiting till he'll send the callback. So usually you have the execute, I think, scrape, which is very simple. It says you write something that runs code. But what it means is it runs JavaScript code that runs the callback. So it looks very, very simple. And it really is simple. But there's a small gotcha, you have to remember, that they provide, you shouldn't wait for the callback as a name. You should probably wait for it. The callback method is the last method. That's what they promised. This is the last method. So you should probably use this kind of code. OK, find the arguments. Take the last argument. And this is the callback. And when you're done, when you get to the specific state, just let us know. They have let the selenium back know. So we're done. But I'll tell you what I don't like about this is that you have, if you use Java, and then you have to write JavaScript code, and you have to ask the developer, OK, come and write in my code and JavaScript and put it inside the, so there's good editors like WebStorm and IntelliJ that can syntax highlight JavaScript. But it's far from perfect. And the question is, can we do something that we can ask the developers to, let's make a contract, very simple contract. It's going to take three lines of code for me and three lines of code for you, but we'll have a contract. And then I can know whenever you're ready, whenever you switch the pages. And actually, three lines of code I'm going to show you. So what do you want to do is, in your code, you say, I want to wait for some test event inside the application. And the guy writing the app, in my case, it's a lot of time, that was me. I would admit an event says, OK, I'm ready. I'm done. And what it looks like is something like this. That's two methods. And the implementation is rather easy, because you use it before you return it. We move the sleep and wait for test event. And the implementation would actually be very, very simple. Usually, in your write apps, you have the application somewhere. But you can have another. If only not in production, just in testing, you can have another element for testing. And people can add elements there. And you're asking me, why? Because what's the best thing about element? What about selenium? What can you do? What's the best thing, the easiest thing to do in selenium? Finding what? Elements. Wait for elements. We got that in selenium. So you can tell the developer on the other side when you're, if you want, instead of submitting an event. So I should write an event. I need to add JavaScript callback. So no, just add an element. And I'll wait for that element to exist. So if we have this, the div with the element with the ID test, so it's very easy for us developers. That's the entire framework. That's it. We need to wait to an element. We're waiting for a gallery-ready event. So we know that the developer will add some gallery-ready element to inside the test. So that's easy to find out. This is the code. That's it. And once I'm done, let's prove of it. And on the other hand, the developer just has to add just one more line on his side when he's done. When he knows, the developers always know when it's ready. They know. Trust me, they know. I don't think they had to add. It's just one simple method. And usually there's a lot of frameworks right now, like AngularJS and Ember. They have routers, which change from state to state. And usually they even give you hooks when changing states. So you can even usually add something that automatically adds this. You won't even need this single line. So when they change the state, they automatically add this element. And the implementation, of course, is very, very easy. It's like two liners. OK, if I'm not testing, right, if I'm production, I probably don't want to do anything. And they're supposed to prefer more pretty implementation. But this is easy to explain. If I'm not testing, then return. But if I'm testing, I should probably add this as an event. Should we add an element with gallery ready as a class? That's it. So I guess what I want to tell you guys is that this is a discussion. You saw there's always two options. And I guess you should decide, every time you ask yourself, why do I make the decision? What's the pro and con for every decision I make? And the best thing about meetups and the conferences is that you talk to other people and they show you what they are using. People here use, there's a lot of more techniques. Some people use page objects as static methods. They don't use the objects at all. They say, oh, what are the chances I'll have two galleries and one page? So there's a lot of techniques. I think the best thing to do is one, talk to each other. And the second thing is when you do something, talk about it. Blog is Dave here. He's talking a lot. And he has a blog. And he keeps on adding common use cases. And I think he has a book right now. He just added everything together and added lots of more things you can do with the commons in Selenium. So what I really think that you should do is just talk to each other. And if someone has any questions, now is the best time. Yes? OK, so the question is about assertions. Why is it recommended not to have the assertion in the page objects? Usually when people try to use page objects, they want to use it as a way to interrogate the object and the component in front of them. Usually it's components. So it doesn't have to say something about the business logic. So the page objects, they deal with implementation. They know, OK, so I have a business logic, the API, which means A, B, and C for login. I'm going to implement it. So you implement the login. But there's a lot of cases when the business logic you want to have on the testing side. So that's the business logic on one side. And it's not something that there's a must. The whole question here is, every language, we don't have to use even objects. Everything we want to test, we can write it without object, without classes. The whole thing is just design patterns. How can I write something that will be easier to maintain, easier to write? So every time something fails or not, I know exactly where to change that or where to add it. I want to make something very simple and find out. I don't have to think, oh, where should I put it? You want to have design patterns that go back in. And then you want to focus on what's important, the testing, the business logic. That's different between every application. And not thinking, OK, should I put the time here and here and spend so much time? So it's a recommendation just because you try to separate between the business logic and the implementation. So yes, why do you? OK, my question is, why won't you know? Because after you landed somewhere, you will find out. So you have some code that his job is actually finding out which page am I on. Maybe this code should ask, the gallery, is that your page? And you should know. And you'll ask the login page, is that recognized? Is this login page? OK, yeah, that's the login page. I'll return the same one. So yeah, OK, those stats are tricky. So in statically-type languages, you can have the base object and then having castings.  So what you do usually, that's why people use the void convention, returning void. And then in business logic, just trying to find out, having another system, another component, that his job is finding out whose fault is that. Yeah, who's now? OK, it's the gallery. OK, I should probably call that. The page. Yeah, yeah, so that's why I said in the beginning, because things are changing. There's not lots more single page application right now. So that's why I ask in the Q&A as well, is there is going to be some support for the retries? Because every day, the page out usually saves you a lot of code. So now you have to use something, you have to go back to the old way and try to use it as you go along. And usually, you can try to do is wrapping the elements with your own element. And that makes the tries. And if it doesn't work, it tries to find the element again. So you can do have such a custom web element, your own web element that does the retries. So the funny thing is that everybody keeps doing that. So that's what I'm supposed to do. I hope that something like that will enter Selenium and everybody can reuse the same code. So that's what we're going to do. So we should probably add that as a request. And you should probably give it a thumbs up or something. So I see it a lot. And the stale exceptions can happen more and more. And because, you see, there's frameworks now like Angular that if you misuse it, even if you don't go to another page, even if you change the filter, you have like a filter that filter the items, if you use it in a bad way, which beginners do too. And you can have the same element. It looks the same, but it's not the same element because it actually doesn't refresh, which is bad for their performance, of course. But it has effects on the test. So you should probably ask them, can you use this? Of course, Angular can be proven. There's a track by. There's a lot of things you can do to improve that. But until that day happens, we need to do something on our own. So I hope we'll do something that's very nice that Selenium will pull in. Oh. And so, ah, yes. Sorry? The web element, we're talking. Yes? What's the question again? Are you answering his question? No, if you do see someone having a pretty solution that can be used, so if someone knows already, so let me know. OK. But there weren't any, everyone writes their own code and that's something that we should not do. Yes? So you're talking about the option, the second option, that if you return an object, so what happens? It's a similar question, that what if we should return different options? So there is no clear decision on how to implement it for now. So I see a lot of people just returning a base class and not using some kind of someone that they can ask later. And it depends. And usually in not static languages, static-type languages, you don't have that dilemma. So by the way, does anyone here use a JavaScript as the binding language? It's funny, I really hope that I will catch on, because people, the developers themselves, use JavaScript. And so maybe if the testing would be in JavaScript, it could be better communication between the developer and the test automation. And so I do starting to see some improvement on that side. Anyone here knows about Protractor as well? So and the Protractor is based on Selenium, but it gives a little bit better API. The small difference is for better API just for Angular, because Angular has some things that it waits for and does, there's something called dirty checking. It's called asynchronously.  So that's a nice implementation in JavaScript for AngularJS. So guys, thank you very much. Thank you.


World champion boxer Manny Pacquiao builds 1000 homes for poor Filipinos. In the world of professional sports, athletes have long recognized their roots and beginnings and have been involved in helping communities. Earning a hefty salary for doing what they love, athletes worldwide have been known to be involved in charitable causes, and indulge in philanthropic efforts. Although they put their well-being on the line in the ring, professional boxers are known to bank impressive amounts, win or lose, in world-class match-ups. Involved in what's said to be the fight of the century, professional boxer Manny Pacquiao, even upon his defeat, made over $100 million and is now using his earnings towards a respectable initiative. The Philippines native took to Facebook with the message, I'm so happy giving this houses free to my constituents in Serangani province from my own pocket more than 1000 families are the beneficiaries. Upon his major, worldwide viewed match with Floyd Mayweather Jr., he was inspired to make a difference with his earnings. The boxer felt it was his duty to give back and recognize his roots at a time like this. This remarkable act has now housed a thousand families in his hometown, all thanks to his heartwarming plan to make a difference. Despite the power and aggression that he exploits to the world in his boxing matches, he is a warm-hearted individual who is a man of the people. Born into poverty himself, he recognizes the struggle and feels that it's only right to give back from his own fortunes, to where his story began. He has always credited the people from his past for his success, and this gesture is an example of his gratitude. The current senator of the Philippines took care of this idea on his own, paying entirely out of his own pocket. Although he lost the big fight, his people have maintained their pride in the man who dared to fight the greatest boxer in history and put his country back on the map. During his current term as senator, he plans to continue building homes for families in need and using his earnings towards the benefit of his people. This is an example of the greater good that can come from sports, where many people feel that athletes are overpaid for what they do. Something to keep in mind, is that athletes dedicate their lives to these sports, and sacrifice family time in doing so, as they're always on the road during their busy seasonal schedules. Based on achievements and salary caps, individual athletes are compensated accordingly, and evidently, have the luxury and option to give back however they please. Straying away from the misconception people have about what star athletes do with their earnings, this idea exemplifies the impact that they can have if they choose charity. It's refreshing to see the humanly decisions that some of our idols behind the screen can make, recognizing their ability to influence and make a difference, and not forgetting where their dream began. I will never forget where I came from. I thank God for allowing me to help other people.


Not everyone has our highest and best interests in mind. I believe sadly that we're living in a time of menticide. Menticide is a genocide of the mind. That kind of sounds like we're being put in a victim position only if we allow it, only if we allow it. So the first piece is to be aware of what's going on and hence this conversation we're having and enlightening ourselves to, wow, that little wobble I have about, I always knew exactly what to do with my body. I always knew exactly where to go or who to talk to or anything like that and now I don't. And so that creates a bit of a state of confusion. So you come back inward and you check in.


Life is good all this month at Appalachian Wireless. Get the LG G5 for just one penny with signup or renewal of a two-year service agreement. That's almost $100 off the regular price. Better service, bigger savings. That's today's Appalachian Wireless. Nineteen-year-old Lucas Pig, who was already facing two indictments in Pike County for custodial interference, is now facing new indictments, including one for second-degree rape and third-degree sexual abuse. The incidents are related to Pig's relationship with a young girl in Pike County, an incident that happened on or around New Year's Day 2016. This is what's commonly called statutory rape. The victim in this case was less than 14 years old when this abuse began. And so because he was over 18 and because the victim is less than 14, this is a very serious allegation. When Ashkamp resident Pig was indicted last year for custodial interference, he's accused of picking up the alleged victim in the case, who is also the alleged victim in the new indictment and taking her away from home for several days. So he already has two other charges pending involving this same victim. So he's now looking at as much as 20 years in prison because he won't leave this young girl alone. Commonwealth's attorney Rick Bartley said the alleged victim is cooperating in the cases against Pig. We, of course, here in this office try to protect old people and young people. And this is a young person that definitely needs protection from this sexual predator, I think. Because he just won't leave this woman alone and there are other charges pending against him involving this same victim. And hopefully we can put a stop to this. Pig has been and remains lodged in the Pike County Detention Center since November. He'll be arraigned on the new indictment charges later this week. Reporting in Pikeville for EKB News, I'm Chris Anderson.