What's up everybody? Ricky Krooth here. Welcome back to my channel. So before I get started, I want you guys to meet My little buddy Bam Bam here, which a lot of you know from Instagram He's in my Instagram stories every morning looking at my breakfast. He's my buddy He's about three years old and I got Minnie Mouse.  I've been absolutely on a tear This morning I got up, of course 4 30 answer my DMs go to the gym at a closing at 8 30 I had to meet my sign guy to move a big sign from one property to another at 9 o'clock Then I showed five condos from 9 30 to 11 Then I came home for lunch and got caught up in all my emails and follow-up stuff Followed by a podcast I was on at one which was called fearless Friday Which was about fears how to overcome fears the fears that I've encountered in my life how I overcame them and So on and so forth there was a really good podcast. We got into all kinds of subjects I'll put that on my podcast as soon as I get a copy of the audio then I had to work on several deals that I'm Negotiating kind of work out the details on that and also a huge inspection repair list that we're trying to negotiate So so got a lot going on and thank goodness for that and news alert. We're going in at 9 30 Tuesday night to the hospital to start being induced for the birth of Whitley next Wednesday Yes, so so excited about this Just words can't describe where I'm at right now and now we actually know what day This is gonna happen. So just overjoyed and ready for this new new journey in my life Also, I'm gearing up for 2020 for you. I'm gonna completely revamp the zero-to-diamond system It's gonna be a new 90-day action plan. That's actually gonna have the 28-day challenge integrated into the 90-day action plan and I'm going to introduce a Mass text messaging platform so that you can mass text your clients the weekly report new listings And there's all kinds of features and really cool stuff We're gonna be able to do with this software some really looking forward to releasing that to you as well So get ready for 2020. It's gonna be our year and I don't want you to let up for 2019 2000 from now to the end of 2019 should be go time for you on pushing harder Prospecting and talking to people and building that database. This could be the slow season for you But this is where I always win every year because I build my database now while all the other agents are sleeping and Then when the busy season comes my database is twice as big as it was last year So what does that mean twice the business? So a lot of incredible stuff going on and I'm so excited for the future Also, I'm gonna be in DC at the hyperfast agent summit Monday. I'll be speaking there Monday 1115 I'm also gonna be doing the the lunch and learn I believe it is or something like that where I'll be with the guys some lab code agents So I'm really looking forward to that event if you're going to that event Please come up and say hello also because of the birth of my first born child next week We're not gonna do the zero-to-diamond talk show next week with Joe Rosen We're gonna push that back to the week after so just FYI now Let's get into these Zillow numbers man. This was crazy day on the Zillow Reporting so Zillow stock is up about 10 percent 10 11 percent today. They had better than expected Numbers in terms of revenue. Let's dive into the numbers a little bit here So for the quarter of the company reported revenue of 745 million dollars, okay, that was up a hundred and seventeen percent Year over year well ahead of the streets consist us at 714 million so they were expected to do 714 million but they did 745 million in revenue Now a key driver in this, you know big jump in revenue year over year and Beating the streets consensus Was the i-buyer business the home segment? Had a revenue of 384 million. Okay, that was up from just 11 million a year ago So it's really went to the next level Zillow said that it sold 1,211 homes and purchased 2,291 homes in the quarter finishing with 2,822 homes on its balance sheet. It also had really good guidance moving forward. They're expected to do 790 to 825 million in the fourth quarter Which the street was there again? Expecting lower at 751 million now. This is where it gets interesting The rest of the company's revenue outside of the the i-buyer business was 335 million which was only up seven percent So most of that hundred seventeen year over year jump was all The home flipping business that Zillow is in and of course Zillow is still losing money Zillow posted a loss for the quarter of 64 million Including a loss of 87 million on the homes business So great. They they did 384 a million dollars in revenue on the home flipping business, but within that they lost 87 million so I'm not saying any of this is good or bad. I'm just giving you the facts, you know They're they're probably smarter than I am. They have a billion dollar a year company here And also the web traffic was up As far as the mobile apps and websites reached an all-time high with average monthly users Unique users up five percent to a hundred and ninety five point six million Unique users. That's a month website visits exceeded 2.1 billion which is up eleven percent year over year. So they definitely have something I don't know quite what it is or what they're gonna do with it But they definitely have something there. I think the reason why I'm not really a get Zillow. I'm for Zillow I want them to succeed at the highest level because they actually can make our business they have made my business better because My clients find properties on Zillow. They want to see they send me the list I don't have to search properties and find them the client finds the properties and Sends them to me and then I show them the property So it's actually cut out some of the work for me here and there That's not for all clients. Sometimes I have to find the properties and sometimes they go on my website and look and find the Property, so it's not all Zillow But you know, I'm not against Zillow. Here's what I have against Zillow is selling Random people's contact information to agents for hundreds of dollars When you could have met that person at a grocery store or at the gas station But Ricky those people aren't motivated that Zillow is giving you hot leads people that want to do stuff Why does Zillow think that that person wants to do a deal? Because they were looking online at some properties, you know, everybody's looking online at properties They're keeping up with the market.  You might run into one that that wants to buy or sell something right now That's the same with any random list that you circle prospect for sell boners expires fear of influence past clients Facebook Instagram, I mean get out in the market Contact people see what you can do to help them It's all the same stuff It's just who's gonna make the most contacts with the best intentions and then turn around and build the biggest brand Based on being the hardest worker that only wants to help people Whoever in the world in your market, whatever agent will take that philosophy and run with it And then be patient behind it is going to win ding ding ding me. I was never the best I wasn't ever the smartest the most talented any of that stuff. I'm still not I'm still not the best on Video or adolescent appointment or any of this stuff, but here I am I'm doing the best I can do and I have the best intentions and I'm willing to talk to the most people and I'm Willed to build the biggest brand and I'm willing to put the work in harder than anyone else and be patient. I Don't have to spend hundreds of dollars on leads People are everywhere. So anyway, I hope you guys had an incredible week. I'm so proud of you You guys are DMing me on Instagram and telling me all about your success. It's amazing By the way, if you have any questions Instagram DM is the best way to get me So feel free to reach out there and let me know what in the world I can do for you Please comment like this video subscribe and we'll see you on the next video. Let's go You


