Great question. Clays, let me get rid of this banner, Rob did you continue DCing? So the plan was, I have been DCing since 2017, but as you recall, last week, I was like, I'm gonna stop DCing for this week because this was, I felt that when the CPI numbers came out on Friday, I go, there's no way they're not gonna be low, unless they straight up lie to us. I'm like, the inflation's all around us. I can tell, and when those CPI numbers come out and they're hot, what's that gonna do? It's gonna junk the market. And then I'll just wait for it to go down and I will buy there. And I said, I couldn't be wrong. I hope I'm wrong. I said, but if it is that, if it is the case and the CPI numbers do come out positive or come out low, then I'll just wait for those numbers and I'll immediately buy as much as I can because the market will probably go up. Well, it worked out the way that I thought it would. CPI numbers are high. I think the Fed Reserve meeting is Wednesday. They're gonna come out and say, three quarter basis points or one full basis points. That's what I think. I could be wrong. And I think it's gonna go down even more because that's not priced in, sorry. So what I did was I bought a little bit on Friday and I'm gonna wait again on Wednesday. And I was gonna, the money that I usually put into Bitcoin, I will just save it up and wait for the Fed to come out. I still think if the Fed comes out and says 0.5, it'll still go down. That's just how it is. So I think we got a lot more pain to go but DCA is the safest way. Just right now, just buying the dips. Like I haven't talked about that for a while. I don't, I'm all dipped out a long time ago. So I just do the basis that I can but not, there's only two walls I buy and that's it. All right. Hope to answer your question. What? What?  The king of the ship. Well, you have a point. All right. So then we go there. What is this? Ben Cowan's, my escape. Ben Cowan's other call for possible something. And he did say that I listened to his, I don't know if that was for his members because he's got a great website app.inthecryptiverse links in the website, non-affiliate link. Go check that out. A lot of great data and charts on there. And I did in one of his shows. He said, yeah, we could see around 20K. And he always has the same thing. I could be wrong. Hopefully he's wrong. Let's see. Hey, Rob, is there any new promising crypto products being built to release these bear days? Yes. And it's called Sweatcoin. I'm gonna do, I'm gonna do a deep dive video not on this channel. This is not the channel to do deep dives into the degenerate new projects. That's for Dan DGen. This channel is the basics.  And then Dan DGen, we just talk about the crazy stuff that you can gamble on. That's it. If you wanna lose all your money, go watch Dan DGen. That's what I always say. And if he makes some money, well, sure. Rob, with your properties or your renting houses, do you own apartments? Just wondering what they look like. So my wife owns apartments. So I guess I do. But we own houses and we rent them all out on Airbnb and Verbo. And right now, travel is still pretty good. But what's great about that is that, like in Houston, people still come to Houston for jobs or people get relocated. So that works out pretty well. And people in El Paso is a thriving military community. So that'll always be there. And then just remember that even if you have properties that you usually use for rentals for vacation or you're doing whatever it is, short-term rentals, just remember that just like in 0809, if there's a big economic, big, big pullback, people still gotta live someplace. And they may unfortunately lose their houses.  That's the reality for a lot of people, you know? Especially when job markets start to dry up if that actually happens. So if that happens, people gotta, they can't afford houses, but they gotta rent someplace. And that's why you would be in a great position to rent out any of those properties that you potentially own and hopefully give those people a nice price break for going through hard times because you're a compassionate person. That's it. That's funny, Bootsy. Let's see. I've been adding, Benji says, I've been adding beachy on these dips. Nobody's talking, so I'm walking over to you. Heard there was a partnership between them and UFC. I don't know if that was a long time ago. I don't know. So he says, dodgy. There's a lot of dodgy things out there, let's be honest. I met a lot of dodgy people and consensus. I'll tell you that. Shilling sweat coin, you better believe it. It's awesome. So I, again, for these deep dives, just so you know, like over in Dandigen, we've done three so far. We've done Gensokishi, which worked out great. Ever done pretty good and fame worked out great too. And in the old days of the pump and dumps, ICOs, what people would do is they would say, let me talk about your coin and then I will dump it on my people. So that doesn't work anymore.  See, I plan to be here for the next five, 10, 15 years as long as I can mentally keep doing these things. So for these projects, they're like, do you want in? Sure, I want in. Great, well, you got to pay us because if you want the coins, that's how it works. Also, if you want to get some kind of head start, that's fine, but you're not going to get any deals. And we're definitely going to give you a lockup period and it's going to be more than the other ones. Oh, and also if you want to do anything, then you're going to have, you have to have somewhere people on, okay?  And what does that mean? That means that if I'm going to talk about, that's why I talk about like, I every so often I'll talk about against Okishi and fame, never done because I still own those and I want them to do well. So yes, I am biased on these things, but because I own them. So if you hear me talking about it, you're like, oh, Rob must own that. That's it. I'm very biased. Rob is not cool. Rob hasn't been cool for a long time. Thank you. Let's see. What projects are you investing in? A lot more Bitcoin now. Ethereum scares me. Ethereum scares me because this mergers and things are just not as smooth as what we, no one really thought it was going to be smooth. I'm not, why am I lying? Everybody thought it was going to suck and it was going to be awful and it was going to go through a lot of things.  It's going to be great. It's going to happen like no problem. Yeah, right. It's like trying to change an engine as it's going down the highway. It's super tough. Tim, I had those guys, the developers are doing it, but there's been problems abound and one of the people I talked to who owns a pretty big project, top 50 crypto, he's like, yeah, yeah, Ethereum is AOL. He's like, Ethereum is the AOL of crypto. He's like, it won't be here forever. I was like, maybe. But again, that's just hearsay. No one knows. Thoughts on Theta mainnet coming soon. Thank God, I've been holding on to that for way too long. I should have sold all that, but I just, I sold enough to take some profits. I was good. Again, I have an inability to sell everything at the top perfectly and a bad disposition of trying to buy everything at the very low bottom. It never happens. I don't think anybody can do that either. So that's it. But yeah, that would help out. I like Theta. I mean, the team and the people that are behind it. I mean, even Google was a validator for Pete Sakes, an enterprise validator. And then you got Steve Chen from YouTube, who's on the board or board or advisors or whatever else. So, I mean, they do a good thing. It's just, you know, who knows? Yeah. Gareth Salloway calling for sub-2, 20K Bitcoin. That is very true. My IPA is spaced us from the Leysian. Leysian. Dana, do you think when the recession will be confirmed will be the best time to buy the dip? No, I think as soon as, see here's the thing, me personally, I think we're in a recession right now. There's other analysts, Bank of America and whoever else, they don't think there's gonna be a recession until 2023. I think this next quarter will confirm it. And I'm not an economist. I'm just some guy in a pool room talking to you. But I look around and I see the prices and I see the problem with supply chains and I see the problem with lockdowns and the different things that actually rev up and do and the Ukraine war is not gonna go anywhere for quite some time. I just don't see the narrative of how we positively break out of that and go, okay, now we're growing. I just don't see it. I maybe I'm missing something, but I just don't.   And then they're gonna go, they're gonna hoard their cash and the market will drop and crypto will go way down because it's a risk on asset. And that'll be like that until the end of the year. Sorry. I know. Rob is all full at Hopium. This is true. Sorry. And again, could be wrong, hoping wrong. Ah, looks like, yeah, go follow Gareth. I do like, you know, one thing about Gareth, I do like he's just, he's not like pounding the table and like, this is definitely gonna happen. Like some of these, some of these people who, you know, what ticks me off is that people who call for a depression every single year since 1998, and they're like, this is the year and they're wrong and this is the year, this is been wrong and this is the year. And they do it for like 20 years in the time that like we do actually have a recession. Like, see, told you, like, you said that for 20 years. I got a broke watch. It's right twice a day. FOMO out there, everybody. We science and facts. Gavin, what is the founder of Polkadot and CEO of Web 3.0? Could be. Rob, you sold all your ETH. I was actually accumulating ETH. I still have a decent amount, but as it starts to go down, I mean, at this point, who knows how far I could go. I mean, we could go down another 50%, it's 80%. That's just the nature of crypto. I'll probably be looking at it, especially if there's any more bad news about the merge and dropping blocks and things like that. I have to start unloading Ethereum, just go into Bitcoin. Ben said it pretty well. He said, bear markets are when everybody or when the most people become Bitcoin maximalists. Ah, yeah. Patrick, I told you. For the top five coins, you're accumulating. So, I mean, Bitcoin is the main one. It's the safest one, the most volatile market. USDC works out pretty well. And here's the other thing, this between us, is that, like, I know Celsius has good yield and people like it, whatever else, but I mean, it seems like there's so, there's things that came out. I've had Alex on the show and he explains this and other things come out and he has to come back and explain this. I'm not saying anybody's guilty. I'm just saying sometimes when there's smoke, there's fire. Me personally, what ticked me off was, and they had to do this, I suppose, accredited investors. April 15th, if you're in the United States and you're not an accredited investor and you put in after April 15th, you don't get yield on it. Before that, if you put it in, you were or were not an accredited investor, meaning you made over $200,000 or $5 million in a business. You're fine. So, I think that was like a big Ben, the knee type of thing to the regulators, which I'm sure they had to do, I suppose. But I had Steve, like the CEO of Voyager on, I'm like, how's that working out for you guys? And he's like, yeah, I don't know what they're doing, but we don't have a problem with that. And we're still giving yield. They just roll out their Voyager Loyalty Program 2.0. So, if you're an American, not an accredited investor, I don't know why you'd use Celsius. I personally have a good amount on Voyager. Again, I don't keep a lot. I don't keep like 50% of my portfolio into one exchange. That's foolhardy.  Control yourself, control the money that you have, control the crypto and put it onto your ledger. That's it. Wow. Kryptonian, thank you. Glad ETH merger was delayed. 22 years has not been a good crypto year. Could you imagine what a mess would have been if ETH merger was another Luna? The way met a crypto. I gotta tell you, there's two sides to that story. And I misquoted this last time when I was talking about businesses that have been started up in like pretty bad recessions and things like that. I said PayPal for some reason, but PayPal has been around since like the late 90s. So, sorry about that. But, but, but, but, just so you know, there's been some pretty decent companies that have been started up. And one thing PayPal was thinking about this. You know, Venmo was started during that big recession. Venmo 2009, Groupon 2008, Instagram, and Uber, Pinterest, Slack, Square was started, Square was started in 2009. And some, that's about it. There's some other stuff, but I haven't really got it. But just so you know, like there's two ways to look at this, like I was talking to Oleg, the CEO of Sweatcoin. I'm like, is this the good time to do it? He's like, no better time now. I mean, he's like, the market's pretty bad. We could actually use a little bit of good news. And I was like, yeah, it's true. So, I mean, he's like, well, see, I do like the utility on that one. That is for sure. Okay, Tesla, yeah, Tesla. I own some. No, it's a great idea. Paul says, what about starting a self storage facility for a side gig during Market Crash? There is an app right now that you can download. I forgot the name, but just like it's a sharing economy type of thing.  I forgot the name of the app, but you can use your parts of your location and have people store things there and just accumulate some kind of revenue for that. So why not? Same thing happened in 2017, 2018. I thought it was gonna be a millionaire because everybody told me I was because that's what crypto was supposed to do, remember? Didn't work out like that, but that's okay because then I just doubled down into my businesses and just grew them over the next couple of years. And then of course, dollar cost average and it worked out great, but that was just me. Can't tell you what to do. Markey seriously is back again. Where'd she go? Legend. Everybody's on Markey. Markey's been around, she knows things. Yeah, we'll see, there you go. Paul says, all the storage companies here are fully occupied. Great, then do that. Side hustles are awesome. Make that extra money, stock it away, do what you wanna do. This is the time to do it, I think. Again, I can't even put that out. When no customers starve, they will know why Fiat is bad, but it'll be two of them. Look, here's another thing. Like, I know we all think and we all want Bitcoin to become like the reserve currency of the world. That's not happening anytime soon. So let's just get that out of the way. And as far as like, like store of value and things like that, I mean, even Peter McCormack is from what Bitcoin did. He says, look, he goes, I gotta tell you everything's an S coin, except for these stable coins, which are built in other platforms, like Ethereum, like Tron. He goes, if you're making 400 bucks a month and your Fiat is being inflated away and you put it into Bitcoin, Bitcoin goes down 20%. That's a big deal if you make 400 bucks a month, but you put in a stable coins and it stays there. And whatever your currency is for your country, he goes, I can't disagree with that logic. So I'm just saying, there's sides of everything. Laundromats, yeah. Historically, let's see this'll be good. Historically, when young asset class in our bear market, it takes everyone down. When exiting, existing, exiting. A bear market most balanced, but only a few continue to move higher, the ones that prove themselves. Yeah, that's why I said, like, we need this recession, because now we can figure out which ones of these projects are the real deal, actually do something and have utility and aren't backed by just these crazy VCs who think that they can just pump everything up and it'll just work just because they have money. Show me the community, show me the utility, show me the team and show me the tokenomics. And let me see just how far it actually can go. And a lot of these projects are either gonna go to the wayside or probably what I think is that bigger projects will start to absorb the smaller projects. It worked out pretty well for Amazon as they absorbed all those different warehouses and like a Zappos and Whole Foods and just name a litany of different other businesses. And it worked out pretty well for Facebook as they absorb like WhatsApp and Instagram and stuff like that because that's just what big businesses do and they become juggernauts. So that's what I think a lot of these big products will do is just absorb other ones. All right. No, Kahandra, not yet. I'm waiting, I'm gonna wait again for Wednesday. I still think we gotta, I think Jay Powell's gonna come out and say, hey, 0.75, that's it. Here's a good point. The government loves your side hustles as long as you keep paying taxes and refrain from critical thinking you do whatever you want and they will love you. And here's another thing. So, you know how people say cash is trash? I'm not saying I've personally done this. However, if I perform a task or people need a good or service and they happen to pay me in cash, you know what's great about cash? No one's gotta know about it. That's not saying that I've ever done that with any of my businesses and I'm just saying it can be done. It's very hard to track that as long as it's not like, you know, million of the dollars. So just saying. And on that note, I should probably get out of here before YouTube shuts me down. You know what? Last question, I just saw this. Do you lend and earn using your ledger? So I was just screwing around with my ledger today matter of fact, moving some things around. And I saw that I can do loans and things like that but I don't think that's for my country. I'm in the United States, specifically right now I'm in Texas. So I'm pretty stringent maybe in other parts of the world but I don't think I can. That's it. All right, everybody. So look, it's 48 minutes. Sunday, let's get out of here. Enjoy the day and think about what we talked about which was yes, there's probably a recession coming. Yes, there's a lot more pain coming for some people but you're not like everybody. Remember, these are huge opportunities. It's just how you play it. So that's it. So look, if you liked today's video, give it a thumbs up, consider subscribing. All things we talk about are very time sensitive especially today and that's it for today. So thanks so much for stopping by. I appreciate everybody and I'll see you on the next one. Adios.