What's going on everyone? Sam here with late in sports card, dripping 23 tops for steam baseball. Hobby, eight box full case break, number 36, pick a team style, read off the list of our names and our teams. You've got Brian P with the Cardinals, Chad B twins, Charles E, Angels, Christian L, Braves, Chun Kit W with the Phillies, Clemente Blue Jays, David T Rangers, Dean W Red Sox, Edward P Padres, Zeke Lam Dodgers, George S Mariners, John K Pirates, Jonathan L with the Diamondbacks, Keith J, White Sox, Marlins, Kevin W with the Cubs, Min, Well H, Athletics, Matthew, B has the Giants, Matthew H, Guardians, Nicholas T, Orioles, Metz, Paul F with the Yankees, Pension C, Reyes, Russell G, Brewers, Scott F, Astros, TCW, Tigers, Todd C, Rockies, Todd W, Reds, Tony C, Nationals, and Tyler A with the Royals. All right, good luck everybody. Let's do it again. You've got just 15 to go in pristine number 20 as a four box random team style. Now, just rub me the wrong way, Sean. Yeah, rub me the wrong way a little bit. Here we go. Good luck. I have not actually no fan. I like the idea of it, though. More bins? You might have left the land back and not a truck because somebody was supposed to be in the top low. Michael Harris, Ricky. Gold is Andres Jimenez. Nice one there. Jersey Auto for the Guardians to 50. Yeah. I'm glad that both of you could get the extension done on Joe Harris' birthday. Joe Harris' birthday. That's a national holiday. There's Christopher Morrell. He's going to be a random dude we talk about in like five years. Eddie Murray, Orange, Corey Seeger to 25 for the Rangers. Only three minutes in. Oh, snap. Ronald Kunya Jr., Ryan Howard, Bluto 75, Mike Yastremsky. Future some guy, exactly. Future, oh, you remember Sharp Shooter, Joe Harris for the Cabs and Nuts. Josh Young Rookie, Jay Ram, and Jim Tomey, messing me up over there. Who's that? Jay.  It's Jim Anderson of all Blackburn. Daniel Colasse, Alvarez. Fresh Faces, Rookie. Posey, Purple, Scherzer. Nice one there to 99 for the Mets. Yeah, you can just do like pinks and lower and then autos. I think that's enough. Lugan, Hank Aaron. Going, going, going for the Braves. Todd Helton, Freddie Freeman. Christopher Morrell, Rookie. And going, going, going, going. Sammy Sosa. All right, encased cards. Graham Ashcraft, Whit Merrifield, Rookie for the Reds and base for the Blue Jays. Got a gold of Sammy Sosa to 50. Alec Burks is kind of already a random guy. There's a pink, Paul Blackburn for the Athletics, 15 of 15. Matthew Libetor, Pulsar, Rookie Otto to 99 for the Cardinals. And Rookie, Pulsar Otto for the Yanks to 99, Oswald Parazzo. Two Rookie Otto to 99, not bad. Pretty decent first boxer. Let's see what we got. That's what I'm saying, Vaughn. He's already kind of a random guy. Alec Burks is kind of always a random guy. I'm gonna have to look up see if Joe Engels is in the spectra today. He's got autos in spectra. That'd be awesome, dude. Probably doesn't.  Pack or Box. Carlos Correa, Purple, Dan B. Swanson to 99 for the Cubbies. There's Michael Harris, Fresh Faces. And we'll stop on any big rookies, but we'll just kind of go through base. Steve Garvey and Christopher Morel, Refractor Rookie for the Cubs. Robbie Ray, Mantiplie Rookie. Paraz, Sammy Sosa. Ooh, Redemption, huh? Okay, Nolan Jones, that's gonna be around the Diamond Autograph Relic of Riley Green. Nice one there, congrats on that, Tigers. That'll work. I have not pulled your one-of-one yet, Dean, unfortunately. We're getting there, though. I could tell you that. We're definitely getting there. I could taste it. Nolan Gorman, Rookie. Later. Cedric Mullins. Purple Albert Pujols to 99 for the Cardinals. He may or may not have a retrospective, spectives, auto in spectra. Let's go, dude. Adley Rutschman. We need the Nebula of that. Chris Bryant, oh snap, for the Rockies. We desperately need to pull the Nebula of that card, dude. Whitmerefield, Corey Seeger. So it is officially confirmed Joe Engels has auto in spectra. Michael Harris, Rookie. Did you show everybody your bling today? My piazza. Oswaldo Cabrera in a gold, Joe Musgrove, all-star for the Padres. It's a 50. Udonnas has, let me have a card, and that's that. Yoshida Rookie. Gorman Rookie, even though he's been on the same team his entire career, Aaron Judge. Uncle Udonnas.  There's... Hello, Mr. French. What up, French? Starling Marthe Wilson-Contreras. Blue, Mike Yastremski, 275 for the Giants. Orange, Al Kaline, one of 25. That's going to the Tigers. Bam, bam, J-Ram. Down goes Anderson. Refractor auto for the Guardians. Grats, Cleveland. And gold, Kerry Carpenter, 50-50. Kerry Bonds for the Tigers on the rookie auto. Grats on that. Michael with a pristine spot. Stephen with two in pristine. Tribute, and Jonathan with a luminance spot. Thank you all. Another spot off the board. We are down to 14 to go, everybody. 14 to go on the second pristine four-boxer. Just a handful left in pristine mixer. Finest pristine tribute to Chrome. Still six to go on divisions of finest. Need to get that filled. That stuff's going to be clean, dude. I'd love me some finest sprinkles. There's Reddy Jackson to 9 and 9. Paul Goldschmidt around the diamond. Jersey Auto. Congrats on that, Carson. Later.  Hit the links, buddy. Tell both of you. Later, Adley Rochman and Josh Young. They do stink. They got the absolute yips right now. Manuel Classe, Blue, Corey Kluber for the Red Sox. Just so you guys know, Dylan and one of our sorters and shippers, Matt, they lost to Kyle and Jake in PGA yesterday, and it was Kyle's second time playing the game, and they've had the game for like a month. Aronato, Osnap. You would be like, how? Josh Young. Purple Asturie Ruiz to 99 for the A's. Bobby Whit, Fresh Faces for the Royals. Tomorrow? Probably. If they lose, they are going to have to find new teammates. Yeah, that might be it. You might have to sell the game. Gorman? There's Buster Posey. Oh yeah, we'll be live on Shizniz tomorrow on Twitch. Tyler O'Neill, Gold Emmanuel Classe to 50 for the Guardians. Babe Ruth, Joe Maurer and Brian Servin. Trevor Jones, Ryan Helsley and Travis Darno. That is Cardinals and Raves, right? Yeah, Raves. Got an orange or a blue of Zach Thompson to 75 for the Cardinals. Orange, Evan Longoria to 25 for the Debex. Got James Outman Rookie, nice one there for the Dodgers in case. And a gold, going, going, gone, Paul Goldschmidt for the Cardinals. That's the second Goldschmidt of this box. George with a spot in pristine. Let's go, George. Timothy with a spot in the mixer. Lakuk with a spot in the mixer. Matthew P with a spot in the mixer. And in legacy. So thank you all. Basketball, definitely shrinking a little bit. Got to get through baseball before we get to spectra. Of course, everybody. Let's keep it moving. All right, here we go. That is a Josh Naylor and Christopher Morrell, popular demand. Jersey, rookie Jersey auto. Congrats, Cubs. Nice one there. That is on card as well. Not too shabby. Kodai Senga rookie. Adley Rochman, fresh faces. Jake Haynor hasn't even played a regular season. Already got a six game suspension for PEDs. There we go, Jake. Couple of shake-off three. Face and face, probably. He's definitely not on steroids. No, no, he is far from steroids. Yoshida rookie. Adley Rochman rookie. Aaron Judge. You tell him that. Like, hey, you're asking him if he's on steroids. You need to apologize to you for asking him that. There's Osvaldo Cabrera. There's Paul Goldschmidt to you. 99. Nice one there. Yeah, right. Hannah Jacob one. Nick Vespy. Blue going, going on. Adrian Beltrate is 75. I'm interested in watching that break. Guerrero, Jr. Yeah, me too. That's going to be cool. Yeah. That's going to be really cool. You should dual stream. Wife on schist. Yeah. There's Graham Ashcraft and Purple Dansby Swanson in 99. Everyone not playing as a pot. Adley Rochman. Yeah. Masataka Yoshida, fresh faces. That was a title of the day. Cedric Mullins, Orange, Vladimir Guerrero for the Nationals 2.25. He brought out all the bots, though. He did. All the bots were in chat. Yuri De Los Santos. Michael Harris. Oh, snap. Rookie for the Braves. Evan Lee. Heavenly Evan Lee for the Nationals. Cannon Smith and Jigba. Langlears. Paul Goldschmidt going, going, going. And encased cards now. You got a Max Meyer Rookie and Manny Machado. It's going to be Marlins and Padres. Got a blue of Andrew McCutcheon. For the Pirates, 2.75. Got Sean with a spot in Pristine. Mark with a spot in Black Diamond. Sean P with a spot in the Mixer. And Ryan B with a spot in Finest Mixer. Awesome. Thank you all. Gold Christian Yelich to 50 for the Brukru. Congrats, Milwaukee. You've got Levon Soto, Refractor, Rookie Autograph for the Angels. And Jordan Diaz to 99. 76 of 99 for the 80s. Here it goes. What's up, Sean? There's Juan Soto and Freddy Peralta around the Diamond for the Brewers, Jersey Auto. I come in today and before it goes, Anthony's been talking about how excited he is about the 2020 Bowman break today. Yeah, Dylan told me. What? He was like, oh, Anthony, can't wait. Oh, snap. Byron Buxton. Here's a Graham Ashcraft, Purple McClanahan to 99. Green Rookie. Michael Harris Rookie. Bobby Witt, Fresh Faces. Ronald Acuna, Blue Vladimir Guerrero. Senior to 75 for the Nationals via the Expo.  There's David Ortiz. Yeah, it is a little bit confusing fan. Here's Longoria and Robin Yelp. Steve Garvey. Corbin Carroll Rookie. Juan Soto, Going Going One. Good plan. Words right there, if you ask me. I didn't ask you. Albee's Gunner Henderson Refractor. Didn't have to. That was the real thing. Didn't have to, I just knew. I didn't know what to ask you. I wasn't going to ask you. Thank you. There's Going Going Gone of Frank Thomas. The Big Herk. Alejandro Kirk and an Orange. Brett Beatty for the Mets. Nice one there. Congrats on that. There you go. New York. Josh Young, Fresh Faces. Yeah, Beatty's pretty solid actually. All right. What are we at on Pristine? 12 to go, everybody. 12 to go. What up? What up, Johnny? How you doing, buddy? Byron Buxton, Connor Joe. Twins and Pirates. Blue, Jermaine Palacios to 75 for the Tigers. Rookie. Rookie of Cal Mitchell. Gold color match for the Pirates to 50. Got Autos. Matthew Libertor again. Refractor Rookie Autograph for the Cardinals. And to 99, that is Alex Bregman. 69 of 99 for the Astros. Looks like a thickie right there. Oh boy. Are we going to get on our Super Franchter? Question mark? Put a Donny Draft in the first round. Dallas Goddard. No, he Drafted Hertz. I will tell you exactly what happened. He Drafted Hertz, I think, either with his second or third pick and said, I, and I quote, I don't care. I don't care. I don't care. That's what he said when he Drafted Jalen Hertz. Super high. But I don't care. Garbage, trash. Otani and JD Martinez. Judge Poplar to ban Super. That's pretty nasty. Schwabber, Schwabber again going, going, going. Babe Ruth. Gold, Ernie Banks to 50. He really is, Johnny. He is going nuts, dude. Dean, yes. That's him. That is Mike Trout. Oh, snap. Oh, I was going to snap. Huh. I wonder what that could be. Oscar Gonzalez. Purple Oscar Gonzalez. I know this is, oh, Goldo snap. Bryce Harper to 50. Nice one there, Phillies. Grats on that. And Mike Trout. Someday Sean will embrace the snap, George. No, not embrace the snap. Snap the finger. Ted Williams and Ichiro. Snappy. Shosh Schmidt. Ichiro Gabriel Moreno going, going, going. I'm Schwabber. Like I said, we'll save the thick pack for the last one here. Why is the backup quarterback of the Saints doping by an Halsey and Jeff Bagwell to 99? Why not? James Altman. Oswald Karaza. Oh, that is a thickie. Thickie, everybody. Come on. Let's see a Super Fractor pattern. Oh, I think it's red. Hori Lee, red popular demand. Albert Pujols with the logo. Two of five. The machine. Dude, that is so cool. Brian P. They were one of the last six teams taken.  That's so cool. Such a clean auto as well. Again, there you go. Two of five. That is freaking awesome. Brian, congrats. We'll get that into a mag for you, buddy. That's really freaking cool. Really cool. Christopher Murrow. Adrian Beltry and Alejandro Kirk. Rangers and Blue Jays. Blue is Cody Clemens to 75, who just figured out he's Roger Clemens' son. Cody Clemens. Dylan told me that, actually, funny enough. I didn't know that until, like, Friday. That is a Vladimir Guerrero Jr. to 25. Pretty cool. That is Kari Carpenter, rookie refractor auto. Probably not. No. We'll send an empty box and wrapper with this one. Spencer Strider, it's way out of the mag. Going to the Braves. Going to the Braves. Well, I was telling Sean, have you guys seen this guy's interviews?  Like, he's super cool, but he's such a weirdo. It's like, there was, I don't know if you guys saw it. I saw it on TikTok. They did, like, interviews with MLB players at the All-Star Game. And they go, they asked a bunch of players, can you have a lifetime supply of anything? What would it be?  He goes lemons. And they're like, why? And he goes, I drink lemon water every single day. It'd be so much easier if, dude, he's like, up there with as weird as cranky. Then they ask them, like, how do you like your coffee? And he goes, they ask everybody, how do you like your coffee? Oh, I like cream and sugar. Oh, I drink it black. He goes, I just like it as long as it's before 12 p.m. If it's after 12 p.m., I'm not allowed to have coffee that day. Everyone's like, what? What kind of answer is that? It was gone by the time I got here, Pooka. I did not get anything. Yeah, no ice cream for us. No ice cream for us. Okay. This guy packages the mail. Let's go, Johnny. Hell yeah. He should work at LSC. He'd fit right in, dude. He would fit right in at LSC. After winning the Cy Young. Yeah, cranky, cranky's an interesting dude. I love cranky, dude. I have a cranky D-Baxter. I love cranky. My God, I gotta add him to my list of autos to get, actually. I'm gonna do that right after I open all these packs. What is that? Yup. I'm gonna add him right now, Zach, cranky, to the list of autos I need to get. Well, I was under the impression it was gonna be here until three, so I got here at 2.30. It was already gone, to be fair. So that memo wasn't really received. Because I had him grab me one when he got here. Gold Tony, Gwen to 50. That's a double win here. Yeah. Not a good look. Nope. Not a good look. Cheater Downs, Mike Piazza. D-Bax, cranky, best cranky. Yeah, true. Brewer's cranky, best cranky. Paguerra Rookie, Poseramira as refractor. Partially right. See? See, even Forrest agrees. Bulpie, Pedro, Buster Posey. 237, right? Yup. Uh, Rhonda Cunha. Purple, Francisco Lindor, 299. Nice one there. Flyer says three. Dude, Dodgers. Flyer says three. Dodgers, cranky, was an absolute madman. He was, he had, was I ZRA under two one year? During the Cy Young year there? There's Nolan Aronato. Oh, snap, for the Cardinals. Andrew Benintendi and Pedro. Nice one there.  You know what I mean? He's old. That's the only thing. Like, he's kind of past his prime at this point. But it's, it was cool to see him go back to Kansas City again. I like that. There's Aaron Judge. I like that he was in, uh, he was in KC. That is a Willie Mays and Teosca Hernandez around the Diamond, Jersey Auto for the Mariners. Congrats Mariners. Whoa. Lato. Order's coming in. That's Jeffrey with a spot, Jeffrey B. Timothy S with a spot in the mixer. Edward P with a spot in both the baseball breaks. Mark M with a mosaic spot. Chad with a couple of PYTs. We've got Greg E with a pristine spot. James B with a couple of spots tomorrow. Chad C with a tiered spot. And Sean P with a spot tomorrow as well. I mean, in a mosaic spot as well. All in it then. Frank Thomas, Brett Beatty. Jose Berrios, Gunnar Henderson refractor. Gabriel Moreno, Jim Tome. That's Lars Newpar and Jose Trevino. Nice one there for the, he did it. Who won the Cy Young that was that Arietta? Tyler with a spot in 20. Thank you, Tyler. Edward with the Sixers and the Padres and a couple of PYTs. Blue is Al Kline to 75 for the Tigers. Nice one there, Detroit. Red is Paul Blackburn. Five of five. That's going to the, where's he the A's, right? Yeah, athletics. Nice one there. Spencer Strider, congrats on that. Braves, we got an actual one. Nice one there. Congrats on that, Braves. And Eddie Murray, 70 of 75, going, going, gone, Otto. Congrats on that, Orioles. Oh, that's so funny. You see where you're at, Joe? Yeah. Somebody was in there and here just puffing. Tommy and I just went straight to the vein. He said I don't even want a spoon. Just put it in the needle and put it in me. Put it in the bag. This is you right here. Right in my neck. Oh man, it's just a note. Oh yeah. Got T-swag refractor and Scott rolling around the diamond for the Cardinals. Nice one there. Ken Griffey Jr. Seniors, Kershaw came in third with a 2.13 yard and 300 strikeouts. Good God, dude. That's insane. Victor Robles, Purple, Ted Williams to 99. Three Rees, there's Michael Harris. Nice one there for the Braves. Anthony Volpe refractor rookie. There's Blue to 75, Alec Burleson. James Outman rookie. Gold, Nolan Gorman. Congrats on that one there. Cardinals, that's pretty sweet. 250, Salvador Perez. Miguel Cabrera, Aaron Judge refractors. Nolan Gorman, Fresh Faces. Brazilian Food Truck, My Apartment Complex, Tempting. Jarrion Carnassian. Gold, Adrian Beltrate to 50 for the Rangers. Jimenez, Jonah Bride. Oh, snap, Michael Harris rookie. Nice one there. Willie Wonka at my house. It's Jackie Robinson and Pedro Martinez. We're gonna brag go big. True, true. Oh, Hoppy rookie. Veratex, Shohei going, going, gone. Nice one there. Is Shane Bieber and Reese Hoskins. Nice one there, Guardians and Phillies. Blue is Kyle Tucker to 75. Nice one there for the Astros. Orange, Josh Young to 25. Rookie for the Rangers, one of 25. Graham Ashcraft refractor rookie auto. Congrats on that, Reds. And Blue, Kerry Carpenter, rookie auto for the Tigers to 75. Congrats on that. All right, let's do a quick recap here, guys. We've got Scott Rowland, Teosca Hernandez, Freddie Peralta, Christopher Morrell, Paul Goldschmidt, that is Andres Jimenez. Got a Riley Green and a pink of Paul Blackburn. Graham Ashcraft, Eddie Murray to 75. Spencer Strider, another Spencer Strider. Again, we're sending an empty box and wrapper on that one. Behind these people going the speed limit.  Kerry Carpenter out of the frame. As he says, texting and driving. He goes, this is ridiculous as he's texting and driving. Jesus, Spencer. Matthew Libertor, Jordan Diaz, Levon Soto, James Outman, Jose Ramirez, Oswald Paraza, Matthew Libertor. Gold, Kerry Carpenter to 50. Gold, Paul Goldschmidt to 50. Let's do that one last. Red, Paul Blackburn to five. Blue, Kerry Carpenter to 75. And then how about a Albert Puhlholz red? Two of five, St. Louis Cardinals. Popular demand, patch auto. So sick. That'll do it for the break, everybody. Thanks again for the fill. Coming up next is random team number one.