Hey Psych2goers! Is it the highs of the honeymoon period wearing off? Or maybe you're about to begin a new relationship? You're bound to wonder, and you are sure to ponder. Wow, did that just rhyme? Anyways, where- oh, yes. Is your partner the one? And no, you're not alone. It's only natural for one to have second thoughts when you think about the long run. You were in love, and that can make it hard for you to see why you two don't work as a we anymore. It can even occur way down the road when you're beginning to settle in for the ride that is life. It can be emotionally jarring to even contemplate a breakup, as you may still love the person. But when the realization that you don't have a future together sets in, it's all the more important to make the right decision. Here are seven signs they are not the one. Number one, they want you to change. Have they made a list of things they would like to change about you? If any such list exists, even an imagination, chances are they're not the one for you. It's said love changes one for the better. But if that change has to be enforced rather than a gradual naturalness, it sure does leave something to be desired. Everyone wants to be loved and appreciated. The right partner should bring out the best in you, not change the very you of you. If they're not comfortable with the funny, awkward, clumsy, real you, it calls for some serious review. Number two, you can't count on them. Are you a go-getter? In this day and age, self-reliance comes with the territory, but at the end of the day, it feels good to know your partner's got your back. As adults, you each have your own path to tread. Still, you look for a partner you can rely on in times when your path is not so smooth. It's difficult to find motivation sometimes, then it makes all the difference to know that the one beside you is cheering you on, so it does beg the question, will they be there for you when you need them the most? Number three, you have different values. Do they revere the same things as you? Now it is surely difficult for two individuals to have completely the same taste, but when it comes to the big questions, it's essential to be facing the same direction at least. It's difficult to stay on the same road if the destination isn't the same, right? Relationship experts recommend discussing major topics such as finances, intimacy, and others, thoroughly and openly from the get-go, as they may become a major deal-breaker later on. If the two of you don't see eye-to-eye on things regarding marriage or kids, for example, it will only break your heart the longer you wait for them to come around to your ideals or for you to turn to theirs. If your priorities don't match, chances are they won't allow you to match either. Number four, they can hear but not listen. Does it seem like you're the only one making compromises? Do you have a hard time getting them to understand your perspective? Communication is to a relationship what sunshine is to a flower. It's important for the ones in a relationship to read their partner's emotions as well. They should show a willingness to work on the relationship together. Conflicts are a given for every couple, but it's important to have all hands on deck and work towards a solution. If it takes all your effort to get the two of you on the same page, it's possible they're not emotionally available. Brushing things under the rug is only a temporary solution. For the long term, your partner should not only look out for your needs as well, but be willing to meet you halfway in all the efforts you put in. Number five, your intuition. What does your gut feeling say about them?  One of the first red flags in any relationship is when you begin to question your relationship with them. You have this gut feeling that something's just not right. Maybe you've already envisioned that sparkling rock or maybe you've already picked that flowing mesh of white, but the thought of the right one gives you pause. Whatever you feel for them is overshadowed by a sense of foreboding. Number six, they are fond of you statements. We're always late because of you. You don't never care how I feel. Is your partner always quick to criticize? As witnessed, couples are more likely to engage in complaining behavior than most others, right? But is it constructive or corrosive criticism? They leave you feeling hurt and rejected by using even honest mistakes to make negative judgments about you. They always find a way to blame you for the smallest inconvenience without even hearing your side of the story. Psychologist John Gottman, who has analyzed couples for over four decades now, found that repeated critiques berating another person's intentions can soon cause relationships to derail. On top of that, expressions of contempt, such as sarcasm on a daily basis, can make it difficult for the couple to lead the life they always dreamed of. And number seven, your close ones can tell. Has your best friend been telling you to stop seeing them? Do your closest family members feel like the two of you don't match? It's very true that it is your life and you should get to make all the major decisions, but often your close ones can see what you fail to realize way before you do.  They're sure to know more about you and are always on the lookout for you, so if they recommend you revisit your decision, there might be something that struck them as odd. It's wise to understand where they're coming from before striking them out as being too nosy. It is highly possible for you to encounter such situations in even the most long standing of relationship. Does that mean you're with the wrong one? Not at all. Every couple is unique. There are good days and then there are bad days. If you can observe these scenarios occurring sparingly in response to particular events, they're bound to go away with time. But if you see a pattern forming too often, it might be time for you to have a little talk to figure things out. For serious relationship issues, we fully recommend seeking out a trained professional. Feel free to leave a comment down below with your thoughts, experiences, or suggestions. If you found this video helpful, be sure to hit the like button and share it with others. Don't forget to subscribe to Psych2Go and hit the notification bell for more new videos. Thanks for watching!


This is Jonathan Yildon with the University of Vermont Spatial Analysis Lab, and in this video I'll be covering some basics of high resolution feature extraction using imagery in LiDAR. I'll make use of a few software packages in this video tutorial, including eCognition, Quick Train Modeler, and ArcGIS. There are two datasets we'll be using in this tutorial, an ortho-photo in imagined format, and a LiDAR point cloud dataset in LAS format. Let's look at the image dataset within ArcGIS. If we go into the properties you'll notice that this is a digital ortho-photo that has four bands associated with it. We're symbolizing it in ArcGIS as a 412 RGB composite, or a color infrared composite. In Quick Train Modeler, we're going to open up that LAS LiDAR point cloud dataset. This particular LiDAR dataset also has intensity data so we can toggle on and off the vertex colors. In addition, this LAS file has been classified by the contractor. Of greatest interest to us for feature extraction is the fact that ground points, shown here in green, have been separated from non-ground points. If we go into the properties of the LiDAR dataset, two key factors of keen interest to us. Scale, which is approximately spacing between points, and density, which is a number of points per square unit, in this case square meters. Now we're going to remove the LiDAR point cloud file, and we're going to reload the data as a gridded surface model. We're going to set the grid sampling to a value of 1 for 1 meter, and we're going to the gridding options. Here we're going to click on a help. First we're going to set our gridding options to create a DEM or digital elevation model. In order to do this, we'll want to ensure that we're only importing the ground points. By clicking on the classification button, we can go into the LAS filter selection. With the filter using classification checkbox checked, we confirm that the LAS ground 2 class is selected. We want to make sure that we use all returns, and then we can click go to import the point cloud into a gridded raster surface model. Now we'll right click on the model, and export it to a geotiff or raster DEM. Now we're going to clear that model, and we're going to repeat that same process. Once again loading the model is a QTT format, and in this case instead of generating a DEM, we're going to generate a DSM or digital surface model. We'll want to set the grid sampling to 1 again, but in the gridding options we're going to go to the help, and we're going to follow the recommended profile settings for the DSM. For the DSM we don't want to sort by classification, but we do want to ensure that we only bring in the first returns. Now we have a true 3D surface representing all features. This is the DSM, so we'll export it to a raster TIF format as a DSM. Now we'll start up eCognition, ensuring that we're activating it in rule set mode. With an eCognition, please make sure you're in the develop rule sets, or number 4. We'll click on the create new project button, and choose to import the image data. We're going to give our project a name, and then we're going to double click on each one of the layers, and give them an alias. In this case band 1 is red, band 2 is green, band 3 is blue, and band 4 corresponds to near and farad. Giving them aliases will make it easier to work with those layers, and also make our rule set more transferable. We're also going to load in the raster DEM that we created, and give it the alias DEM, and load in the DSM we created, the digital surface model, and call it DSM. Once again, the DEM represents the bare earth surface, and the DSM represents the 3D surface of all features. Now we're going to edit our layer mixing. We're going to choose to display first the DEM, just to make sure the data loaded correctly, and then the DSM. Finally we'll assign the near and farad band to the red color gun, the red band to the green color gun, and the green band to the blue color gun to create a color infrared composite. Now we'll begin rule set building. We'll want to right click in the process tree, and click on append new. The first thing we're going to do is just create a parent process. This is nothing more than a container for all our other rules. We can call this whatever we want, so let's just call it rule set. Now we're going to append another rule. One of the first steps in object-based image analysis is to perform an image segmentation, that is to group pixels together into objects. We're going to use the multi-resolution segmentation algorithm. We're going to create a new level called level 1, and under the segmentation settings for image layer weights, we're going to choose to not use the DEM and the DSM, and we're going to give the NIR band a value of 2, or a higher weight. We'll set the scale parameter to 30, and then finally weight the shape to 0.3. You can play around with these settings to get the optimal segmentation. But it's important to remember that no segmentation is perfect. Once we've segmented those image objects, we can click on them and see that they have attributes associated with them that appear in the image object information window. We can choose to display additional image objects. In this case we're displaying both the DEM and the DSM values, and we also chose to display the NIR infrared values. So for each object we click on now, we see its mean digital elevation model, mean digital surface model, and mean NIR infrared band values. Let's right click on that rule and slide it under our rule set to fit it under the parent process. Now we're going to add another rule. We're going to do some layer arithmetics. We're going to create a new layer called the normalized digital surface model, or NDSM. Here we're going to take the DSM and subtract the DEM from it. The normalized digital surface model is height above ground. And because we're doing math on floating point rasters, we're going to want to make sure the output is also a floating point. After we execute that function, you'll see that we have a new layer called the NDSM, or normalized digital surface model. Once again, this represents the height above ground, and it's a bit more useful than the DEM or the DSM, both of which are relative to sea level. Now we can choose to add the NDSM to our image object information. When we click on each object, we see the NDSM information populated in the image object information window. We can see that features such as buildings are higher than those of ground features. Similarly, we see the same pattern with trees. Thus, the NDSM is a really great way to distinguish tall features from ground features. However, we'd also like to add the normalized difference vegetation index, or NDVI. We can do that by entering a customized feature in which we take the near and for red band, subtract the red band, and divide it by the near and for red band plus the red band. Once we've created NDVI, it automatically appears in the image object information window. When we click on vegetation, we see that they are very high NDVI values, whereas impervious surfaces generally have low NDVI values. Thus, you can see we have some very easy information to do feature extraction. We've got a combination of height and spectral information. But let's add some other procedures. Here we're going to add a procedure to delete our image object level. This is simply going to allow us to run the rule set from the start and clear out any existing image object levels prior to running the segmentation. And finally, we're going to put the layer arithmetic up top. Now these are preparatory steps, so let's insert another parent process called prep here. And we're going to right click and slide our existing processes under that prep step. The parent process just allows us to collect our rules all into a single place. Now let's add a secondary parent process called classify. This is where we'll put our rules to classify the image objects. So let's insert a child under this parent process. And we'll use the algorithm assigned class. We're going to want to run this only on all those unclassified objects. And we're going to use a very simple condition. Under the layer values, we're going to look at the mean, normalized digital surface model and say anything that has a value of greater than 2 should be assigned to a new class called tall. And we'll make the color for this tall class yellow. Once we click OK, we see that tall now appears in our class hierarchy. And when we execute that rule, we see that all those image objects with a normalized digital surface model value of greater than 2, that is 2 meters or more above ground, are classified to the tall class. So here we've used LIDAR information. Let's append another rule. Once again, we'll use the assigned class algorithm. You can access that easily by clicking on the algorithm and pressing A. And we're going to run this only on those existing image objects that are assigned to the class tall. And we're going to use an NDVI threshold of less than 0. And anything that's tall and has an NDVI of less than 0, we're going to assign to a new class we're calling buildings. So once again, these are things that are tall already, but now they have a low NDVI. Let's right click and execute that rule. We see now that all tall features that have a low NDVI are classified as buildings. However, we've got a little bit of a problem here. And we also see that some water features, which were interpolated incorrectly in the LIDAR data sets we created, have also been classified as buildings. So we might want to slightly rethink our workflow. Our workflow would be much improved if we actually classified water features first. So let's first insert a temporary parent process. And under that, we're going to insert a child process. And we're simply going to use the remove classification algorithm. The remove classification algorithm preserves the image object level, but deletes the classification. Now we're going to insert another child process. This is going to be the sign class algorithm again. We're putting it before our other classification algorithms. We're focusing on those unclassified image objects. And we're using a simple threshold here. That threshold is near infrared values lower than the number of 45. And we're going to assign those to the water class. So all image objects with a near infrared value of less than 45 are going to be assigned to water. This is being run prior to our algorithm, which assigns those objects that are tall greater than 2 meters to the tall class. As a result, we don't have any image objects erroneously classified as buildings in water areas. Now all of our tall remaining features tend to be tree canopy. So we'll just put a simple assign class algorithm here that says anything as tall is now going to be assigned to the class tree canopy. There's no threshold associated with this assign class algorithm. It's really just a reclassification step. We can continue in this workflow by now focusing on the ground features since we've classified all of the tall objects. We can use NDVI once again in a threshold of 0 to assign all the remaining unclassified objects that have lower NDVI values to a new class called other impervious. These will be roads, parking lots, and driveways. For all the remaining objects, those that have yet to be assigned to a class and are called unclassified, we can assign them to a new class called other vegetation. That is to say, all the remaining objects that are vegetation but not tree canopy are now in the other vegetation class. This is a pretty decent classification. But if we zoom in, we'll notice that we have problems in some areas, specifically with these buildings adjacent to water. If we turn off the classification, we can see that these aren't buildings at all. Rather, we have some objects with erroneous, high, normalized digital surface model values that also have lower NDVI. But these have some very distinct properties associated with them. First, they have a very high length to width ratio. So let's display length to width in our image object information window. You're going to notice that the length to width ratio of these false buildings is much, much higher than those of our actual buildings. There's another key characteristic, and that's context. The false building that we're looking at here has a high relative border to water features. So we're going to create a new relative water to feature here and display that. You can see that more than 50% of that image object that is a false building borders an existing object classified as water. So now we can use an assigned class algorithm to go in and focus only on those objects classified as buildings. We're going to use two thresholds. The first threshold is going to say if your relative border to existing water objects is greater than or equal to 0.4, which means 40% of your border is shared by a water feature, the second is going to be geometry related. That is to say that if your length width ratio is greater than 6. So two criteria here, length width ratio and relative border to water. Both of those criteria are met. You're now assigned to the water class. So we can see here that using a variety of steps, segmentation, simple classification, and complex classification, we've been able to classify these features. Finally, we're inserting a new process here to export the classification as a raster file. We'll choose the classes that we want to export, give it an export name, and ensure that we select the option for classification. Now that we've built our rule set, we can execute the entire rule set and we'll run through the segmentation classification and export functions all by clicking on that top parent process rule set and then right clicking and choosing execute. With our new classification, we can now view it in GIS software packages such as ArcGIS. Finally, we'll want to save our project. And it's also a good idea to right click and choose Save Rule Set so you can reuse your rule set again with another project using similar data. That concludes this tutorial. Thanks for watching.