Now, before we delve into the details of how to tackle the English Language Paper 1 portion of your Edexcel English Language exams, let's have a look at the general structure of this paper. As I always mention, it's really important to understand more broadly the structure, essentially what you are aiming for and what the end goal is, which is basically the exam. Before we delve into the details of some past paper questions and I'll show you how to write top level nine responses. Now, when it comes to the English Language Paper 1 exam, it's split into two general sections. The first tackles the fiction imaginative story that you are presented with. So you get an extract, which you have to answer questions on. And the second section is basically the imaginative writing or the writing portion of the paper. Now, for Section A, I usually recommend for those questions in Section A, spend around an hour and this includes time spent reading the extract. And then for Section B, it's good generally to spend about 45 minutes. And of course, this whole paper is an hour and 45 minutes. Now, as you can see behind me, essentially, I've just created a brief chart of what to anticipate for this paper, which I'm going to go over. OK, now, as I mentioned, you've got Section A and Section B of this paper. Section A is generally you should try and spend one hour on it. And then, as I mentioned, Section B, you want to spend around 45 minutes on it. Now, in Section A, you get an fiction extract. And for Question 1, which is just one mark, I usually recommend spending, to be honest, in more than a minute, if less. And you just write one brief sentence answering the question. So it's a very brief question, which requires a brief sentence to answer it. Do not write a one word response that is not sufficient. Do you write just a sentence of a five or six words? And that's enough, OK? Now, Question 2, which is worth two marks. You will have to write two statements in response to the question. Question 3, in this section, is worth six marks. And this is a language and structure question. Do you bear in mind that language refers to things like alliteration, metaphor, similes, nouns, verbs, adjectives, and so on.  Now, this question is basically where you touch on these elements in six marks. For Question 4, which is worth 15 marks, you usually get a statement and you have to evaluate how successfully something is done in this statement. Again, this is just a walkthrough. I'm going to go over in detail exactly how to do so, and we're going to look at an example, OK? But that's really it for Section A of the English Language Paper 1 exam to anticipate. Let's now look at Section B. So as I mentioned, if you spend around 45 minutes, this includes planning. Now, in Section B, you have a choice of two questions. You have a question five and a question six. And these are worth 40 marks. You choose just one. Do not do both questions. You just choose one, OK? Now, one of the questions, question five and question six, it doesn't always come in this order. It's interchangeable, right? So this can either come as a question six or a question five, OK? However, you'd have a question five, which gives you two images.  And then question six, you can write about a time when dash happened, OK? Again, this is just a statement rather than an image. And then you write about it and then you can I would suggest create a story around it, OK? And you can write a real or imaginary story. I would suggest try and make it interesting, exciting, usually real life stories based on your own experiences. Maybe you're not always as exciting unless you've led like a very exciting life. So I usually suggest writing just an imaginative story, OK? And as I mentioned, the image question can either be a question number five or number six. So, for example, if you see that the question number five is a statement right about a time when dash happened, then the question six will be an image related question. It's interchangeable, but this is what you should anticipate, OK? So really, that's it when it comes to understanding the structure of English language paper one, OK? So now what I'm going to do is I'm going to walk you through how the different past papers have looked like. And then most importantly, I will walk you through level nine responses that I've created. So essentially model answers and I will explain to you what makes them strong model answers. So let's begin.