What's up everybody, Jason here for jazzynforjazzbeadscasebass.com we just sold out jazzyn 16 box baseball mix, your pick and jeans number two this includes six boxes of tier one baseball and 10 boxes that are clearly authentic with a $500 break credit code giveaway if you buy two or more teams so how to get entered guys all you have to do is buy two teams in this break or more and get entered to win no max entries you buy two teams you get one entry by four teams you get two entries six teams get three entries etc if you only buy one team you will not be entered top two names each will win uh $250 in break credit so that'll apply to everybody if you have a little character sign that means you won it from a team random but if you did get two uh teams in the team random then you will automatically get entered into that giveaway and then we'll see who got spots into the who got two or more i should say sorry and then we'll uh check it out there so here we go guys um so this is like the second half right this is number two we did the first one with joe and here's everybody else here so we'll start with clearly authentic all right and i think joe labeled him two two two four five six seven eight nine ten perfect and then we'll end off with the second half of tier one so here we go guys good luck we have a berry larkin tonighty nine for cincinati cincy that's going to patrick cox there you go first one done my piazza that's 16 out of 25 nice one there for the mets mets is going to barry roberts got that from a team random we have andre jackson for the dodgers chat with that one all right philly's two out's away from winning the series and upsetting number three st lewis we have sunny gray for the reds patrick there again we have a carry wood for the chicago cubs patrick again there all right halfway through we have a wool clark that's to 25 21 out of 25 for the giants san francisco giants that's nester nice yard on alvarez that's to 50 38 out of 50 for the astros another one there for patrick all right three more to go for the rays to 50 austin meadows rays is going to tyler two outs for the philly's one out away from winning and advancing and they would play the braves right nice mark maguire for the a's going to robert that's 90 out of 99 very nice signature very nice card all right last one here folks last one heel park for pittsburgh that's jared that's a rookie autograph there all right there you go folks that was the first half of the mixer ten boxes clearly a couple nice good veterans right you gotta get mark maguire got a yord on there actively there got a mike piazza very larkin some good stuff now let's go to the six tier one boxes these of course give you two autos and one memorabilia on average we got an erin judge relic we got a moises aloo to 299 that's for the hues and astros and an aeronola for the philly's to 99 oh base hit by the cardinals two outs one person on base time running at the plate aviar buys to 399 for detroit got a jazz chiseled to 299 for the marlins and a byron buxton to 299 for the minnesota twins so marlins is patrick minnesota twins is jared and what if yachty just hits a two-run bomb right now to tie it devon williams to 399 we got a whip married filled for the royals and a hosea remeer is also on today the cleaving gardens advancing to the al ds two strikes yeah you guys see bullsies just like praying or no hit his eyes closed all right this box feels a little heavier might have a thicker relic or maybe uh two relics yeah so i had two relics so i'm gonna cut you into 399 buster posie to 399 patrick corbin to 299 with a nice o'neill cruise to 299 that's enough for the pirates jared all right the one two pitch hit yachty with a base hit st louis has life runners at third runners at the corners i should say all right two more to go guys jason a word at 399 immanuel revered at 299 and a nice pudge yvonne rodriguez for the marlins to 999 yeah i think the mets were already going to win right this was the only game that potentially would have been over but st louis is trying to have a little late late late late potential tying comeback 2009 but if the fillies were to somehow hold on i think the met series is the only one that's going to go three games right if fillies end up holding on oh were they all right we got wilson contrast to 399 to 10 eddie peralta and a nice greg maddox for the braves to 50 last thing you need is a wild pitch dude i'm still going to fall all right folks and there you go everybody that was the break some nice autographs here popping out on the old crews as a bigger rookie buxton chissom appreciate it guys so now let's do the giveaway guys so let's give back some money so again if you bought two or more teams you had a chance to win up to 500 we're gonna give back 250 to two customers so i alphabetize it already of course barry you only had one because of the giveaway so you're not in a chat you had five so that's only two entries all right that's five right yeah dwayne only one james d you did have two so that's an entry jared k you had two that's an entry nested just one nick just one and patrick had 14 so that's like seven and robber with two and then tyler just one so robyn so one and 12th shot two and 12th shot to get some money back so there's that roll it we got a two and a three five times good luck one two three four five five times boom boom five jared and patrick congratulations you guys just won 250 dollars each oh he caught it it's over fillies upset the cardinals all right so two and a three five times congratulations guys so i'll send you guys 250 dollars each and that completes our mixture there guys appreciate it jasmiescasebridge.com