My story begins just at birth because there was just so many things going on at that time. Tragedy hit our family where she was accidentally shot in the head while she was pregnant for me. So she was never able to get to her baby shower that day. I was scheduled for that day. By the time she was already rushed to the hospital, she was pronounced brain dead. And that's how I came into the world through C-section. I was born and I was alive and she was alive temporarily with the help of machines. After that, then she was disconnected. As I was very young, I had already same sex attraction for other girls as well. So when I started school, I was already confused by that. I was trying to negotiate with him, saying, hey, if you let me have my wife, I would do anything for you. I will serve you.


Students, today we are going to talk about describing something. When we describe a noun or a pronoun, we use the b-verb and an adjective. Let's look at some examples. This computer is new. So we are describing the computer. What is the computer? The computer is new. Here we use the noun computer and we use the b-verb with an adjective is new. This computer is old. So when we describe this computer, we know it is old. Here again, the noun is computer and we use the b-verb and an adjective is old. This car is fast. So what is the car? The car is fast. The noun car is with the b-verb and an adjective is fast. This car is slow. What's the noun? Did you guess car? If you did, you're right. The car, this car is the noun and we use the b-verb is plus an adjective slow to describe it. So when we are describing something, we can use a noun and the b-verb and an adjective. We can use a pronoun and the b-verb and an adjective. Let's look at the examples. The computer is fast. Here the noun is computer and we use the b-verb is and an adjective fast. Notice the b-verb is singular is. It is fast. Again, we can use a pronoun plus the b-verb plus an adjective. Over here, two computers are fast. They are fast. Notice the noun is plural so we make the verb plural and we use are. Same with the pronoun. They, we use the verb are fast. I am fast. You are fast. These are again singular pronoun and then you is a plural pronoun. We use a pronoun or we can use a noun when we describe something and we add the b-verb plus an adjective. Okay, let's do some practice.


What I really like to see is the regrowth, you know when you have the cattle in a pasture for eight days and then you take them off and you go back there two weeks later where they're not even back there yet, they're not, they're showing another pasture but you see the amount of regrowth that, that you see their bite and then you can see where it's regrown back from that and so you can really tell if they're not over grazing the natives like if they're in a season long have the whole area they're just gonna pick and choose what they want to eat and they'll just keep picking up those natives where here we kind of force them to eat that brome and then that opens a canopy for the natives and so they're not grazing those all the way down to the ground and then you get to see that regrowth it's it's really exciting.


This is my puppet script. Move this side of the room to the other side of the room. We really should have saved some time. Alright, everyone sitting comfortably and can see enough of the slide or as much of the slide as they want to see. So I'm going to talk a little bit about SysOps. It sounds like a lot of you are kind of DevOps already. You guys do some development and some systems. I'm going to try to convince you if you're not already convinced that knowing a lot about systems and infrastructure will make you a better developer. So some things you should know as a developer about infrastructure. And just a quick question. How many people are just developing modules and things like that? Themes? How many are deploying and maintaining entire Drupal sites? Yeah, that's a lot of you. So a lot of this stuff will hit home. You want to know where your code is going to live. You're going to want to know what resources it's going to need. Memory, bandwidth, disks, things like that. You're going to want to know how it gets deployed. Is this getting deployed with a Drush script, a Puppet script? Is it something you manually have to do? Is it some hidden Perl script in a directory somewhere that you don't know? And how does it get maintained? How is it going to be upgraded? Who's going to upgrade it? Are you responsible for upgrading? Is it going to automatically upgrade from a particular Git branch? When you update that Git branch, it would be good to know that before you commit to that Git branch. In other words, you need to know about operations or ops for short. So knowing the system in which your code lives can make you write better code. If you know something about the bandwidth situation, you'll know if your code needs to deal with a lot of latency. Low bandwidth.  You can code a little differently. Understanding those issues will help. What's the storage situation? Do you have all of your disk storage on a NFS share over a slow link to Kansas City? It would be good to know that before you write your code and set up your assets. How slow is it really going to be? Do you have a way to know how slow it's going to be? Do you have a way to measure how slow it is? Can you use a content delivery network? Can you cache it? Is memcache available? Is a key value store like Redis available? Can you store it on a disk cache? What is the system that your code is going to live? What does it look like and what can you do with it? Knowing the system in which your code runs means you can plan. So what version of PHP is on that system? What version of Drupal Core is on that system? What libraries are available? Are you using a system library for graphics manipulation? Do you know if the correct version is on that system? What tools are available? Are they using Drush or is it all manual? Do they have R sync, other kind of tools that you might need to maintain your code? And yeah, PHP 5.2, it's out there. Is your code able to gracefully handle the situation where it's on a server with PHP 5.2? So there are often reasons for old libraries, old systems, old PHP. And understanding the system side of things, understanding why those things are in place will help you deal with that situation. Knowing when things get upgraded, why they get upgraded and how they get upgraded. For instance, PHP 5.2 might be there because some core application needs it and they cannot upgrade because it's a shared environment. Understanding that will give you a lot more understanding of what's going on in the system side and make the system's admins a little more sympathetic to you when you come begging at their door to upgrade to 5.3. So when are they going to upgrade it? Understanding that cycle, understanding when to expect and upgrade will help you plan ahead. Understanding things like security updates.  Does that affect you? If you don't understand systems, you don't know. So understanding what's going on in the system side will help you plan ahead for that. The other thing that knowing the system helps you do is it means you can develop and test your code safely. So how many people have a dedicated dev environment that they can develop their code in? How many have a dedicated test environment? How many people's dev and test environments are just their laptop? There's a couple. So understanding systems will help you create those and maintain those dev environments. Not just a box that has a lamp stack on it that you can install Drupal but an actual environment that completely mirrors what the production environment's going to look like because if it's different from production, you can test all you want but you don't know what's going to happen when it actually goes into production. So the fastest way to know infrastructure and get familiar with system and tasks is to build some infrastructure. And virtual machines make this very, very easy. There are tools that are free and easy to use on all platforms. VirtualBox and Vagrant are the ones that I use. Vagrant is sort of a front-end framework for VirtualBox. It allows you to script and automate creation of virtual machines and management. But there are VMware parallels and other systems that you can use. And there are configuration management tools. How many people are familiar with Puppet, Chef, CF Engine? There are a lot of them out there. And if you're working on a system where you have system-ins maintaining your servers, find out what they use. Learn those tools. If you understand Puppet, you can apply those same rules to your production environment that the operations guys are applying to the production environment. You can create a set of VMs that exactly mirror production. And when production settings or libraries change, you can easily change those on your virtual machines. If you're not deploying to a site and you don't have system-in people to talk to, learning these tools is very useful anyway because it will help you understand how systems operate, how things work in the real world. So even if you're just developing a module, I really recommend you looking into Chef and Puppet. So a great thing about virtual machines, they are disposable. The other great thing is you can build machines that exactly replicate your production environment. You can actually talk to your system-ins and get the same scripts that they use and apply them to your virtual machines. And you can make lots of boxes. Make a test box. Make a dev box. Make an A-B test box. Make an A test box and a B test box. Make dozens and dozens of boxes. And if you've ever, in frustration, wanted to go into your main server and do a rm-rf slash virtual machines are the way to do that. You can destroy them all. So I hope that I've started to convince you that knowing systems is a good thing. It sounds like most of you are already at least halfway there. So go forth and use your new system-ins superpowers to develop better code. And with that, I'm going to turn it over to Rudy. All right. So be a dev-up. How to get ready for deployment. There's a few things to know. Are you releasing too frequently or not frequently enough? There's a careful balance to maintain there. Knowing what it is time to actually deploy your changes to production is important. And having a simple, easy-to-follow deployment process helps keep everyone happy.  Your dev side can rest easy knowing updates have been tested before they go out if you have a good deployment process. Your off-side can rest easy knowing there's a simple deployment process in place. There's not a lot of things that could go wrong when your ops guy is deploying your code. You don't want to light your infrastructure on fire. So it is important to know your upgrade path and the dependencies that may come into play during your release. So reduce your moving parts. That's just a general, you know, less is more in this sense. To make things easier doing deployments, try and decouple as much as possible. You know, avoid depending on things just to depend on them. Sometimes this is inevitable because you need to depend on something. But understand whether it's a Drupal module depending on other modules or library versions or on a lower level things like package dependencies at the OS level. Things like CentOS 5 comes bundled with PHP 5.1.6, I believe. It's very old. So how do you upgrade that separate from having to upgrade to CentOS 6? So an example of that would be like using an external like third party package repository that has PHP 5.3. The IUS repository has this. It lets you upgrade within CentOS 5 to PHP 5.3. You know, test your code without having to actually upgrade to CentOS 6. Then when you're ready to upgrade to CentOS 6, you can do that separate from upgrading PHP at the same time. So it kind of reduces the amount of changes required to deploy whatever you're trying to deploy. When do we really need to upgrade? There's a few security fixes, critical bugs, obviously those are important. These are generally smaller fixes, you hope, so they're easier to test. Once they've been tested, deploy when they're ready. New features are also important. Make sure to thoroughly test and take your time because if it's not a security vulnerability or something critical, take your time, test it, make sure it works. And if that means a deadline might slip, deadlines are important, but your PM probably has a contingency plan, right? Hopefully. We all make mistakes testing before it's too late as key, but so is keeping it simple. So what does your deployment process look like? I don't know how many of you are familiar with Gitflow. It's a semi-common Git development process. Over on the left is the keep it simple, stupid development process, which is what the GitHub kind of development process looks like. So what does yours look like? How hard is it to deploy your changes? There needs to be some rigidity here because you want to be able to test easily. You want to be able to know when things are ready and you want to be able to easily move from dev to production in a way that doesn't involve too much, where your development process is the cause of unplanned downtime and outages and bugs in production because you forgot to merge the right branch or you merged the wrong thing or you didn't commit the right thing. Just having a simple process helps keep the human error out of things. So what do you really need? Well, it kind of depends. For Drupal, Drush is your friend. Drush is a great example of an ops tool that works for both development and deployment. Web apps are wild beasts and there are many ways to deploy and maintain web applications. It's really a talk of its own, actually how Oregon State University manages large-scale Drupal is a talk about that and it just happened. So if you were there, that was a talk about exactly this. So just kind of to touch on this, Drush is a great tool for kind of testing your changes, getting things ready, knowing you can test the latest version of Drupal easily. There are commands like run server and QD to download a quick copy of the latest core version of Drupal to run the server without having to have a patchy installed on whatever you're testing on. Being able to r-sync files from production to staging, being able to copy your production database to your laptop or your development environment or whatever it may be, Drush is extremely handy for your deployment process. And finally, testing. I've already talked a lot about testing, so you know it's important. It's kind of a necessary evil and it can be tedious, but continuous testing makes things easier. So Drush has commands that will run Drupal simple tests to test your code if you're doing Drupal modules or themes or whatever that have simple tests in them. And a tool like Jenkins, continuous integration, helps you sort of continuously test those things and it will notify you when, you know, there are bugs in your dev branch that Jenkins is testing with Drush in simple tests and you've broken something. So having to kind of take that away and automate it so that you don't have to remember to always run it, you just know, okay, Jenkins passed the test, so my software is ready to go into staging or to go into the full development environment. And when you fix a bug, you know, this is true for anything, write a test for it so you don't hit that bug again. You never know when some change that you make brings that bug back up and you forgot to write the test and you don't remember, or you remember and you're like, oh shoot, forgot to write that test. So, you know, have that ready, use the continuous integration, and on the off side, you know, we should test our infrastructure too. You know, you can write system tests, behavior driven development type tests with Jenkins, things to test if your web server is starting HTTPD or Nginx or whatever your HTTP server is properly and running and serving Drupal. That could be a suite of tests that you have for your infrastructure. Or does my database server start my SQL with a working Drupal database? Is the web server able to connect to it? Tests like that we can do on the off side too. And so once you have your deployment process defined and respected by everyone in your organization, it's time to go from the development to production. And with that, Greg's coming up to talk about going from dev to production. First I had no idea I was going to be on a game show today. That's a little different, so I hope the price is right. So, yeah. You know, once you got your code written and actually even before you write your code, as Ken and Rudy talked about, knowing what your production environment looks like and doing things to replicate it as close as you can makes life a lot easier, both for you and for the systems people, or if you're all the systems people, you're making life easier for yourself. Some of the things you'll note is that development environments very often are small systems. Usually everything's running on one system. So your database server, your Apache server, all that stuff is running on the same machine and it's probably on a VPS somewhere and it's running on, say, your laptop, something like that. So, very often, some assumptions happen there because of that when you're building a tool that might not map very well to a production environment where you are running, say, a load balancer with cache servers in front of it, multiple web heads, maybe having some different internal caching, things like a database cluster rather than a single database server on the back end and also things like network storage. All of these things are places you can kind of trip up and end up with unexpected bugs or issues or performance problems. So, the more you can be aware of, oh, gosh, this is what the environment I'm going into looks like and the more that you can try to replicate that, especially in your development process, your life gets a lot easier down the road and you spend a lot less time putting out fires at the end stages of a project when you're getting ready to, you know, deadlines coming up to PMs on your case to get things deployed and done and you run into an issue where, oh, gosh, I'm wondering properly because all of a sudden it's pulling a session from the wrong cache server or something like that. So, keeping track of where your infrastructure looks like early on in the project makes your life a lot easier down the road. So, some of the things that aren't necessarily obvious that I'd like to highlight to keep you from falling off that cliff is be agnostic about the underlying systems. Don't assume you're running Apache. Don't assume you're running MySQL. Don't assume that you're running on local host for your database because what's going to end up happening is you're going to write something in there and then, oh, gosh, this is getting deployed and the box is running engine X.  Suddenly you may have code in there that is going to completely blow up when you try to push it into production. The other thing is there are a lot of performance enhancements and opportunities here where if you write it into your code ahead of time, your code is going to work a lot better at scale. Things like taking advantage of slave databases.  Your reads are going to get a lot faster. If your documentation gets big, you get slash dotted, you're okay because you've already built that performance into the system. That's also especially true when you're dealing with cache servers. It's very, very common. It's almost, it's hard to find large scale systems now that don't have some sort of load balancer or cache running in front of them. And being aware of that, especially being aware of how you deal with cookies and sessions with those cache servers doesn't, because you can run into situations where if you're setting cookies, you're storing information in a cookie that really maybe should be stored in the database or in some of the session variables.  So you want to be really careful about what you do with those cookies and if you're ever, it's uncommon in the Drupal world, where you're manipulating the headers or you're setting expiry times, those front end cache servers respect those expiry, so if you set a very short expiry on a static asset, the cache server is going to respect that and it's going to keep querying that back end and increase the load on the back end servers maybe unnecessarily. So, you know, be aware of that and be nice to your front end cache by giving it the information it needs for items that do have a short lifespan, yeah, set a short expiry or even a zero expiry. Because you know are static that aren't going to change or change very rarely, set as long an expiry as you can on those items and you will make your life a lot easier, especially down the road when the site's in production, load starts hitting it and suddenly, oh, gosh, you know, because it is so difficult to really reproduce and test using high concurrency, real user traffic, you can do it, but it takes a lot of resources to simulate users. So by being ahead of the curve and expecting that sort of stuff and writing your code in such a way that you can allow those front end caches to take that traffic, you're going to make life a lot easier on yourself down the road when load starts increasing so you don't have to spend a ton of money spending up extra instances trying to support this traffic. Another key thing to note is especially when you're running multiple front ends, sessions, be really, really careful about that because more often than not, on large scale systems, like your session table is going to be stored in something like memcache rather than the database because it's so much faster. But be careful on that because if those memcache instances are running local to the web heads and they're not shared, you could be in a situation where your session data gets stored in one web head, somebody hits the site again but their session's not stored on the next web head they hit, they're going to either be asked to re-authenticate or worse, lose their session entirely. So you end up with very confused users. So when you're working with that sort of thing, be aware of that sort of stuff and make sure that your ops people, when you're working with them, that they understand that you're using memcache or you're storing stuff in cache that needs to be shared across all the systems so that you're using a centralized shared cache infrastructure for things like your session variables, things like that. The other thing that's important to note on that is that very often when you deploy to production, you may be sharing hardware with other systems. So set unique keys on those for those key value source like memcache that are site-specific because there's nothing worse than hanging a site, having the web server pull some session information out of the cache and pull it from the wrong site. Suddenly you have the theme registry from a completely different site. You have a very, very broken site and a very unhappy user. So being aware of these things and looking at how you're deploying your systems, these are some places where you can trip over them and end up with probably an unhappy manager yelling at you. Talked a little bit about this, but when you're dealing with clusters again, another important place to look is things like the files directory, especially CSS and JavaScript caching if you're using the aggregation because if one web head generates that to its files directory, somebody hits a different web head, those aren't going to line up properly. You need to make sure that those things like the aggregation, the user uploaded files, things like that are on a shared file system that's accessible to all the web heads because if they're not, you're going to end up in situations where you have broken JavaScript, broken CSS and again unhappy users. I hinted about this a little bit a minute ago also, but it's a lot of these systems. So what happens when either 10,000 users hit that site all at once? Are you ready for it? Is your site, is your code using cache efficiently? Is it to using slave databases? Is it setting those headers properly so that the front-end cache servers can actually serve that content and not overload your PHP web heads? At the same time, you want to make sure that you're leveraging things and you have a situation like OSU has where you have 1,000 sites running on the infrastructure. And what happens when you start deploying more of those? Is that going to be a problem? How do you reduce the overhead of either one, managing that? Or two, even the overhead of things like your APC opcode cache. If you have 800 separate copies of Drupal, your opcode cache is going to have to cache those all separately because it doesn't know they're the same. So keeping track of that and understanding where your target environment is and understanding that where the bits and pieces are make your life a lot easier down the road and makes it much more likely to, especially under load, your site's not going to fall flat on its face. And then lastly, this is my own personal pet peeve I've run into. I don't know how many times. And that is do not assume that you're running in your own Drupal instance and you may be running in a multi-site environment. Don't hard code for sites all because as often as not, it's entirely possible you're running under site slash something else. And so by assuming sites defaults, especially in themes, but also in modules, you're going to run into problems because the folks actually deploying to operations are going to have to, when they are, find all those references and change them to point them where they really are or do some crazy sim linking or something like that. That makes them grumpy and then they don't like you very well and then they don't deploy your code as quickly as you want. So keep that in mind and be aware that check your expectations, check your assumptions at the door. Work closely with the people managing your infrastructure if you have other people doing it and understand what they're doing so that you can make their lives easier because then it's going to make your life easier. And this, you know, we wouldn't be this wouldn't be a Drupal con without the the constant plea of don't hack core. I know it's really, really easy to just tweak this one little thing to make it all better. But when you're deploying, especially in large scale environments in automated deployments and things like that where you have systems that are automatically upgrading automatically pulling down security updates and things like that your hacks are going to get wiped out besides the fact that it's just bad practice anyway. So, you know, really do think of the kittens because hacking core while it is easy and oh, it's just a small site and I'm just changing one line it'll be fine.  So even though, I don't know how many times we say it again and again and again don't mess with core.  And we wanted to leave plenty of time we actually kind of moved kind of quickly which is good given all the problems but we do have some time for questions. There's a microphone up here at the front so that we can actually hear you because it is awfully noisy in here.  Let's love to hear your questions. Oh, we got opera now. How exciting. Didn't realize we're going to get an aria on top of everything else. Many skills, singing, not one of them. So you're talking about optimizing cash and headers and that sort of stuff and that's kind of from the developer's perspective. Yes. I'd like to kind of turn that around from the operations perspective. How do I make sure that my developers are kind of doing all that for me? That's a good question. From my point of view, when I'm going through and looking at code I'm getting ready to deploy when I'm working with my front-end team and my developers, usually the first thing I do is I hit the site with Firebug enabled and look at the headers on the page. I want to see what's there. It will be able to tell me really quickly so if I pull that up I pull up the headers on say the CSS and look at those and say, oh gosh, there's a cache of zero or there's a cookie set on that. I also generally have some debug headers I inject at the varnish level that tell you whether it's a cache hit or a cache miss and why it was a cache hit or a cache miss and so all of those things are usually pretty easy to check and so you just hit the site once or twice with Firebug, you can then see that and you can do it in staging or in development long before it ever gets in development team if you have a separate development. The other thing you can do is especially if you're running something like varnish use the log tools and you know, use the varnish log to watch the back-end requests because there's a lot of information there about what is going to the back-end why it's going to the back-end whether it was a cache miss or whether it was a hit for pass, something like that. So between those two things usually I have a pretty good idea within a few minutes of just hitting the site to be tweaked so you can flag for the developers. Hi, Mark Dorson from Martha Stewart. So we have a number we have a custom deployment tool that we use that takes the site offline when we do our deployments which we're not very happy with. We have a number of ways to mitigate the effect of this on our end users but there are some parts of the site that it's hard to such as search with very unique queries that haven't been cached previously where it's still a huge pain point when the site has to come offline so I was curious about if you had any strategies for deployment and either mitigating or eliminating the need to take the site offline. I'm answering all the questions. I'm happy to do it but if you guys have something go for it. There is one trick that I've used in the past and depending on how your site's structured it may or may not work but usually at least for Drupal core upgrades and most of the time the module upgrades obviously test the upgrade first in like a test environment but you can almost guarantee that like the schema changes and the database that need to happen for the upgrade can happen before you actually upgrade Drupal core so you can separate the database upgrade by you know linking using your host file or some test site to like the latest version of Drupal or with the latest modules installed run the database update on production but leave the production site pointed at the older version of whatever you're running and then when it's time to upgrade you don't have to run the DB update at that point you can just push your code into production and reduce the time that it's offline during the upgrade process. Another thing you can do is kind of related to that is especially if you're running multiple web heads behind a load balancer or something like that take one of the web heads out of rotation upgrade the code there test it again you know run the DB updates things like that make sure it's working okay put that back in rotation and then rolling update through the rest of them I mean depending on the way your site is built that may not be the best solution but for a lot of sites that works quite well because generally you can kind of stage that and so you might have a period of time when you're going through that update where some users might get the old site some users might get the new but Drupal is generally pretty good about backward compatibility on that so both of you wouldn't be concerned about having I mean you both are kind of saying update the DB first whether it's completely separate or on a single web head so you're not concerned with having a newer schema with the older code pointed towards it as long as you test first usually you I mean you'll catch it if it breaks when you're testing but in my experience it almost always is backward compatible where like you're adding an index or you're adding an extra column or something like that that the module doesn't know about because you haven't actually updated it yet in production so you can do that and like what Greg said with multiple web heads you know take a few of them out of rotation upgrade those switch back and do it on the fly but definitely test that through with Jenkins or with some other continuous integration first and make sure that it actually works like that thank you come a system administrator with open concept consulting I was looking a while back into a vagrant virtual box and I like the idea of virtualization and I like what you were saying about building a disposable system that identically mirrors my production environment and that's a really great idea but when I was looking into it a few months ago virtual box on my laptop RAM like crap and I just I couldn't get the performance out of it to even do development I know that they've made a lot of improvements on it I know that the author has now support for VMware so if you want to use that you can there's also plugins out there so if you have a for example like an EWS account you can spin up EC2 instances using vagrant so you don't have to do something local so there's various options with vagrant as far as I know I haven't personally tried it outside of vagrant or virtual box but there's a lot of options for that so you might check that out maybe even just running it on a different system another thing you can do is the disk I owe in virtual box is utterly horrible and that will kill you what we've discovered is if you actually because it has support for NFS mounts if you actually configure the vagrant file to till it to mount the web root as NFS even though it's a local NFS mount it will increase in production you're hosting the NFS mount from within the virtual box as well or from the host system basically what ends up happening is it has your host machine offering it basically configures your host machine to offer up whatever directory your code is sitting in as an NFS share that then the virtual box mounts and it's vastly faster the one disadvantage to that is it does require at least on Mac and Linux it does require when you're spinning up the virtual box to provide a password for sudo because it has a sudo up to export the share that then virtual box mounts but that just means you can't blindly spin up boxes when you spin up a box you have to type in a password I've had problems with NFS on macOS in the past but that's a whole other can of worms the virtual box share mechanism sucks with bandwidth so I would not try to chance for a lot of files over it you know doing the NFS mount is definitely the way to go that's an interesting plan the other thing just as a follow on to that one of the things that I've done with my developers is we now ship a vagrant file in the root of every repo so every project we create a vagrant file that will spin up and mount the web root of the repo so that all of our developers have to do it when we create it which is great it's actually saved me a lot of headaches with our front end folks is they're able to clone the repo do vagrant up and immediately start working on the box without having to worry about any of that and they're also working in an environment that's much closer to production can you speak to managing and testing and deploying configuration changes that live outside of Drupal root like if you have a mic change that you want to test and then escalate through development and stage and production are you using configuration management so that's kind of the the key purpose of configuration management is to give you kind of a central well in most cases a central like get repository where your configuration lives and then a tool like Puppet or Chef to take that configuration depending on how you've templated it or put it in your configuration management to deploy to places and with a tool like that it makes it very easy to say with Chef spin up a virtual machine for testing and assign it the same role and recipe that you're using in production to test your change before you actually roll it out to production so you can use configuration management to stage like your dev staging production environment to actually test configuration changes to your core infrastructure before you push them to the production environment hi there my name is Albert I'm from TP1 in Montreal I have a question about what exactly should I ask of my office people because they're like in a different building and I don't even know them and it's often like I ask some questions and I'm not exactly sure what to ask so if I understand you correctly I use Jenkins with Vagrant to set up a virtual machine which then puts on a LAMP stack with Drupal and test that so it would be the puppet file which I would ask for my office people to give me that and then use that to populate my virtual machine is that a good way? quite possibly yeah I mean Vagrant definitely will support that nicely the other thing you can do is just even one getting to know them personally even if you know even in specific questions aside you know sometimes putting a face to the name will help a lot but I think even just getting a list of what the standard deployment environment looks like as far as versions what distribution are they running what package versions are they running how are they managing that and just kind of first of all systems guys love having people ask us well how do you do that so you know just going in and asking them what's your process look like what can I do to make the process work better with you even if it's not a specific question sometimes just starting with the general question of what can we do to make this process easier for you we'll very often open up the discussion and get it going but I think one if they can open up the Puppet repo to you so that you can see what the Puppet configs look like great but even if just grabbing what package versions and distro versions and things like that that's usually a great place to start because then you can work that into your Jenkins and Vagrant install so that you're at least replicating somewhat closely to what they're doing yeah and you know if they're weary about giving you access to the Puppet repo you can either ask for read only access say can you just give me a virtual box VM that's set up like production using your you know your Puppet or whatever already done and then we can use that as our base box and kind of replicate from there that way you have something that's as close to production as possible Hi I'm Selene from WebEnable I want to know if you guys like what components are you using in your stack you mentioned Vagrant, you mentioned cluster how is the cluster set up does it scale out does it scale in does it do it automatically where is it hosted internally but you know I mean how many developers you have do you guys use GitFlow now that's a lot of questions I don't know if you guys have like a starter guide for new developers or new sysadmins or new devops people that I can access or we can access from your site that kind of walks us through your environment your components that would be really nice to have I don't think we have anything posted right now of kind of like a description of the stack but we also have many different stacks that we're managing one I can talk about is the Oregon Virtual School District and they are a K-12 posting of Moodle and Drupal sites and so we have a developed a hosting environment for them and that is you know multi-tiered there's a pair of load balancers in front configured with the virtual IP with HA Proxy doing SSL termination to a dynamic number of web nodes on the back end there's I think six right now that just kind of handle requests and those are using IngenX and PHP FPM but it's very specific to kind of the needs of this particular client of ours and so depending on what you need and what you're doing IngenX and PHP FPM you might go with Apache and Mod PHP or something like that but for this we're using IngenX and PHP FPM mostly for all the static content and static files that they have posted database side we're running Percona 5.5 in a master slave configuration with a virtual IP but a very manual failover process because we don't want failure to happen and start you know split braining switching back and forth and losing student data because there is student data in this database and so that's just one large database server with the large slave and split with just master slave replication and then as far as like replicating the files across in a clustered environment we're using GlusterFS I was going to say yeah, it was NFS or GlusterFS and GlusterFS has worked really well in this environment it's a little bit more complicated in that we have a very standard kind of Drupal GitHub Git repo that has the core Drupal for OrgVsD posted on it and that is replicated to the web nodes via Git and so they're kept in sync with Git and then these sites directories for these sites that are deployed are actually on GlusterFS so there's a sim link out to GlusterFS for the sites default sites all and the modules themes and files for the sites and everything else is kept on the local file system and what tools are you using to manage all this stuff just shell? Chef is in progress well I was going to say just a shell in a bash or something a lot of that is through Jenkins so Jenkins is kind of the master controller for all of these web nodes and deploying and upgrading and all of these things so we've written some Jenkins jobs that do the deployment when a certain branch is pushed to both for updates it will deploy and get pull on all of the sites and update those and then run through the process and so there's the ability to test beforehand and there's a staging environment setup and all of these other things and Jenkins is kind of like the mastermind behind that in addition to CF Engine and Chef for the configuration management part of the actual operating system and PHP and MySQL and all of those tools and how many developers and sys admins do you have? There's two sys admins and one developer full time we have a team of students I think there's about 16 developers slash systems students right now that we utilize and they work up to 15 to 20 hours a week oh not bad okay thank you just a word on our student developers and learning how to know what to ask systems it goes back to that once you start trying to put things together you will know what to ask because you'll know you'll understand what it is you don't know so what we do with our student developers we just plunge them into the code we bring them in we give them oriented on the systems how they work we start assigning bugs and they're plunged in the middle of the code base I think it's similar with the system side they're in the middle of the configuration management with tasks they have to do and they learn how to do those tasks and that's how they learn that's my advice for setting up virtual boxes or environments and learning the system and stuff just start doing it and you'll figure it out time for one more does varnish provide visibility into which pages are cached and how can a developer request varnish to recache a certain set of pages the first question not really theoretically there are ways probably the easiest way is actually just to request the page and as long as the varnish config is set to tell you set a header on that it'll tell you whether it's cached or not that's probably the simplest way but that's a little bit brute force the second half though is how does the developer tell a page to the varnish to flush page fortunately for varnish there is a very good varnish module that's available for Drupal but you can also do it manually and that there is a command line interface that you can connect to that's control port you can send it in a command and you can send basically a flush command with a regex just describing what page or group of pages you want to invalidate and it will drop them out of cached and then the next request that comes in will load them directly from cached but the varnish module is great it's rock solid stable and does a very good job it's available for both Drupal 6 and Drupal 7 so yeah so it will cached pages that are for authenticated users as well it can but it's genuinely not recommended from the most part when you're dealing with authenticated users in varnish cached what you're probably going to end up happening is all your static assets your images and your css and all that's going to get cached by varnish but the actual PHP page content is probably going to pass to the back end there are some interesting tools which varnish supports and things like that they can get really interesting and esoteric where you can actually start caching authenticated user traffic there are also ways that you can do with the cookies and using the cookie as a cache hash you can actually then for maybe a shorter period of time cache authenticated user content but generally you're going to end up with frustrated users because what will end up happening is they'll hit something like an edited page and then it comes back cached which means they're not going to see their edit so in the most part you want to try to avoid caching authenticated users when possible but there are ways to do it what about if you just load the dynamic content with Ajax yeah possibly depending on yeah there are ways to do it you probably have to watch for that in your varnish config so you probably want to work with whoever's managing the varnish server because you're hoping to have to put some custom code in the varnish config but there are ways to do it it's interesting and complicated but it's possible thanks well thanks for coming thanks for putting up all the hassles and the noise and the echoes so thanks for coming everybody enjoy the keynote and we'll be around all week and we also have a presentation on Thursday about ORVSD if you want to check out what we're doing with that thanks


He was scheduled to go Friday Nestor goes Thursday So we'll just you know, we'll see where we're at going into Friday if it turns into a bullpen game if we're able to get a starter up here You know, we're we're we're truly day-by-day right now hour by hour. So In the meantime, Stephen writings and Brody corner have also been called up Today, so they are you know part of the bullpen tonight And we'll see We'll just see where the week and in the games take us You guys have had multiple cases at the same time before but how tough does it make it when it's to two starters in the rotation and try to navigate that? Yeah, I mean, yeah, I think everyone can understand. That's that's certainly a challenge and difficult and You know, certainly feel for Garrett and Monty in this situation guys that are obviously in the midst of great seasons for us and integral parts of this team So feel for them having to go sit out when you know generally speaking they're feeling pretty well. So Yeah, it's frustrating, but it's also What we've what we what many people in the world have had to deal with and every walk of life and You just you just handle it and deal with it the best you can and and try and get through it And we've been through some of these kind of challenges, you know Even recently and I've gotten through them and that's what we'll expect