Alright, hopefully everybody's in the right place. So where's the fire? This is not real fire, fire, but fire drills that we go through. So we'll talk a bit about how to deal with disasters when you have websites. My name is Kristin and I've been doing Drupal for a long time since 2004 and other projects, in Java before that, in Pearl and CGI before that. So I've been around for a while. Some information here if you want to get ahold of me. So I'm going to turn the tables here for a minute and see who's in the house. Who here considers themselves a newbie? Maybe just been doing Drupal stuff for the last, you know, year or so. So we, oh, great. Awesome, I'm glad you're here. So we got a few of those.  Veteran been doing this for a long, long, long time. Wow, a lot of you, great. So maybe you can throw in some of your own tips and tricks as well. Who's more on the site building side, more on the clicking and that kind of thing? Not a lot though, okay. Project management, you have to talk to the client, okay, a few of you. Theeming, any Theemers in the house? Little, a few, a little bit. More on the development side, doing lots of development back in. A lot more of, okay, so that's probably the right audience. Who does everything? Oh, wow, okay, that is definitely the right audience. Okay, cool. All right, so what are some website disasters that might happen? And I'm going to turn the tables and I'll repeat the answer because, you know, audio recording can't hear everybody else, but just throw out some things. What can go wrong? White screen, you go to the site and there's nothing there. Okay, white screen of death, anything else? Just throw out some things. 504. 504, so that's a response code saying, you know, something's gone wrong, some network connection or whatever, sorry. Oh, PDO exception, oh yeah, I love those, those are awesome. All right, you get hacked, right? Okay, so there's lots of things that can happen. We'll talk about some of those. So it might be hard down, right? Maybe the site's just really slow. Maybe some files got deleted and you don't know why, or some code got deleted and you don't know why. Maybe the database got deleted, that would be pretty bad. Maybe just some of the infrastructure's not working, some emails aren't working or some feature, some third party things are going on. So there's a lot of things that can happen. And so when we're talking about the kind of disasters and fires that we're fighting, it's not always just the site's hard down. There might be a whole bunch of things that are going on. So now, what are some causes of these things? Again, I'm gonna turn the tables and see if anyone has any answers for that to throw out some things, right? Permissions issues, so file permissions. Maybe people can't see the files because someone messed up the file permissions. Any other ideas? Sorry? Traffic spike. Traffic spike, yes, exactly. All of a sudden you've been red-edited or slash dotted. I don't know if they're so popular anymore, but back in the day. Active development on live. Ooh, don't do that, yeah, exactly. Someone maybe fat fingered something on there. Yeah, that wasn't a good thing. Anything else? Varnish trouble? Varnish, okay, who's got some cash, weird caching thing going on. Anyone wanna throw anything else out? Committing code without testing it, yeah? Not so good. All right, so we've got some good things here. So we talked about some of these things. We had a bump in traffic. That could be good traffic. Yay, we're in the New York Times. That could be not so good traffic. We're getting some hackers trying to take down the site. Maybe there's CDN problems. Maybe we're using Cloudflare or Fastly and there's some problem with them. Maybe there's actually hosting infrastructure problem, something with the routers or the database servers or who knows what, all sorts of stuff. Third party services that we're using in order to support the site. Maybe we don't handle those gracefully when they're not available and so we're seeing problems that maybe we shouldn't see. The application itself. Maybe we committed code that we shouldn't have committed because we did forgot to test it. Maybe we made this big, huge cron job and it's running every 15 minutes and it's just hanging the site. So there's all sorts of things that can happen there.  We did something online. We shouldn't have, we did something with permissions. We shouldn't have, we deleted files and we shouldn't have so many things that could happen and we just have to be aware that, and it's okay, people make mistakes. It's not time to be pointing fingers.  So today we'll talk a bit about how do we handle these things. We'll talk a bit about planning, monitoring, diagnostics, support, recovery and prevention. Prevention is key.   So this part is hard but hopefully if we put enough processes in place and distribute enough knowledge to the team so that when only fires that are really, really fires get to you and it's not some false alarms that'll help with this. So that goes into planning. So for disaster planning we wanna document some sort of process that works for us so that we can protect our business infrastructure and make sure that we're handling things best that we can during a disaster. And the most important thing here is you want to find a process that works for you and your team and your client if you have a client or your organization or whatever. This is not a one size fits all thing but I'll give you an example of a process. Parts of a process that might work. So and this would be something that you would document and make available like on an intranet, you know if you use Confluence or if you have an internal intranet or whatever a Google doc it doesn't really matter as long as it's made available to the team so that the client or whoever owns that site can see this as well as the internal developer team as well. So one of the things they might do is go check some other websites to make sure it's really the site in question. So I'm like oh example.com is down and I'm contacting the developer team and going oh emergency and it's like oh well if I go to Google it's down too. I guess maybe that's my own site or my own hosting or my own infrastructure problem. So make sure it's really a problem for the site itself. Then have a list of status pages that we're gonna go out and take a look at and make sure. So this is something you could actually give to the non-technical people. You can say oh go check these places and see if maybe there's something that's outside of our control that has a problem. There's a thing called a trace route. We'll go over that in a bit but they could run a trace route. Then you could set up some sort of email alias that emails the team and say okay urgent we've got a problem and describe that. Another good thing is to have a calendar especially around the holidays or times around triple con when things, a lot of people won't be available so that people know oh when it's that time this is the order of people I'm going to be contacting. And then as far as how you contact people that's usually personal preference as long as it's documented. Personally if I get a text I don't get that many. I know that oh something funny is going on. So that's actually a good way if it's an emergency. I get lots of emails so that's not necessarily the best way if it's an emergency. Call maybe they should call me or whatever. And then if you have a support system internal ticketing system which you should if you're doing a project then opening a ticket and if there needs to be a follow through. If it's not a short term thing. So you need to make sure that you're documenting all this and putting it someplace where everyone has access and it all makes sense to them. You need to also make sure that your team knows how to do what they need to do in the event of emergency. So you need documentation that's more focused on your dev team. Make sure that they can access all the things that they need to access. That they have access to any diagnostic tools that you have available. That they can open support tickets because sometimes you'll have accounts where it's really the count has been created by the client or a certain organization. There's one login and sometimes there's tricky things if you're logging in is that but you're a different person and the support team doesn't want to deal with you and things like that. So make sure that they're able to do what they need to do to be successful. So if they need to deploy new code in an emergency situation, they need to know how to do that. For example, in Pantheon, there's a special hotfix process. If you already have sort of code that's ready in the kind of dev master environment that you've been working on stuff and all of a sudden there's a hotfix. There's a way of kind of circumventing master in order to get the hotfix out while not disturbing your development workflow. You need to be able to access your backups, make sure you have backups, but access your backups, how they recover and so forth. So all of these things need to be well documented and easily accessible to the team and review it with them, make sure they understand what's going on. Okay, we'll talk a bit about monitoring. So for monitoring, we want to be able to verify that the site is working as expected. And there's lots of level of monitoring you could do. You could go from super simple to more complex. So here are some popular tools for monitoring and I'm personally have the most experience with Pingdom and New Relic. There are lots of tools available. Some of these tools have free levels. So if you need a tool but your budget constrained and you just want some basic monitoring in place, then you still have options and you can look at the different ones. I don't remember all of the ones that have the free ones but quite a few of them do. So this particular example is Pingdom and in Pingdom you can set up what are called checks and the check is basically going to go and hit your site or ping your site for those who are a little more on the developer side which a lot of you were. So it's going to go and ping your site and try to find out if the page is coming back. So this is a very, very basic monitoring tool. I just want to go is in this case hook42.com that's our home page. Is it okay? Is it coming back with a status 200 or is it coming back with a 404 or not a 404 probably but a 504 what we were talking earlier. So there's some network problem or is it super, super slow and it's coming back. So you can configure all these checks and you can have fancier checks but the simplest one is basically just ping a page and then you can look at some of the reports that gives you and track things like uptime over the last three months or six months or that kind of thing and get a sense of the health of your site which is great. You could also get alerts which are good and bad. I do set up all my sites so that they send me alerts which is really annoying when you're at DrupalCon and you're trying to enjoy yourself and then you get alerts and you're like what's going on? I don't want to fire right now. And then these are configurable. You can set any number of people to get them. You can get them your alert by email or by text or various things. So but I highly recommend that you do that so that it's in your face. You're not gonna, so all of these things are very, it's very important. Any kind of alert, any kind of monitoring stuff you should really try to have things send you things when things are wrong because are you really gonna go to remember to go and log in there every day and make sure things are right? Of course, if the site's down someone's gonna probably tell you if you didn't already know. Okay, so there's some monitoring tools or also some diagnostic tools. So in terms of diagnostics we want tools that allow us to look at the data, see what's going on, try to evaluate our software. And here are some options. Trace routes, which I'll go into more detail. Status pages, which probably are pretty self-evident. The logs, and we'll go into different kinds of logs. Application performance management software which is an awesome tool. We'll go a little bit more in detail on that. And there are Drupal modules we can use as well. So a trace route is basically a way to figure out how much time it takes to go from point A to point B. So you're in DrupalCon and your websites in New York and you can do a trace route to that website and it's gonna give you some idea of how long it's taking to do that round trip time. So here's an example of a bad trace route. So there's a lot of gobbledygook and whatever and it's not super important that you understand all of it but it usually does three different tries and that's why there tends to be three different columns. If you see an asterisk you can usually pretty much ignore that. But what you're looking for are places where it's jumping hugely from one step to the next. So we're seeing in this example that once we get to these in New York City edge area all of a sudden our times have jumped a huge amount and then they're even ever increasing after that. So when you see that kind of stuff you're like, oh, what servers are those? Is that part of our network? Is that our hosting or is that our CDN or what? And you can start pinpointing things. Usually I don't do anything with this information other than provide it to other people. I should have said before I'm not a sysadmin. I'm an architect, a project manager, a developer. I could do system administration, basic stuff. I could do a bunch of it and all that but that's not my goal. So I usually use this as something to provide to somebody else who is in charge of the networking and that kind of thing. So as far as status pages what status pages you're checking really depends on what your site is set up how your site is set up, right?  So there's also, you don't wanna check your hosting status page. Any kind of CDN you're using which I highly recommend using a CDN. There are ones that have a free level so Cloudflare has a free level for CDN. That just helps, that gives an extra layer of caching and also usually a bit of a firewall to try to keep the bad people out. So third party services are gonna have their own status page and so forth. So there's gonna be a lot of different places and should you just keep that in your documentation that you've got, oh, this status page this one, this one, this one. And a lot of them are kinda similar because a lot of them use the same service to generate their status page. In this case this is one from Aquia they had some things going on so it's one of the first things you're gonna wanna go do. Something's going on with the site you're gonna go in and look at all the status pages and if there's an obvious culprit, great.  Someone else is having the problem and then you will monitor that. Just because the status page says things are good does not mean it's not them. So that's the other and very important thing to keep in mind. So I'll have a problem that's hosting related and I won't name names but I'll go on the status page I'm like, I swear it's them, there's nothing there, I swear it's them and then I'll open a support ticket and sure enough it's them but the status page doesn't change. So don't completely trust it. I mean definitely if it's there it's probably that but if it's not there it still might be that. The other thing you're gonna wanna look at are the logs and where the logs live depend on the hosting. So I just gave two examples here in Aquea, they have one set of logs that look a bit like that because they're on, I believe they're still on Apache and then Pantheon is on Nginx so it looks a little bit different. So you just need to document, okay where do I get to the logs? And then usually if you look at the logs, you tail the end of it, it's pretty obvious that something really bad is happening because you'll see it there. So you can also check the Drupal logs, not always actually if the site's super hard down like you can't even get in there. So you would wanna do the server logs in that case but sometimes you can't get in and see the Drupal logs, see what's going on. The first one noted is the database logging module, that's a core module and you can turn that on. There's some performance things with that so if there's any way to not use that and use something else, is this log or something different? It's actually better in terms of performance but sometimes your hosting environment doesn't let you do that in an easy way and so you're more constrained. So that's core option and there's lots of other ways that you can log and so it really depends on your site and how you've set it up but so where you're gonna go and look for those, Drupal logs just depends on how you have set up the site. Now we'll talk a little bit about application performance management. There are a lot of tools again that you can use. I am most familiar with New Relic but there's a lot of different ones and some of them do have a free tier and there are some hosting companies that partner with some of these so that you can actually have some of that as part of your hosting package which is a big value add so keep that in mind if you are shopping for hosting that if they have that availability that's really great. So here's an example from New Relic and so in this case I was looking in the 24 hour range something had gone wacky on the site we had gotten a few errors we were wondering what was going on and then later in the day we were trying to analyze and see what happened and you can see that okay there was some sort of spike of stuff going on and you could see the throughput oh okay so there was a lot more processing happening during that time and then you can start looking at other things to try to figure out what was happening there. I believe in this case it was someone had decided to go run some process some sort of admin script right in the middle of the day it was using too much resources and that was not a good idea so then it's education like yeah okay if we really need to run that maybe we run it overnight or some other time. So you can look at you know you can look at the PHP times you can look at the database you can actually analyze how long things take throughput and start looking at you know slow queries and things like that super helpful. So before I get to some of the Drupal modules that can help diagnose this I'm gonna open it back up to keep everybody awake here so any modules that you like to use to help diagnose problems on your site. Okay great yeah so one technique it's not Drupal modules specifically but a technique is to drill down more into New Relic to look at specific views. So actually New Relic has Drupal support it understands some Drupal things so you can actually look at specific views certain modules that are heavier and that is really great. The other thing is you are able to write a little bit of custom code if you're a developer and a lot of you were or are so you can write a little bit of custom code and add some extra stuff to New Relic to track which is really nice so things that we've added are for example the user ID in case they're logged in because we have like a lot of admin pages and a lot of heavy pages that do a lot of crunching and those are supposed to only be used at certain times or whatever and so we'll monitor that and we'll say oh so and so was hitting this page and well maybe we need to make that page better for them because now they're hitting it a lot more than we thought they were going to or maybe we need to tell them you know what that's some reporting stuff why don't you go over and do that on the test side or another environment because you're just trying to grab some analytics and you don't really need the real time site in order to do that we're gonna do it over in this other place. So there are ways that you can so we've added like the user's role and the user ID and a few other things to enhance that experience. Any Drupal modules that people like to use for diagnosing? All right I'll go over some. So the blame module is one that we've used before and blame is interesting what it does is it will track forms on your site and changes that people are making to the forms. So if you don't want someone to change a view on the live site which they shouldn't be doing you could track that if you wanted. Another way to track that would be to use the features module which is what you should really do for configuration in order to make sure that people aren't doing things on live. So the blame module you can set it up per form and say I only wanna track these particular forms maybe the permissions page might be a great form to check to make sure that people aren't missing. Again you could put the permissions and features so you could do that as well. The hacked module so hacked is a module that lets you check to see if your code has been modified compared to what is on Drupal.org. So you'll check core and it'll also check contrib modules. So if you need to change one of those things if you need to change code in core contrib because there's some patch that you need to apply you should be tracking that keeping that somewhere. Safe usually we keep a special directory where we have patches, we have a readme file and we keep it all really tidy so we know that we did that. You should never change that code without tracking it and be very careful about making changes to those. I mean ideally you're only grabbing patches that are from Drupal.org. Sometimes we will make our own custom patches because there's some weird behavior we can't really analyze it. We'll add a little bit of watchdog logging in certain places like if a certain condition happens we'll add a little thing so we'll add a three line patch we'll put in our patches, put it in the readme and so that we can track it. But the hack module would see oh, there's some code here that's not part of core, not part of this contrib module. So that's a good one. The security review module we'll check to look for security problems. You should also be checking your status page on the site as well in the Drupal, the reports to see if there are any security updates. So I really like this one, logging in alerts. I use the email log part, so there's some sub modules in this project. This is a contrib module and I get emailed every error. So Drupal's funny, there's emergency urgent critical, I don't remember, critical error warning. So there's like these top four which, I mean what's the difference between critical and error and whatever but I mean so there's different levels. I just get emailed all of the ones that are basically error and above and so it's really in my face which is good and bad. It's like whoa, why am I getting all these errors? But it makes you, it kind of forces you to go in and deal with them.  So if they're getting emailed to you it's really in your face. So I personally like that. Okay so that was a bit about diagnostics and now we'll talk a little bit about support. So tech support, kind of a dirty word I think but basically you want to have assistance to deal with your software or your technical product. And inevitably you're gonna be opening support tickets. I mean almost always, you know at least every few months you're gonna be opening some sort of support ticket. So the important thing here, these are support tickets for external vendors.  First try to make sure it's not you, right? So was it really something else? And just do your due diligence there, look at New Relic, or was it some crazy query I was running, was so and so running this big cron job, any of that kind of stuff. Try to make sure it's not something application specific first before you go and open that ticket. And then you need to know where to open the tickets and this isn't always obvious. Especially if you have a CDN and hosting, it's not necessarily obvious where you open the ticket because often they'll point the blame at each other, oh yeah that's the CDN problem, oh no that's the hosting problem. So usually what I'll do is I'll open the hosting ticket first and occasionally if it's bad enough I'll open it both at the same time because I'm like oh this is hard down, I don't see any problem with our stuff and I'll just open both and be like okay, someone's gonna go and look at this as fast as possible so that tends to be a good tactic. And some tech support will have two levels of tickets. They'll have just the regular ticket, I need some help, I have a question and then oh this is really bad, this is an emergency. Not all tech support does but some of them do so just keep that in mind when you're opening the ticket that you know which kind of ticket to open. I have a hard, I'm usually very polite, I am typically a very polite person but sometimes in the heat of the moment my kids will tell you that I'm not necessarily the most polite person so sometimes you have to take a deep breath and you're like everything's melting and then you're kind of like fix it, fix it. So try to be polite with them and they're more likely to help you and to also thank them for the help that they do provide. So it's really important just like if you're opening an issue on Drupal.org it's not like oh this is broken, it doesn't work. What, that didn't help me, right? So you need to give them as much information as you can. Give them the trace routes, explain where I went to the homepage, I got this error or it's the site sluggish, it takes this long, whatever you can, that's super helpful for them. Maybe you would only go to one part of the site and you have problems or whatever. If you have access to New Relic or something similar and the hosting company also has access to that I will actually link out to certain things and go this looks weird and this is not us, this looks like a network error so please go and take a look at this. So common sense but it's super, makes just things go so much faster. All right, now we'll talk a bit about recovery because you're gonna have a problem at some point. So recovery we need to enable our site to work again after some sort of disaster and how do you recover? Unfortunately it depends, right? Because we listed that big laundry list of all sorts of things that could go wrong and we didn't even list everything because there's so many things that could go wrong. We had this weird case where we have this mail system and it's kind of like Facebook where you can email people back and forth through your mail client but then it's routed through Facebook so it shows up or whatever or like eBay does that and the email just stopped. It was broken, everything was clogged up and we're like what's going on? It turned out to be an emoji, an emoji broke the email system and it was because Drupal didn't support was a four byte emoji, got a PDO exception which was one of the something that someone mentioned earlier which was interesting. So the email came inbound from someone's mail client. They put in this cute little smiley and it got into Drupal. Unfortunately at the time we weren't handling that exception properly so it tried to write to the database, the database blew up and then it went back and it talked back to the mail server and says something's wrong. Well then it kept trying and trying and it just like back to you know it just like clogged the whole thing and you know it took us a little time to figure out what's going on, what's going on here? So do you expect an emoji to break your website? No, not really, right? And we didn't even realize that Drupal at the time was not supporting, it actually still doesn't support it, something to keep in mind. I think they have patched up for Drupal 8, I believe but for Drupal 7 there's still some workarounds for that. So the upshot is it depends. If it's hackers and you've identified based on oh there's been a traffic spike, oh it's like the same IP, keeps hitting the site, you can tell that then you know an obvious thing, you could block IPs, unfortunately you know they might change the IP so yes you could do some short term things for this one, I highly recommend a CDN, Cloudflare is great and maybe others like Fastly, I don't know as much about them but they are also an application firewall where they will try to keep out those bad folks so they'll monitor things much better than we can and then they can just do the job. Sometimes you'll still get some leak through, sometimes it's just like one person and it's not even, it's not a software, it's just one person trying to be really annoying and try to get in and then you can block those manually. Well if it's hosting or the CDN or some other thing, there's not really much you could do other than open the support tickets so we go through the process and monitor those and hopefully they'll fix it as fast as possible. Well if you screwed up the code or the configuration or that kind of thing then ideally you can update the code or update the configuration, get back to where you were without too much difficulty and then you might have to go through this hot fix process depending on where the rest of your code is in your workflow and that's why you need to make sure that's well documented. Sometimes things are just foobar in the original definition and I won't say exactly but basically premessed up. So then at that point there's not much else you can do, you have to recover from your backups. Knock, wood, this is not, I don't think that's wood but I haven't had to do this on a major site, I mean I've done it on little sites, it was not a big deal, we had backups and stuff, I had to do it on a major site but if you don't have the backups then that's kind of a problem and I was in the situation where I'd given someone this task of moving my old site, kristin.org which I haven't touched in years unfortunately but I'm like, oh yeah, why don't you just move this from this hosting company to this other hosting company and because we were trying to clean up and I figure it was a good learning experience, go ahead and move this from that and then I get this chat back up of that and I'm like, well why, well I deleted all the code, I'm like, all righty then, fortunately I did have that, it was a site that I hadn't touched for a long time but I had some backup squirreled away somewhere and it was fine but I was like, oh yeah, maybe I should make daily backups of that or monthly, yearly, I don't know something. So you need the backups in order to recover, super important and people need to have access to those backups and know how to restore them.  So ideally you wanna try to prevent some things, that would be good, you're not gonna be able to prevent the hosting having problems or the CDM having problems or some third party having problems but you can try to prevent some of these disasters. So some things, actually I just mentioned it, so managed hosting, that is super important if you can afford it and unfortunately we get some non-profits that work with us sometimes and they just have no money, they just have no money and the thing is it's actually more expensive to have the developers going in and doing your system administration and to go in and dealing with those backups that didn't happen or trying to recover or move code around and it's just, it costs money to pay people to do this stuff so in the end it's really cheaper to do managed hosting, it's just that people don't see it that way. So I'm a big, big fan of managed hosting. Make sure your backups are working. Use a code repository, if you're using managed hosting you'll be using a code repository because it's all built in but if you're gonna roll your own then you still need to do that. You know, most people use get these days but whatever, I mean just use something so that you can go and see the history of people checking stuff in and make sure that something bad didn't happen. You're gonna wanna track and tag releases so even if it's something small you're gonna wanna make sure that you tag the code and say okay, here's this release, this is rolling out. If it's a managed hosting that's usually done for you as you push stuff along but if you're not then you're gonna tag it yourself and another thing, if you are using New Relic or some tool like that, you can also notify that tool saying oh, I've just done a deployment and then you'll get a little line in New Relic and a little log and it'll say okay, I've just deployed this. This is great because then you can see, oh wait, pages have gotten slower in the last week or two and like oh that's right, we pushed out this one little fix two weeks ago or whatever and oh yeah, the timing aligns. I bet you there was something that happened in there and then you can go back and look at your tag and say oh well what did we add and narrow things down. Very important to have some sort of workflow for your development, dev test live, ideally, sometimes people don't have that but at least a dev in a live and this is not local to live, ideally, right, you have an other environment, sides live that the client or the organization, someone who is investing that site can go in and do QA and that's before you're pushing it out. Test and backup before you do live. And then for, personally, I like to look at New Relic usually weekly just to kinda get my pulse on like oh is anything interesting, cause I have alerts but it's not like I can set up alert for any kind of possible weird thing. So I'll just click around and look for any kind of spikes and kinda drill down and see if there's anything strange going on and that's super helpful. And then similarly, and this goes along with either Pingdom or New Relic or something like along those lines is just looking at your load times in general to see if there's any kind of, maybe you're not noticing it cause you're looking too closely but if you were to expand out and look over a month, two months, three months, six months, are you seeing that your trend of your speed is going up then you're like oh maybe we just keep adding more features adding more features and you're just starting to, your site's getting a little unmanageable. So you could take that back to whoever's in charge and say look, we just were adding, we need to spend some time doing some performance enhancements, maybe some of these features you don't need anymore and that kind of thing. Some other things you can do, configure caching, out of the box in triple seven, caching is not enabled, in triple eight it is out of the box enabled. So you'll have to go in if you're using triple seven and manually do that. And then there's other things like varnish and the CDN or whatever you can use as well.  And so for that, you just need to be careful because they can be very heavy and if you have a lot of cron code crunching stuff while other people are on the site, you know you could have an impact. So just monitor those and you can spread them out. There's something called Elysia cron which can help you so that you can spread it out throughout the day or put it maybe in during slow times during the day or night for your site. So this is hard. This is a hard one. I have found that I can't seem to get my modules down to like under 150 modules once I include like feature modules and core modules and all that. We build complex sites and it's this constant struggle. Oh, we want this feature. Oh, well there's a module that does that of course. So do you really want that feature? Are you sure you really, really want that feature? Okay, well I guess we'll add that feature. And then but the thing about that is you need to be constantly checking in and saying, well, do we still need that, you know, six months from now are we still using that feature or can I actually get rid of it now? And be careful how you uninstall modules. So update things regularly, make sure you're on top of definitely security patches but even your just regular updates, make sure you're keeping on top of those. And you kind of think, well, it's just a regular update. Things are working. I don't need to worry about it but what happens is sometimes there'll be another update, another update. If you wait too long, sometimes really wacky things will happen and it just doesn't update seamlessly because there's this interaction between different modules, right? And so if you waited a year to update a module and there's been like 10 releases in between and the same for some other module there may have been some interplay that you're not aware of and things can get weird. So proactively fixing errors in the logs. So if you're getting those emails saying fix me, fix me, fix me, you know, you're more inclined to try to fix it because it gets rather annoying to have those emails. Something that we've done is try to auto block IP addresses and we wrote a little bit of code. We're considering maybe we'll try to generalize it and have it as a contrib module but the idea is if someone keeps hitting the 404, getting a 404 a lot or a 403 a lot, it's questionable, like what are they doing? So we wrote a little bit of code that it keeps a count of those and after a certain amount of time it just keeps the information in the database and after a certain number of times of those it will actually just auto block them. Sends us an email so we can go and take a look. Typically it will check the IP address and it'll be like oh it's something from some random country that shouldn't be looking at the site anyway so it's like oh yeah, that looks fine. But we'll also log the, if they're logged in actually we let it go because we have certain users that it's fine but then we can say oh why are you, at least we can contact them and see what's going on. So that's been pretty helpful. Peer review code, if you have a peer, ideally. Sometimes you have to put a duck on the desk and talk to the duck because, or sometimes I'll talk, so if it's late at night and my husband's around, he codes but he's a physicist but I'll actually walk through the problem with him even though he doesn't necessarily know all the stuff I'm talking about and just verbalizing that can a lot of times be a really great tool to try to work through a problem and sometimes he'll just be like well what about, blah, I'm like oh, okay, and go and look and he's like oh yeah, that's great. So that's not just a code but ideas brainstorming, trying to figure out why are you having issues and that kind of stuff. And the last big one I have is limiting access. So this is a big one, we've had rescue sites where we got the code and everyone has full administration rights, people that don't know anything about Drupal, they could edit views, they can do permissions, they could add users, they have a clue and they just got everything and then you're gonna get a lot of problems. So that one's super important, always make sure you don't have to go crazy with roles, sometimes people go a little overboard but ideally the administrator role should be for Drupal developers, period. People really need to understand Drupal. And even then, even if you have a lot of Drupal developers maybe you can pair that down and we haven't usually had to do that but that's a possibility. Then you might have a content manager or content editor role and they have certain access and maybe there's someone who can add, so maybe there's an admin on their side but they can add a user or they can do certain things that are more limited, so that one's super helpful. So on that note, I'm gonna open it up to questions, there's a microphone here or if you throw out a question I'll repeat it. I know this is the last slot of last day so people are like yeah, I was at Pantheon all night and I'm totally toasted but if you have any questions we'll open it up, yes. Yeah that's actually a great idea I hadn't thought about specifically saying oh here's something I've been working on code-wise and then just showing it to the team there or the people there and yeah. So yeah use your local user groups as best you can if you don't have one, start one. You just need two people right, meet at a cafe if need be or whatever but yeah that's great. The location-based one is also great, fortunately on our team we usually have people from around the world so we'll be like hey is this site down for anyone else? Oh yeah it's down for me, oh yeah down for me, okay. Right then let's get on it. Sometimes it will be location-based so Cloudflare we had some problems a couple years ago where continually they seem to have an issue just in the San Jose area which was kind of annoying and so we were having problems and actually the company was based in San Jose or Mountain View close by and so people, all the rest of the world were hunky-dory and having good time and the kind of core folks couldn't use the site. So that's a huge, huge thing. Any other questions? Yeah sure, the APM? Yeah let me jump out of that faster. APM, oh and it's so small. So and these slides we'll put them up on the session page in a little bit. Yeah I should throw that one in there. Save your bacon, yeah in fact that's a very good point so I should add that to the slides. The backup and migrate module, someone remind me to add that to the slides after, before I post them. Backup and migrate is great and it's funny because there was a client recently and they're like oh the site's down, having all these problems, I took a look it was triple six site and I was like ooh sorry, looks like you've been hacked. Poked around, I was like oh this doesn't look good and they didn't have a lot of money and they were like okay and I said well I mean you could backup from backups. I said where are your backups? This was not a site that we had, we did another site for them and this was kind of some other side thing of theirs. They're like oh backups and they went and checked with the hosting company which was I don't even know what hosting, some random hosting company and they're like oh the hosting company didn't set up backups and I'm like okay but then I was like oh, I went and looked in the files directory and sure enough backup and migrate had been set up so someone did the right thing but they didn't even realize that they had used that and they had backups and I was like oh look you've got backups, awesome and they're like yay but then they decided it was gonna be too much money to sink into this thing too because they weren't gonna update all the module, they were just woefully out, it was triple six out of date and they just said okay, we just they just shelled the whole thing at that point but they did have backups. Yeah that is a really good point, yeah so just because you weren't at the mic but make sure that the database backups are actually valid that you could actually restore the site from those and it's my business partner. Hi, yeah extending on that topic, you'll document emergency recovery procedures and you don't actually do them all the time and also so we actually go through a refresher and especially for some of our big clients it's like wow we haven't touched that feature just because it keeps running but to actually recover it or handle it in an emergency situation and take some time so we actually do refresh the team and like especially over the holidays as we kind of trim down our team for the holidays we do review these things and it does require practice and then sometimes infrastructure changes and you're like what's going on? Like ah. So one way to check those would be just to grab it, install on your local, click around, make sure it does seem right or if you have any automated tests which would be amazing then you can run those right so the service that's free is NodeSquirrel and somebody took that over, was it Pantheon? Okay so Pantheon bought them out so NodeSquirrel free service it leverages the backup in my great module in order to do that so there's really absolutely no excuse not to have backups no matter what your hosting is you can set it up and it's free and good. Any other questions or tools, tricks? Everyone's up? Yeah so I've used, actually I do it for load time but there's the web page test.org which that's really meant for load time but you can use it just by checking from different locations and then well you'll know it's not loading it's pretty obvious but yeah, sure would other ones. Yeah and so and a lot of the monitoring tools will let you hit from different places Pingdom you can check certain, do certain locations, New Relic you can as well but New Relic does have a monitoring piece that you can use there's a free part where you can check some different locations and have it hit it as well I imagine that these other ones do but yeah that's a good one especially if you have an international audience then it would make sense to at least ping it from a few different spots. Okay so any other tips or questions or anything? Yeah okay so that's awesome to know so nonprofits you can get New Relic for free and that's New Relic Pro? Okay so the different things about New Relic there's different layers, different levels that you can do and there's a free one which you only get like a day of data or something which is good, I mean if you're having a problem and you go looking right now it's good but we use New Relic Pro which is a longer term thing where you get data for a long time and it was just mentioned that if you're a non-profit then you have access to that for free which is amazing. All right so I think we're pretty much done here if you're around tomorrow please come to the sprints if you never so sprint is we're gonna get together we're gonna try to make Drupal better you don't have to be a coder to do that you can anyone can help out so that's really good and if you could evaluate the talk you just go to the session page and there's a link there to go ahead and do that and that's it. Thank you for your time. It went really well. The state of Drupal would choose five. Hi. Hi. Thanks. What do you know what the answer's gonna be? 42 maybe? Yeah. Sorry, I'm sad to use the other thing. No, no, no. Weird. Yeah. Yeah.