We have got some dilemmas on our hands tonight in Daily Fantasy Baseball because there are a lot of high salaried guys I want to use which is great. We love having options We can pivot without being dumb stuff like that But it also means we have to stay under the salary cap and that might not be super easy for tonight So we're gonna break down which of those studs I want to prioritize how to jam in all those studs by identifying some good value plays and getting you ready For a Tuesday night slate in Daily Fantasy Baseball welcome on into the solo shot That's right here on the fan dual podcast network and number fire calm My name is Jim Saunders I am a senior writer and analyst for a number fire here to break down Tuesday night's 12 game main slate What locks up for 7 0 5 p.m. Eastern for today if you look at the weather for this slate pretty much every game is chilly The only games on the slate with temperatures above 70 degrees are in Arlington for the Rangers and Diamondbacks and Houston For the Astros and Giants So what I would say to you is upgrade bats in that game for those two games Arlington and Houston And then keep everyone else pretty neutral, which means also not bumping down Oakland Like we typically would because their temperature is in line with most of others not bumping down other spots Or maybe colder because things pretty level as far as temperature outside of Arlington and Houston And fortunately one of our top pitchers tonight is in Arlington for one of those games So we'll break that down let you know what to do But overall pretty neutral slate with regards to weather We'll dive in talk about that pitcher talk about the studs to prioritize and more in just one second The first day reminder to make sure you're subscribed to the number fire Daily Fantasy podcast feed wherever You get your podcast later on today branding a duel and I breaking down the Wells Fargo championship may PGA DFS perspective letting you know our top guys in the field for an elevated field for this week Search for the number fire Daily Fantasy podcast feed wherever you get your podcast hit subscribe And if you like what you hear leave us a five-star rating as well The biggest horse race of the year is here and there's no better time to get in on the action on Fandall racing because right now all customers can get a no-sweat derby bet up to $20 That means you'll get up to $20 back if your win bet doesn't win The Fandall racing app is super easy to use safe and secure and when you win you get paid fast So don't miss out the derby is coming up this Saturday Just visit racing that fandall calm for your chance to get a no-sweat derby bet up to $20 on fandall racing That's racing that fandall calm age and residency Restrictions apply offer valid on first derby win wager refund issued is non withdrawal racing site credit that expires on June 12th 2023 Restrictions apply see terms and racing that fandall calm gambling problem call 1 800 gambler Pitching preview for this Tuesday main slate Zach Gallin comes in with the highest salary He is at $11,800 Garakola's attempt 11-5 Joe Ryan against the White Sox 11,000 Hunter Brown comes in at 10-2 Anthony D. Slifani pitching while he's at 10,000 against Hunter Brown Freddie Peralta at Coorsfield mind you is 99 Graham Ashcraft 98 Julio Arias is 94 Yusei Kikuchi comes into 92 Patrick Sandoval 9000 flats with Tyler Wells Matt Strom tanner baby tanner hulk and John Gray the others at $8,000 or higher Now as you can hear some really good pictures today between gallin Cole ryan not to mention all the others and all those guys have high salaries specifically those three are at $11,000 or higher But even with three good options I think that Zach Gallin needs to be our top guy on the main slate for tonight We haven't gotten to talk much gallin so far this year because he hasn't been on weekday main slate so Haven't gotten to dig in too much But he is here today and woo buddy when you dig in I think we can realize it's time to go hard at Zach Gallin for tonight gallin has been unreal so far this year and honestly I'm not really sure What is unlocked this new level for gallin he is throwing fewer fastballs He's down to 41 from 48 which is good and his change up usage has increased a bit that pitch is good So Maybe that's all of it. I'm honestly not sure But whatever it is for gallin It's working because in six starts. He has a 36 strikeout rate. His skill interactive. ERA is 2.46 and His swinging strike rate is 13.9 up from 10.1 last year He's doing that while not walking anybody the contact profile good, but not great You know and I think that that is fine when you're doing everything else as well as he is now granted Gallin has done this against pretty low levels of competition, but honestly for today. It's not bad either Facing off at the rangers. They've been pretty good so far this year But if you lump in last year's data versus righties 96 wrc plus in the active roster and they will strike out 24 strikeout rate in that time too I have gallin projected first 8.6 strikeouts, which is a very big number But I think it's high for a reason so I'm fine Ranking gallin first for tonight and feeling pretty good about that based on the matchup based on what he's been doing All that combined zack gallin will be my number one pitcher for tonight Now between ryan and coal we do have two really good contenders for the number two spot But gary coal gets a low strikeout guardians team And I think that's enough to give ryan the edge here ryan's facing the white sox who has struggled so far this year even when you include last year They have a 98 wrc plus against righties with a 142 iso and a low walk rate They're not a high strikeout team But their strikeout rate in the sample is still five percentage points higher than what the guardians will be giving gary coal today And ryan is pitching really well He has a splitter now, which he did not have previously in five starts with that pitch ryan has a 3.18 skill interactive ERA his strikeout rate is 29 percent and he's not walking anybody Now ryan is letting apart contact, but it matters less when they don't make contact as often This is the first time facing the white sox this year. So despite it being a inter division matchup No familiarity issues here I have ryan projected for 7.4 strikeouts coal Given the matchup is at 6.9 strikeouts and that's enough for me to give ryan the edge and ryan also Lower souring than coal. I think that's enough to make him a good play for today in our number two studs So among the studs among the really good options I will go with gallon one joe ryan two followed by gary coal A lot of times here on the show I can feel like a buzzkill when it comes to talking about top prospects coming up because it's like You know, it's a tough transition going from the miners the big leagues A lot of times the underlying data in the miners might not be great So a lot of times the prospects go up the staffing stacking section today I think i'm going to give a young guy a try and that guy is tanner bayby for the guardians facing gary coal in that game We just discussed. I think that bayby is actually the top value play for today at $8400 as mentioned bayby's facing the yankees and When there's no air and judge on this roster You can target pitchers facing them the yankees active roster has a 77 wrc plus against righties this year It's been rough not walking a lot and not drawn a lot of walks their league average strikeout rates And bayby looked good in his debut last week He went five and two-thirds innings. He led up one run eight strikeouts No walks he had a 12.1 swing and strike rate and he kept hard contact and check He checked every single box that you want from a guy making his debut now That came against the rockies, which is a very easy matchup But the yankees might be that too when you take air and judge out of the equation In that first start bayby went 91 pitches his high in the miners was 81 So I think putting him at 90 or so against day is probably pretty fair I've got bayby projected for 5.1 strikeouts. That's nowhere near gallon ryan not even close to coal either, but So I'd rather spend up But the studs discussion we were having about how there are a lot of high salary guys I want to use That's true at hit or two So if you want to use my trout you want to stack the brewers at course fields Maybe a good bayby look not totally opposed to doing that given how many high salary batters there are So to me he's at least an option despite how many good studs there are you can get your value at pitchers opposed to hitter I don't mind that it's not ever further out But I think he will likely be in my player pool for today So zack gallon joe ryan tanner bayby the top three pitchers for me for tonight Mentioned that the brewers are at course field Let's dive in now to the stacks not as into the rockies facing freddy peralta But the brewers to me very stackable facing ryan feltoner and feltoner may be better than perception I still think we should stack against him But do want to give him credit for what he's done so far this year feltoner last year had a 5.83 era Doesn't seem like he is very happy with that because he's been throwing a lot more change ups this year And it does seem to be helping quite a bit the hard hit rate allowed is way down for feltoner his strikeout rate is up as well And it's been a good thing I'm not sure if it's enough to make us not stack against in a course, but it's been very good ERA 4.6 avian feltoner skill interactive era 4.73 Expected era 4.12 and when you stick numbers like that at course field I think we can stack against it. That's especially true When the other offense is decent and the brewers are a 107 wrc plus against righties good amount of power So I like what feltoner is doing But i'm still going to be high on the brewers tonight So with the brewers, I think that the number one stack might not be easy to get to if you're going with gallon is a top pitcher, but You know, I would we can talk about some value plays throughout the rest of the podcast With the brewers whenever i'm stacking them. I always prefer them against a righty with relatively even platoon splits Um, because that lets us be high in willy adamus So I want to use and that's true with feltoner here in his career Righties have a higher slug percentage and iso than lefties against him And that might not stick because it is still a small sample But to me it says We don't need to downgrade righties facing him as much as we would for some other guys So I prefer it this way they can make grades out really well In terms of this brewers team specifically and it makes me feel good about them Fortunets if you got the salary the brewers very much worth it Now for our number two stack We're going to talk about the angels angels facing steven mattz this week and or tonight and mattz last week Faced the giants and we talked about stacking against him there The giants okay against lefties, you know pretty solid the angels are killers And I think with mattz now facing them We should stack the angels here and mattz in his defense was not awful in that game He allowed just two earn runs But that came across four innings He had three walks compared to three strikeouts Nine of 15 balls in play he allowed a hard hit Now for the full season mattz has led up a 49 hard hit rate which leads to a 6.23 e r a His expected e r a is 5.36 and he gets the angels tonight We have a 130 w r c plus against lefties on the current active roster This is the start of last year 207 iso They hit a lot of power and it's not just trout Hitting for power against lefties of tony can too despite it being a lefty Hunter renfros obviously there There are a lot of guys here who can do some damage So if we were stacking the giants against mattz last week in san francisco We should stack against mattz here with the angels and I think we should do so and rank the angels number two behind Just the brewers at course field for tonight Now typically when I'm stacking the angels you're looking for some value plays here I don't get super jazzed to include louise renfro in my angel stacks But and he may not play today, so I might not get to here either But he actually does have some pop against lefties Renfro has a 230 iso against lefties since the start of last year. He has a 38 fly ball rate So again, he might not play there's a chance. He's not in there because he's not an everyday guy But if renfro does wind up playing for the angels, he's $2,600. He fills second base shortstop and outfield I like that a lot So I am desperate for value when he foe gives it to me and does give at least some power against lefties So I do want to go there if he plays today for the angels in this stack Finally for our third stack. Let's talk here about the twins They're facing michael ko peck and last year ko peck out performing his peripherals in a pretty big way Where the gap between his era and his seal interactive era was large This year seems like regression is hitting and I don't think that's fluky And it makes the twins a quality stack here in the third spot across the entirety of last year ko peck had a 3.54 era But his skill interactive era was 4.73 Now if you look at the expected era from baseball savants, it was pretty good too and it largely supported the results he had But he led up a lot of hard contact, which is kind of a risky way to live This year for ko peck, the velocity is up, which you would think would be a good thing But he's still letting up a 58 hard hit rates with a 44 fly ball rate And he hasn't been able to overcome that this time because so far ko peck's era is 7.01 His expected era is 9.78, which is even worse than the results have been Now he's facing the twins and they're still not a prolific offense by any means, but They are at least getting healthier byron buxton finally getting his swing back as well I think it means we can buy into the peripherals on ko peck and stack against him with the twins here Another value play we can turn to tonight is max kepler I talked a couple weeks ago about his increased fly ball rate and That sample is now expanded and it's still sticking kepler against righties this year 43 fly ball rates. It's helped him put up a 241 iso Not a target field for tonight, which is good because it's a tough spot for lefties for power So get him out of that that park put him in chicago. It is colder But again, it's cold pretty much everywhere for tonight So I think that's all adds up to kepler being good play for tonight at $2,700 and being another value We can turn to when trying to get to zack gal and the twins Their salaries have increased a bit but kepler at least still a solid value within this twins lineup for tonight So it's top stacks for today brewers that course field the angels and the twins Things to watch did want to include some more value plays here potentially given that gallant salary is very high We want to get to trout want to get to adams guys like that. So Looking for other values, uh, don't hate me But I think the a's might be in play They're facing brice miller in his debut coming up from double a He is a fly ball pitcher who doesn't get a ton of strikeouts So The a's could be viable. They stink but you know could be in play Ryan nota can it for some power his salary is $2,900 Ramon Lordiano's fresh off the injured list. He's 28 Connor capel and estuary estuary Ruiz will run a bit. So they've got guys with some some upside at least I think they could work not super enthusiastic about the a's but Gotta do what you got to do to get gown in there for tonight The orioles are facing ryan yarbara who's really struggled so far this year Not getting many whiffs a lot of fly balls and that's hurt him in the results category quite a bit The orioles not a good spot for value. They've been too good so far this year to give us value plays But Ramon Arias could be a viable one off $2,600 for him can feel some tough to fill positions So I think that Arias could be a standalone play here in the orioles to make things work Finally you say kukuchi is still lending up a lot of hard contact and fly balls the results have been great so far It could eventually bite him could get some solo run stuff like that. He's facing the red sox tonight Kike Hernandez, Justin Turner could be good value plays. They're not the highest upside guys anymore But they're at least viable against kukuchi as righties lower salaried I think that could work. So check out the a's check out the orioles Check out the red sox is potentially some spots to snag some more value hitters for tonight Let's finish up with the dinger calls for this dinger Tuesday over at fangirl sportsbook The boring one it is the angels against the lefty, which means I could go hyper boring go my trout But I will go a smidge smidge smidge less boring like the most small amount less boring could possibly do And do hunter renfro. I know matt's is not a huge fly ball guy But renfro is provides plenty that himself a hunter renfro plus 350 a fangirl sportsbook Not the best odds to go deep, but you know, it's a boring hormone call. We'll go with that So hunter renfro the boring hormone call for the fun one I am going to go max kepler. I believe in the increased fly ball rate I hate the weather in chicago But again don't have a lot of great options in terms of weather for today Kepler's odds to go deeper plus 330 so actually pretty gross from that perspective So not recommending kepler as a bet but more phone Fun home run call for dfs So we'll go with hunter renfro and max kepler as their home run calls for today on this blessed Dinger Tuesday That is all the time that we have here for today on the solo shop But again, we are back again later on today breaking down This week's pga dfs slate for the wells fargo championship get that by subscribing To the number fire daily fantasy podcast feed wherever you get your podcast If you've got any questions for me. I am on twitter at jim saunas j i m s a n n e s You can also follow the fan dual podcast network at fan dual podcast I want to thank you all for tuning in for today. Good luck to you with your nlb dfs lineups for this Wonderful tuesday night. We'll talk to you once again tomorrow to break down wednesday slate This has been the solo shot right here on the fan dual podcast network


You can build your own Disney Magic Band Scanner with electronics from Adafruit and Circuit Python. This project uses an RFID reader to scan your Disney Magic Bands and animates a strip of Neopixels and plays your favorite sound effects. Powered by the Feather RP2040, this dev board is great for making props with lights and sounds. The RFID Whiz Kit makes it really easy to add RFID capabilities to your DIY projects. All you need to do to have it recognize your Magic Bands is hold it up to the RFID module and press the training button. This project uses Circuit Python to animate Neopixels and plays audio files. The RFID module works like a button press, so whenever it's pressed, the Neopixels animate and randomly plays an audio file from a list. You can train up to 20 different RFID tags so you can add your whole Magic Band collection. To build your own, check out the learn guide at learn.adafruit.com. We hope this inspires you to check out the Whiz Kit and Circuit Python for your next RFID project.


Hello, everybody. Andrew Mayeski here with Dental L. So talking about your portfolio, so I know it can be very overwhelming. There's a lot to organize. There's a lot to think about, right? But hopefully, well, I know that this course will help you because that's what it's all about is just getting things organized. So let me just help you guys kind of think about the right way to write a goal with your activities with your report on learning and then also the changes you have made to your practice. So I'm going to talk about the errors, if you will, that I have seen that just by rewording things can make a big, big difference. And just by simply putting in what you have honestly learned and what you have changed in your practice will make a big, big difference. Because I feel the CEO is very, very fair when it comes to portfolios. They're not here to make us feel nervous, terrified, and they don't just deny everybody's portfolios if they don't like one little thing. From my experience, if they don't like somebody's portfolio, they will make them redo a certain amount of hours, not the whole thing. But they might say to you, well, this goal, you know, when you had said you want to learn more about oral pathology, that's not very specific. So we want you to redo that and maybe change it too. You want to learn more about oral cancers on the tongue, you know, so they will actually help you and tell you kind of what they want changed. But I want to help you guys avoid that even. So the first step is when you are to write the goal. So feel free to make notes here because I had made notes myself on my iPad so I don't forget anything. So when you are to write the goals, you want to be as specific as possible. So having a goal that is you want to learn more about oral pathology is not specific. Think about what part of oral pathology do you want to know and they want you to be specific because if you're not, oral pathology is huge, right? So if you're only talking about oral cancers on the tongue and then you move to oral cancers inside the mouth, what might look normal but isn't, that's just talking about too many things and they want you to focus. So instead of writing you want to learn about oral pathology, your goal should be I want to learn about common oral cancers on the tongue. Because even saying that you want to learn about oral cancers on the tongue might not be specific enough. It depends on who is reviewing your portfolio, it might be to them, but I've noticed sometimes it is, sometimes it's not. So be as specific as possible. You can say I want to learn more about oral cancers on the tongue, how to treat them, what to look out for, something like that, or take it a step further. And another goal could be I want to take courses on proper intraoral camera use or you want to learn how to properly use the intraoral camera to become more comfortable. That would have been a goal of mine. I'd say about a year ago in the office where I was, we had an intraoral camera, but every time I plugged it in something wasn't working. I would turn it on, but then it wouldn't zoom in, I just hated using it. So there were so many times where I wanted to be able to take a picture, but I'm thinking it's probably not going to work for me anyway, so I'm not going to do it. But think about all of those patients that could have really liked to see inside their mouth, but instead I was too nervous to use the intraoral camera because it never worked. So think of things, some honest things that you want to know. When I did my portfolio, I believe I was audited four or five years ago. I actually took it a step backwards where I looked at the easier types of goals to write. I looked at, okay, what courses did I take this year and what goal could I take from that. If you want to do it backwards, that's okay too, there's no harm in that, it just kind of depends on what's easier for you. What I would do is I would go on dentalcare.com or dentalcare.ca, I forget. There's a lot of webinars there. I would pick the webinars that I wanted to learn about and then I would write a goal based on what I learned, learning activities, you know, things like that. So there's no shame in doing it backwards. So other goal examples could be a not, what's the word I'm looking for? A goal that isn't very good also would be you want to learn instrumentation. I've seen this goal a lot actually, which is interesting, but it's usually newer hygienists. So then I saved them, well, what kind of instrumentation do you want to learn about? Because this isn't a very good goal, I'm sorry, but they're not going to accept that. And then when I look at their learning activities, they're all over the place. They learned how to clinically use instruments, they took hands on courses, which is awesome by the way, but the goal wasn't specific enough. So, you know, think of, look at the courses you have taken and then say, okay, what specific goal can I take from this? So I did tell a dental hygienist to change her goal too. I want to take online courses to learn how to use my sickle scaler more effectively because she had honestly just thought, you know, I don't like using the sickle scaler. I just feel that when I clean the interior teeth, I'm not doing a good job. Well, you know what, there's no harm in that, you guys, there's no shame. Take an online course to learn how to properly use that instrument. That's excellent. But can you see the difference how her first goal was, I think I said how to learn instrumentation to the second one being how to learn how to use her sickle scaler by taking an online course. That's perfect. The CDHO had no issue with that at all, but I can promise you that if she had said she wants to learn instrumentation, it doesn't matter all of the amazing online courses or hands on courses that she took with a goal like that. It's not really helping anybody, right? But of course, for her activities, they were excellent because she had taken two or three, I think, hands on courses. She had uploaded the certificates from those courses also. She had mentioned where the course was who had given the course and how many hours it was as well. And then for her report on learning, she had said exactly how she made changes to her practice. She had actually purchased new instruments with her own money because she had said in her thing there that the dentist wouldn't do it. So she did it. You know, she purchased, I think she said, four different sickle scalers with her own money. She felt more comfortable cleaning patients teeth because she felt comfortable doing those upper and lower interiors. That is huge. I think that's amazing. Plus, she was able to tell others. If you're not comfortable with a certain instrument, take these hands-on courses. They are fantastic. So she's actually helping other people to let them know that these hands-on courses exist. I think that's amazing. So they loved that, right? So think about that too. Now talking about activities, a lot of errors that I see are dental hygienists say the author of the course and that's it. That's not helping. They need to know is did you take the course online? If you did, that's fine. But then you need the author of the course. You need the title of the course. You need the date of when you took the course. How many hours it took you to do the course? How many hours you took notes on that course? I know it's crazy. Did I mention the link yet? I'm not sure if I did, but you also need the link to the online course. If you read pages in a textbook, you can not only put the title of the textbook. You have to put the title, the author, the page numbers, the addition, the date, all of that. So make sure to just put as much information as you can. There's never such a thing. I shouldn't say never, but there's not usually such a thing as too much information, but the CDHO hates little bits of information. So put a lot. Report on learning. A common error I see is it's very minimal. Somebody might say, yes, I learned a lot. I now know how to use the sickle scaler. They're not going to accept that. You need to be very, very specific. What new thing did you learn? Let's use another example. Let's say you wanted to learn about Alzheimer's disease and how it affects people. Okay, that's a pretty good goal, right? Because it's happening more and more. So your report on learning could be everything that you learned. What ages does it typically start at? What happens? What are some of the earlier signs? What oral care issues might they have? How can you help them? Who do you talk to, the patient and the caregiver or just the caregiver or just the patient? Talk about all of that. And then changes that you made to your practice. A lot of people that I've seen have said, yes, I've made changes to my practice. I now know how to treat patients with Alzheimer's disease. That's not a very good report on learning error. I'm sorry. Changes that you made to your practice. You need to say what did you do exactly? Do you have a template that you have changed to put in your charts for people who have Alzheimer's? Do you ask them certain questions? You know, make a note of that. Do you do anything different with the caregiver? Do you write things down? Because if the caregiver isn't there in the room, how are you going to explain things to the patient and the caregiver? So all of the changes that you have done, do you have signs up in the office saying, I don't know, here are some early signs of Alzheimer's disease and how to watch out for them. I don't know. That's a bad example. But everything that you've done differently, have you changed the way you talk to patients? Have you changed your thinking? If you see an older patient who's clearly having a bad day or they're just upset out of nowhere, are you thinking, oh, this might be an early sign of Alzheimer's disease. So I'm not mad. I feel sorry for them. And now you're making notes in the chart to watch out for next time. Is this same thing happening? Because that is an early sign is, oh, this patient is usually very nice. Now they're very upset today for no reason or they're not making sense. That's an early sign. Do you just let it go? Or do you call somebody and say after their appointment, oh, so-and-so was acting kind of funny today. I just wanted to let you know. I mean, don't use those exact words. But, you know, talk to who would be in charge. Talk to their wife, talk to their husband and say, oh, just to let you know this happened today. I hope everything's okay. You know, something like that. Everything that you do differently, put in your report on learning. They love that. It can be point form. It can be in a paragraph. It doesn't matter. But the more you put the better. So I tried to keep this video short and sweet. Sorry, it was kind of long, but I hope that helps you guys. That's a good point. That is a great way to get started. If you need help, I am here. And please remember that before you do submit your portfolio, I can have a look at the whole thing. There's about a two week turnaround time though. So get the portfolios in soon. Or it might be like a full two weeks before I can give it back to you. Okay. So thank you guys for watching. Good luck. It is possible to get the portfolio done. And as I said, thank you guys for watching. I will see you in the next one.


What is up everybody? This is Chris from the Rewired Soul where we talk about the problem but focus on the solution and if you're new to my channel, my channel is all about mental health and what I like to do is pull different topics from the YouTube community, try to teach you how to improve your mental and emotional well-being but it's also about how to help others who might be struggling with some form of mental illness. So if you're into that, make sure you subscribe and ring that notification bell. So before I get started, I'm super excited because this video is part of a collaboration that I did with my buddy Ryan over on his channel Crimson Studios. I'm going to link it up in the info card and down in the description and in the pinned comments. We did a video together about Amberlynn Reed as well as eating disorders. Ryan himself has struggled with an eating disorder and has overcome it and I know not only do I have a lot of subscribers who have struggled with eating disorders, I think Ryan's perspective is really important because we don't talk that much about men who struggle with eating disorders. As Chris said, anybody can recover. However, you must first be willing to accept that change. Change will not come to you as I know far too well. The only person that could ever make a difference in one's life is yourself. So make sure you go check out the video we did over on his channel. Again, I'm going to link it and it's a video about Amberlynn Reed. So over here on my channel, I wanted to talk about shaming people who are struggling with mental illness and I wanted to talk about Eugenia Cooney. So big fact disclaimer, huge disclaimer on this video. When I talk about not shaming somebody like Eugenia Cooney, this does not. I repeat, this does not mean that you should enable somebody like Eugenia Cooney. All right? Towards the end of this video, I'm going to revisit this because a lot of this is about balance. When it comes to helping anybody who's struggling with mental illness, it's all about balance and learning the right ways and the wrong ways to help somebody. Okay? Another part of this disclaimer is, I do not know. I don't know and I don't think it's been publicly stated by Eugenia or her family that she is struggling with an eating disorder or anorexia. I've done a few videos about Eugenia Cooney. I try to make this very clear. She might be struggling from health issues as well. All right? At the end of the day, the one thing that we do know is that she is not healthy. All right? I do not know if this is an eating disorder, but I'm going to talk about it from a perspective of somebody who might be struggling with addiction and eating disorder or any other type of behavior such as like self-harm or binge eating or whatever. You know what I mean? The goal of this video, the goal of this video is to help people understand why shaming somebody does not work when it comes to, quote-unquote, helping them with their mental illness. So please, please, please do me a favor. If you find any value from this video, please share it with other people so we can spread some awareness about the right ways and wrong ways to help somebody who's struggling with a mental illness. All right. Those of you who don't know who Eugenia Cooney is, let's talk about it. I'm sure most of you do know. But anyways, Eugenia Cooney is a young woman who is a pretty big YouTuber. I think she has over a million subscribers. And yeah, there's a lot of shaming that goes on, all right? And eating disorders especially are something that a lot of people struggle with. I know when I made some of my first videos on Eugenia Cooney, I had a lot, a lot of subscribers say that they either were A, struggling with an eating disorder, or B, were in eating disorder recovery. I took a poll and I was absolutely, literally blown away. So I'm glad I get to do another video about this because it seems like way more people struggle with this than I thought. The problem is, is that you have a lot of people who try shaming Eugenia Cooney. So this fool on the screen right now, I'm not going to say his name because I don't like giving him any attention, but most of you know who this is.  But he's doing this in the absolute wrong way, all right? We're going to be talking about how shaming people doesn't work. And the other thing is too, as I was doing some research for this video, this is actually something that my beautiful girlfriend Tristan and I checked out and it absolutely broke my heart, which is people who are like, I don't know, shaming her slash trolling her on her livestream with stuff like this. I'm literally like fully like attacking like my appearance. You know what I mean? Like, like the way like I do my makeup or like how my actual face looks. And it's like, I don't get how people like think that's like nice really, but whatever. Yeah, guys, how was Disney? All thanks for asking. It was fun. We had a good time. It was it was really nice and yeah, it was cool. Like, wait, like Disney's always fun. Like lightning or is it like electric? It's probably my favorite because I really love Pikachu a lot. Who's your smash fan? Um, I actually have not played that much smash, but I'm really excited for what the new one comes out. I actually just got a switch. Now, my personal background is in addiction. Not only am I a drug addict and an alcoholic in recovery for over six and a half years, but I've also worked in addiction treatment for over three years. And it's important to understand that addiction and eating disorders affect the same parts of the brain. All right. They are very, very closely tied together. So when we're talking about addiction recovery, and it's the same thing with self harm in most cases, like the same therapeutic methods that can work for addiction treatment can also work for eating disorders as well as self harm, but it's important to understand why shaming doesn't work. So the first time I learned about why shaming doesn't work is through the book Clean by David Sheff. All right. Those of you who are like David Sheff, that sounds familiar. I know a ton of you, a ton of you have asked me to do a movie review on that movie, Beautiful Boy, which I'm going to do. It might be later this week or when I get back into town because I'm going to Los Angeles for a week. But anyways, the movie Beautiful Boy is based on a book which is based on a real story by David Sheff. OK, so this book Clean, I highly, highly, highly recommend it. It is the best book that I've ever read about addiction, addiction treatment and all this other stuff. Like I never went to a formal rehab. The only thing I went to was a sober living house. I also went through a detox, but I never did like a 30, 60 or 90 day rehab. So I never got that education there. A lot of my education started with this book Clean. If you're interested in it, please, please, please check out the description below, get this book. Best book I've ever read. He did 10 years of research on his own. And like I said, he has a lot of experience with this because he is the father that Beautiful Boy is based on, right? But anyways, some of the things that he talks about in that book is why shaming addicts doesn't work. So way back in the day, way back in the day when, you know, addiction was becoming a problem and treatment centers were nowhere near what they're like today. They did a few things to try to get people clean, right? So one of them was one of them, which was very dangerous, was forcing people to do a cold turkey detox, right? Without any medications to help minimize the symptoms. Their goal was to make people feel so terrible and so crappy that they never, ever, ever, ever wanted to do it again, right? But it was quickly found out how dangerous this is.  OK, so it is very dangerous to do that. So they were trying to make people feel terrible in order for them to never want to do it again. Now, me, I did a cold turkey opiate detox, not my choice. And luckily I didn't have any major health issues with it. But for me, it kind of did work because I don't want to go through that again. That's something that keeps me clean whenever I'm like craving an opioid. I'm like, man, I never want to go through detox or withdrawal again, right? But I have a lot of other medical supervision, which is why I was safe. So I never recommend that you do that. So if you're somebody who is trying to get clean, make sure you talk to a doctor, talk to a physician, get something like Suboxone or whatever it is to help get you off of it. Right. But the other thing that they did was what they call attack therapy. There is surprisingly, surprisingly, there is not much information online about this. And I was blown away. I was just doing some research. I wanted to find you guys some like articles and studies on it while you can't can find some like it's not it's not as prevalent as it should be. So this is kind of like a military based method to treat people who have addictions or eating disorders or whatever. And it's it's about breaking the person down psychologically, breaking that person down to get them to a place where they can build themselves back up. All right.  The counselor just like screaming at them, telling them that they're useless.  In some cases, they did this in in a group style, right? So like one person would sit in the middle and then all of their peers who are in treatment to would just scream at them and tell them all this terrible thing, things about them. Right. But research has shown that that is not an effective way to treat people. OK, so I found this article from Psychology Today from a doctor. And basically, this article is titled Why Shaming Doesn't Work? It's by Christine Bacho. I think I'm saying that right. I'll link this down in the description below. But anyways, I just want to read the last paragraph to you. Shaming is not necessary to guide someone's sense of what is acceptable behavior. Acting with clear knowledge that a behavior is unacceptable is often accompanied by feelings of guilt, unlike shame, which can relate to one's entire self. Guilt is associated with a specific behavior and by itself is not likely to be associated with psychological distress, such as depression or post traumatic stress disorder. As with other forms of punishment, aversive methods are generally less effective than positive approaches. It is important to reward and praise desirable behaviors than to react negatively to unwanted ones. All right. Let me repeat that for the people in the back. It is important to reward and praise desirable behaviors than to react negatively to unwanted ones, encouraging a person's ability to enjoy self-affirmation and self-pride will help them internalize healthy attributes and to become a person deserving of admiration before reacting to someone who has annoyed you or offended you. Remember that the specific incident provoking your disapproval may fade in memory or significance. While the shame they may feel may endure as part of who they become. Shame doesn't motivate pro-social behaviors. It fuels social withdrawal and low self-esteem.  This is very true. I'm going to make a video pretty soon about this book. I just finished where they talk about how, you know, people who say, I don't want to be like my parents or I don't want to be like my mother. I don't want to be like my father. They are more likely to become their mother or father than a person who says, this is the type of parent I would like to be. All right. It's the same thing here. All right. The way our brains work, it can latch on to the negative. It can latch on to the negative so bad. So what she's talking about is it is better to put the attention on positive aspects. OK, and this is extremely, extremely important. So let's dive into the solution. What's the solution? I think a great example is talking about 12 step meetings, right? Like you celebrate people's small victories. So when people get 24 hours, 24 hours of abstinence from substances, everybody claps, you get a coin or you get a key tag or whatever it is, this helps build people up. So rather than saying, oh, you only have 24 hours.   You haven't snorted a line and 24 hours is good for you. You know what I mean? So there's a lot of support when it comes to 12 set meetings. I remember my sponsor told me or asked me on my first step, he's like, why do we clap when people get a chip?  All right. So build people up on their small successes. All right. So in the case of somebody who might have an eating disorder or somebody who might self harm, you know, congratulate them on a day of healthy eating, congratulate them on a day of avoiding self harming behavior. Right. Celebrate those small successes. Build them up. Focus on what they did right rather than what they did wrong. OK. Like if I had to put this into percentages, focus 80 percent of your energy on what they did right, 20 percent on what they did wrong. Now, what do I mean by this? Like I said at the beginning of this video, OK, not shaming somebody does not mean you enable them. OK. Here's my personal experience with this. Here's what I'll share. Here's what's helped me the most. So one of the issues that I had is specifically with addiction and relapses and my clients and stuff. So I had a work Facebook and we started Facebook groups and everything like that. And one of the main issues that I would see is that people would relapse and announce it and then everybody would be like, it's OK. It's all right. We still love you and that's enabling. That's enabling right there because think about it for an addict or somebody who's struggling with an eating disorder or somebody who's struggling with self harm or one of these toxic behaviors. It could be binge eating, whatever it is, OK, and everybody just saying, it's OK, we still love you and that's all they're saying. This makes the person think because anybody who struggles with an eating disorder or addiction or self harm, right, we justify and rationalize our behaviors. So when everybody's saying, oh, I'm going to love you no matter what, it's OK, it makes them think, huh, I can keep getting away with this. I can keep getting away with messing up as much as I want, right. So where's the balance coming with this? OK, so here's a story. A couple of years ago, I was on vacation for my job at the Treatment Center and I went to Seattle for my first time. Absolutely love Seattle. I went up there and on my last day there, I got a phone call because I had a work phone that I carried with me all the time and I got a phone call in the morning and it was a terrible phone call. One of my former clients told me that this young woman who had just left treatment not too long ago, her roommates found her dead in her sober living. She overdosed from heroin and it really, it really got to me. Like when I tell you guys, like I've had seventy six people die in the last three and a half years, that girl is one of them. All right. And it was really sad because there were certain clients who like I got to know really well or they would always come into my office and talk and this young woman, she had been sober for years before and she had a relapse and just couldn't, you know, get back. Right. And so I got that call that this young woman passed away.  All right. So that's how I look at it when people slip up or screw up. OK. Like I have to call them out. I have to call them out. I cannot enable their behavior. I can't say, oh, it's OK. It's OK. So what I always tell people, especially when it comes to relapses, hey, I'm glad that you're alive because remember just an hour before I found out about the young woman who passed away. So I say, I'm glad that you're alive, but now it's time to get your act together. And then that's when the tough love comes in. You see what I'm saying? So we have to call out that bad behavior. And by the way, that young woman who relapsed after a year, she's doing phenomenal now. We still stay in touch. She just had another baby and, you know, things are going great for her. So that's awesome news.  But if you're someone who is a chronic relapse or like I used to be, there is still hope. All right. So when it comes to people, like we've got to focus on the positive. We have to focus on the positive while still calling out the bad behavior. That's where that balance comes in. All right. So anyways, anyways, if you are somebody, if you're a viewer watching this, again, please share this with people so they know why shaming people with mental illnesses or disorders does not work. OK.  Cut it out, quit going over to people's channels who are clearly struggling with some kind of illness, you know, like I said, I don't know if Eugenia Cooney is struggling with an eating disorder or health issues or whatever, right?  All right. And like I said, please go check out the video that Ryan and I did over on his channel, Crimson Studios. It's going to be linked up in the envelope card as well as down in the description and pin comment below. And let me know down in the comments, has people shamed you for your mental illness? How did that make you feel? Did it help or did it hurt? All right. So anyways, let's have a conversation down below. OK. Anyways, if you like this video, please give it a thumbs up. If you're new, make sure you subscribe and ring that notification bell because I make a ton of videos and a huge, huge thank you to everybody supporting the channel over on Patreon. You are all amazing. And don't forget, we have our first group call this Thursday. Information is going to be posted up over on Patreon. All right. If you want to become a patron, click or tap right there. Thanks so much for watching. I'll see you next time.


All right. Hi, everyone. Thanks for coming. I'm Craig Kerstins. Hopefully you're here for the right talk. We're going to chat a little bit about Postgres. A little bit of really quick background on myself. I'll apologize up front. I'm going to go really fast. So if there's questions afterwards, feel free to kind of catch up with me. We've got about 60 slides to get through in 25 minutes, so we'll see if we can make it. I head up Cytus Cloud working at Cytus Data. We work on distributing Postgres to be a scale-out database. Before that, I was at Heroku for a little over five years, launched our Python support there a long time ago, then hired Kenneth Rites to actually do it well. So a little bit of experience in kind of the Python world, mostly kind of around Postgres these days. Kind of a really quick anecdote. This is a fun email from Tom Lane. He is probably 50% of every new release of Postgres. He's been contributing to it for quite a while before that, helped create lib.jpg, lib.png, a number of kind of prolific things. This is an email from 10 years ago saying, naming it PostgresQL was probably the worst mistake we ever made as a project. So to simplify, you can call it Postgres, PostgresQL. Just kind of a fun historical bit there. Is anyone here not using Postgres today? Okay, one person. If you're not and kind of looking for a reason why, there's some previous talks I've given, like this is a great summary of why it's a great database. It has a mix of no SQL data types like JSON-B, a lot of really powerful kind of reporting pieces, a lot of extensions, basically a ton of things packed into it. If you're in the Django world, Geo Django is probably one big reason why a lot of people look at it. This is a quote from a friend. I think it actually summarizes kind of some of the direction of this talk and you'll see this at the end. But it's becoming more and more of a platform for building things and data than just a traditional database. It's kind of shedding some of the relational database kind of world for where it's headed. Although personally, I'm a Vim user myself. So a really rough outline. I'm gonna hit a little bit on Postgres95 that came out a few months ago. Postgres96 is already, basically we know it's in it or at most what's in it. Postgres has about a one-year release cycle and from the time it's kind of feature frozen, there's still about six months until it actually is out to the world. So it moves at a pretty slow cadence, which for database I'm pretty okay with. I don't want my database changing every few months breaking things. Looking at a few extensions which we'll get into a little bit. Here's the summary on Postgres95. I'll go ahead and just kind of dig right in here. This was the highlight feature. I think every Postgres release has one big highlight that everyone gets excited about. If you're not sure what this is, because it was horribly named and horribly marketed, this is absurd. This has been asked for forever, I think, in Postgres. It was one of the remaining things that MySQL had over Postgres. If you're unfamiliar, this is the case where you try to insert a record. If you have some key or identify or some primary key like email, it's gonna say, okay, error out. But if you want to basically do a creator update, which you can do in something like Django, this is actually how you want to do it. So I actually struggled for a little bit thinking of what's a good example. Pen tweets are a good one. If I'm on Twitter and say, I wanna save this pen tweet, it doesn't matter if I had one before, just save this one for me now. So before absurd, this was possible. I actually didn't look into how Django does it under the hood. There might be a few in the audience that might know. But in short, whatever it did was not transactionally safe. So before absurd, you could do something like this. This is the most common way to do it with a common table expression. You basically try to do it and see if this returning value comes back and then if it does, you do something else. The problem with this, if you're working on something like a pen tweet, you probably don't care because the same person isn't trying to update their same pen tweet at the same time. But in general, if you're in any kind of high velocity application, you will run into race conditions here. You will run into errors and it's up to you on how you recover from them. Now this is pretty straightforward overall. The name of the syntax is kind of awful. No one in the Postgres community likes it, but they could all at least agree on it enough to get it committed. So this is kind of what it's gonna be going forward. You start with a basic insert and then from there you say on conflict, do this. So you can actually do the update and commit it. You can say do nothing, so it just fails silently. It's kind of up to you on what you wanna do with it. I'm actually, I should find out for the next time I give this talk on if Django's actually gonna convert to that. I'm looking at someone in the audience that might know, but ideally Django just kind of moves onto this so that it's a transactionally safe kind of experience and you don't even have to worry about it. So indexes. Postgres about every year seems to pick up a new index. If you do create index, it's just gonna be that standard B3 index. But if you're looking at me and you see this list and you even read through the docs, this is my experience. Even reading through some of these, like it's unclear of kind of when to use which. So really gross over generalization. B3 is usually what you want. When you do create index, like this is the one you learn like very first in CS class. It's a B3 index. This is usually what you want. If you've got something in order, create index works fine, 99% of the time this is what you want. If you're using some of the more unique data types, you may start to look at some of these other ones or if you have really large data. So genindexes, if you're using hstore or JSONB or an array data type. So is anyone here using JSONB? A few hands, okay. So JSONB, if you're not familiar, is a binary representation of JSON directly under your database. Think of it as the same thing as what Mongo does. It just doesn't lose your data. I shouldn't take shots in Mongo. So if you have multiple values in the same column, genindex is what you want. So if you've got two values like in an array or a range type where it's got a start and an end or JSONB where you've got a bunch of different ones, genindex is gonna index every key and value inside of that column. So then searches on anything in there when you're doing a where condition can be extremely fast. Just indexes. So this is most common in geospatial stuff. Also full text search. So think of it as you've got some value in a column but it can overlap with values. So if you're doing like text search and you've got three words in there but you kind of wanna match on one of them, right? This is where just indexes are extremely efficient. There's a little kind of nuance but sometimes just can be better than gen and vice versa for the same use cases. But this generalization usually works pretty well. So KNN, that's used for usually finding similarity between something similar to it. SPGIST is space partition GIST and I say this every single time I talk about it. I've said it to the Postgres community before. What's it good for? And the only thing I know is phone numbers. I can't actually hear another use case for it but basically if you've got a lot of data that kind of naturally clusters together like phone numbers, that's the rule of thumb for it. And then block range indexes. Also kind of a similar use case where data is naturally clustering together. Block range indexes are a new one in 9.5. And actually every single one of these since B-Tree has come from the group in a friendly way known as the Russians within the Postgres community. They tend to propose a crazy new idea for indexing for this one unique case that'll speed things up unbelievably. Everyone says there's no way to work. They go into a cave for six months, come back out and it just gets committed to Postgres. So block range was the newest one from them. If you're over a billion rows and data naturally clusters together, often time series or again possibly phone numbers, it's the one you want. All right, shifting a little bit. Import foreign schema. So Postgres has this concept of foreign data wrappers which are wonderful and powerful.  And you find yourself kind of rebuilding a data warehouse. Foreign data wrappers allow you to go directly inside Postgres to query some other system like another Postgres database, like a Redis database, like a Mongo database. There's, I want to say about 90 foreign data wrappers that exist. Some I don't even know what their purpose is like Twitter or LDAP ones. But for the most part it's going from one database to another and you can query it directly in Postgres and it just looks like it's there. So instead of having to do a big complex ETL process it can be really fast for I want to pull and aggregate disparate systems together. So before Postgres 94, excuse me, before 95, if I created it I had to come in and basically create the mapping of this foreign table somewhere. I said here's my foreign database, here's the connection stream to it, here's my schema. This isn't too bad but this is a small pet peeve of mine having used them a number of times that I've got this other schema somewhere else even if it's a Postgres database. And for every table I'm going to go and have to pull out that schema and then recreate it in my database. For something like Mongo that's just a bunch of like keys and values maybe that's not bad but when I've got a Postgres database that's 20 tables and 20 columns in each this becomes a huge pain. Postgres 95 has the ability to just say import this schema over here locally. So then I can have a mapping of this remote database directly in my local one and query to it. Grouping sets. So a common theme I think with Postgres 95 we'll see it with 96 is a lot of small usability. We're probably past a lot of the big exciting things. Sands Upsert like JSONB, like window functions, like a lot of the really powerful things that people get excited about. Grouping sets is one of those that if you're using this it's really handy but you'll probably only use it a few times in a year unless you're a data analyst. So it's really handy instead of having to do a bunch of kind of case statements to do all of these rollups and groupings. So now what you can do is say group by and then this grouping set kind of ID. In this case I've got an example of department roll age and what I wanna do is find different combinations of how many people are in which department, how many people are what age, et cetera. So here's a really quick example. If I were to say group by grouping sets and have all of these in there, you would get this result. So basically I would have a rollup for each kind of individual thing I'm projecting out for. So for department, for roll for age. I could also cube this and basically say give me every single kind of different combination in this order. Depending on what you're looking to do for a report, this can be really handy instead of having to pull out all the raw data and then roll up the report yourself. So JSONB, I already talked about it a little bit. It came in nine four. If you're using the JSON data type in Postgres, you probably don't want it. You probably want JSONB because of its indexing, because of the ability to query it. So JSONB came in nine four. It's binary JSON, it's Mongo. You can index it. So GenIndex, you're just gonna create one GenIndex on it and it's gonna index the entire document for you. This is gonna be extremely fast whereas before you had to do like a functional index on some specific key. So much less flexible. There's not too much here on JSONB that's new and really exciting except for usability.  If you wanted to concatenate two JSON documents or add a new key to it, before you actually had to pull this into your application and then update the entire document at once. Now you can concatenate it and it's bolded on the screen but I don't think you can see it at all. There's basically kind of two lines up and down for concatenation. So it's gonna concatenate one JSON document with another which you can see there at the bottom. Similar, removing specific keys. Before you had to pull that down locally and then actually remove a key if you wanted to save it. Now you can just say remove the key in Postgres, pretty straightforward. This is probably one of my favorites. So if you really cared about the JSON looking like JSON, for some reason the JSON type in Postgres will actually preserve that but because it's a binary representation with JSONB, it's all one giant long string. So if we kind of go back here, let's see. You can see right there, that's one long string that's run together. Not so bad when I only have two, three keys but when I've got 20, this is horribly unreadable. Prettyprint does exactly what you'd expect and makes your JSON nice and formatted for reading. This is if you're using PCQL or in general it'll kind of format it for you. Really handy when you're writing reports and kind of introspecting things with JSON. All right, so that's a really quick kind of fly through on 9.5. 9.6, 9.6 was feature frozen about five months ago now. Or no, I think about three. There's one big kind of highlight feature here which is parallelism. This is going to be the thing that everyone's excited about 9.6. I would encourage people to not expect too much from it yet. Any new Postgres release when the feature's there for the first time, it's kind of the foundation for what comes next. But here we can kind of get an idea of where it's headed. So Postgres today when you run a query it runs against a single core. For the most part because a lot of workloads are memory bound this isn't a problem but sometimes when you're scanning a bunch of data sequentially this is really slow. So today if you want to do a select count it's going to actually scan all of that data and actually do that aggregation. Now we have the ability on sequential scans so not everywhere but sequential scans to do that in parallel. So now if you say set my basically parallel workers to some new number it's going to coordinate across them and then scan the data in parallel. You can roughly expect a pretty parallel speed up here. There is some coordination overhead but from something that's like 750 milliseconds rough benchmarking shows it goes down to about 200. So overall on specific queries in this case where you're doing parallel scans it could be extremely, extremely efficient. This will only get better in future releases as time goes on. Bloom filter. So a bloom filter if you're not familiar is a space efficient probabilistic data structure. For certain type of cases and workloads where you're indexing it can be extremely efficient. So let me give an example schema here. Let's say I've got columns A, B, C, D and E and I'm often going to be querying against these. So in this one case I want to say where A is some value and B is some value. So if I wanted this to be really fast I would probably index on A and B. But what if I've also got a workload that is A and C or A and D. And basically I let my users say which of these five things you want to filter on and look up for. So what I would probably do then is go and create five different indexes on each of those. But even then you're going to miss a lot. Like the optimizer isn't always going to pick that. So a bloom filter instead, what I can do is come in here and say index on all of these. It'll create basically a heuristic model. And what it may do is return false positives but it's not going to miss data. When I say return false positives it's going to do that up to the planner and then it's actually going to double check that all the data was accurate. So if you've got a case where you're doing a reporting application and filtering on a bunch of different columns but not always the same ones this can be really efficient for you. So that's kind of the highlights in Postgres 9.6. There's a couple of others in here. Full table vacuums, this one I have to talk about it because it got a lot of attention on Hacker News and it probably has no positive impact for anyone. So if you have a table over a billion rows basically Postgres in the background has to do a full table vacuum to kind of re-set the transaction ID. If you're not doing heavy transactions on a table with over a billion rows this doesn't mean anything for you. Postgres under the covers is really a giant append-only log. So even when you delete data you're writing to it. Postgres in the background has a vacuum process that comes in and says okay now this is actually gone I've cleaned up the space. People tend to hate vacuum it's good and bad it has to exist to actually work. People got really excited about this. Unfortunately it's not gonna change anything for vacuum for 99% of people. So that was kind of a really quick run-through of 9.5, 9.6. Going forward I suspect this is my opinion but I think we can see it within the community pretty clearly that a lot more is gonna happen outside of the core of Postgres and this kind of comes back to that Emax quote. And more as extensions. So Postgres has a nice extension API that's getting more and more powerful. PostGIS is actually an extension. HTOR is an extension so you can have custom data types. You can have as we saw a Bloom filter custom indexing. You can have just about everything that you could want to do in your database as an extension that doesn't have to get committed to the Postgres core code base. Which means there's a slightly lower barrier for getting it committed. So I'm gonna walk through a few here. One's obviously a bit of a shameless plug but I think it is an interesting one. So I work at Citus. Postgres in general works best when data is in memory. As soon as you start hitting disk it's gonna be 100 to 1,000 times slower. For most applications the easiest way to improve performance is to scale up. When your cache hit drops below 99%, adding more memory to the box, moving to a bigger box is the easiest way to do things. But at some point you might need to scale out. Citus actually takes and allows you to short data from one Postgres instance across multiple Postgres instances and basically turn Postgres into a distributed database. So in cases that you have tables like events, logs, messages those are things that I've seen that hits north of a terabyte of data and typically need to scale out. So you can kind of think of Citus as a, the same idea of the parallelism that's going on in 96 but across multiple machines. So Citus is an extension to Postgres. It takes Postgres and connects and when you see a query that's kind of run against one of these shorted tables it'll automatically distribute the workload. So what you would do here to set it up is say create extension Citus, create my table and then I wanna turn this into a distributed table based on some hash, some key. So for example if I'm Twitter I wanna hash based on the ID of the tweet and this is automatically gonna distribute it to some other Postgres database that to me as a developer it looks like just still the main database but under the covers it's a completely separate instance that I've set up behind the scenes.  So that means you get all the benefits of Postgres all the indexes, all the data types and it's just transparent to your application. And then you just insert to it and it just works. So overall a pretty interesting kind of example of what you can do with an extension. Another one which is one of my favorites that I have not gotten to put into production yet but it's just really fun is Hyperloglog. So this is based on a paper. I don't think it was by Google but I think Google did some contribution to it. If you read the paper you see things like this. I can't explain what most of these things are. This is kind of my reaction. But I've followed it enough to kind of understand when would I use it? So in more layman's terms it's probabilistic uniques with a small footprint. Meaning I don't have to store all the raw data. I can get close enough to like any unique count. Even more kind of layman's terms, close enough counts. Think of something like Google Analytics showing you unique visitors per day. There's no way they're actually counting the raw data there when they show you that. So Hyperloglog is actually a data type. So you come in here and say create extension HLL and then I would have this data type called users. And what I'm gonna do here is I would parse over the raw data or in real time say every time I see a user insert them into this HLL. And what it's gonna do is store an aggregation by day for this HLL. So I've got one HLL that's a pretty small kind of footprint and a date. So for each day I'm gonna have a set of unique users. Now what's interesting here is I can come back through and do something like this. So I can extract the month and then say give me the rollup of all the uniques over this month. So it's not just the aggregation of uniques per day but it's uniques per month. So it knows how to actually combine this data structure into the covers as you do rollups, unions, intersections, all that sort of thing. Really common use case here is if you're looking at web analytics traffic, ad network stuff, things where you want uniques across a very large set of data and you couldn't otherwise get them. So in terms of extensions, there's an absolute ton out there. There's almost 100 FTWs alone. There's a ton of other extensions, a few interesting ones. Multicorn is actually a Python library for you to write foreign data wrappers if you don't wanna write C. So if you wanna connect to some other data system that doesn't exist, even an internal one, you could actually use Multicorn for it. Hypo-PG is for hypothetical indexes on what happens if I were to add this index to my database, how would it perform? And a number of other ones in here. AuraFCE is a Oracle kind of replacement to give you functions and tools that are in Oracle directly in Postgres. If you're looking for extensions, I would say check out pgxin.org or Google. Those are both great resources for searching for them. So a really rough recap. Postgres 9.5 came out just a few months ago. If you need absurd, I would encourage upgrading. Otherwise, I don't know that there's a ton of highlighted features. It's always nice to kind of move up, but I encourage people doing it every two or three years instead of every year because it is a big migration. My slides are slightly old here. 9.6 was a feature frozen a few months ago. I'd say we should expect it around the end of the year in four to six months from now. And in terms of kind of the future roadmap, extensions are really where we're gonna see a lot of traction, both from custom indexes, types, capabilities. The plus there is that we don't have to wait for a major Postgres release. So I think it'll overall actually increase momentum of what we're able to see out of Postgres. Cool, and I think that's kind of the TLDR. I flew through that even faster than expected. Sorry if I lost anyone, but I think I actually have a few minutes for questions as a result. Correct, it is for shorting. I mean, it is very common that you have, when you have a large multi-tenant application, you do need to shard, but yeah, it's essentially for shorting. Unless you're at, on the lowest end, 100 gigs of data, then you don't need it. Below that, Postgres works great by itself. It depends. You can run it in a replicated mode. Happy to chat, I'll find on it. There is some redundancy abilities. It depends on if you're using open source or the cloud or the enterprise version. So it is entirely open source, so you can just go and grab and run it today. So it kind of depends there, but there is some in the core of Citus redundancy abilities that if a shard fails, it could be replicated to other ones and automatically know how to reroute that. So for everyone, the question was what's going on for native GIS support as opposed to post-GIS? It's a good question. I don't know that I could definitively say. I don't, the post-GIS has a great kind of community and collaboration with the Postgres community, but it's also a very separate, large community of its own. They tend to work together, but I don't see a world where post-GIS comes out of the box in Postgres. I think the more likely route is that extension APIs continue to evolve, become more powerful. Most people don't need everything that comes with post-GIS if you're doing a standard kind of web app, right? It's a matter of if you need GIS capabilities, then you need it. So I don't see there being a big change, though I think the communities do tend to work fairly collaboratively overall. Great, thank you.


Hello there. I'm Dr. Lee Zeitz, and I'd like to tell you about an opportunity I had last spring. I got to work with sixth graders as they explore the crazy world of Rube Goldberg. What? You've never heard of Rube Goldberg? Well, join me in a journey as we go off and discover how Rube Goldberg led our sixth graders to pursue their passions and STEM. It's an exciting journey. You know, Rube Goldberg was a cartoonist. During the first half of the 20th century, Goldberg drew a cartoon that he called The Inventions of Professor Lucifer Gorgonzola Butz. These pictures, these cartoons, depicted complicated inventions that were created to perform simple tasks, and this was the basis of the Rube Goldberg invention. You'll notice that on this page, there's the self-operating napkin, which is just exactly one of those inventions. Here's an example of a person who's ready to go to bed and wants to turn off the lights. This person pulls up the covers, and the covers are attached to a string that's attached to a bird that has a horn on the top of its head. That falls back. It pops a balloon. The balloon blows air that then takes the flame from the candle and puts it towards the cat. The cat doesn't like that. So the cat jumps forth, jumps into the water. The water splashes. It goes back up into the cup. The cup gets heavier. That causes the scissors to cut the string, and the string lets go and drops the lead weight, which then sets off the cannon and turns off the light. Pretty complicated, huh? How's that for easy? Let's take a look at an animation of this. Here's the Rube Works answer to how to turn off a light. The lights are turned off. Well, let's begin our journey. We begin in Waverly Shell Rock Middle School, right here in Iowa. There were some sixth grade teachers, and what they decided to do, they had four different classes. They decided that what they wanted to do was for the last three weeks of the year, they wanted to do some passion-based learning. They'd never tried this before, so they were going to give it a shot. And they wanted to align all the work that they did with the same standards and things that they had been doing all year long. So it wasn't just something fun to do, it was something that was very meaningful. They invited an inspirational speaker to come to campus and help the students identify their passions. And what we did is based upon the passions that the students identified, they teamed them up. And then they aligned all this, as I said, with standards. And the key was that what they would do was they would do projects based upon their passions, and then they would express themselves through blogging or research projects or movies or whatever it might be. So that was how it was going to be set. Now, I was all set, and I got to do something which was Rube Goldberg. I just brought up the idea, and they said, terrific, great idea. And imagine, if you will, that, believe it or not, there was a classroom that was completely empty. Next to the sixth grade rooms. They said I could use it, and it looked something like this on the first day, except for there wasn't anything in it. I mean, there were tables and things like that. But none of the stuff that you see there. Now, so we're sitting there, and I'm standing there, and 20 students came in, they went into three groups, they selected their own teams. I stood in front of the three teams of students and held up a marble. And I asked them to help me.  How can I do that? And some students said, well, throw it. So I wrote, throw it on the board. And then I tried throwing it, and I missed. So I picked up the marble, and another student suggested bounce it. So I wrote bounce on the board. And I tried it, and I missed again. Now it was time to challenge the students. I gave a large marble to each of the teams, and challenged them to come up with ten ways in which they could get that marble into the bucket. And all of them took me up on the challenge. What they were supposed to, what they did is they wrote their great ideas on the boards, and they had a whole bunch of them. They ranged all the way from catapult to pipes to even radio-controlled helicopters. It was really quite inventive, if you think about it. After about five minutes, I realized that one of the teams just couldn't stand it anymore. And what they did is they began to rearrange their chairs in such a way so they could see if there was some way they could create a ramp that they could use to get the marble to travel down over into the bucket. These were our kinesthetic learners. Like I said, the students all selected on their own, so I didn't put them in any specific groups. The initial inventions that they had were really quite ingenious. As students looked around the room, they found that there were ramps and pipes and duct tape and a whole bunch of things for them to use. You might even notice that there were some innovative ways in which they used science books. Some students even used their iPads to come up with new ways in which they could do this type of project. This was the end of the first day. Now, when the students returned for the second day, I had already disassembled all of their inventions and placed all the materials on this table. You might notice that I actually added a whole lot of things. I brought in new tools for them to expand their experimentation. In stage two, we wanted to be more methodical about the way in which we did things. You see, we needed to consider the machines and ideas that they could use for their inventions. We wanted them to brainstorm a list of machines that they could then use and create an invention. It didn't matter if it was practical, it was a matter of brainstorming. You'll notice we have pipes and funnels and bounce it on a trampoline, get a trained dog, whatever it might be, whatever it takes to get it there. We didn't have any books available for Rube Goldberg inventions, so we turned to the internet. I used Google Docs where I created a document filled with links to videos and Rube inventions. The intent was for the students to watch these videos on their own and to get their ideas for their contraptions if they were inventing in class. We also watched some of these at the beginning of every session, just so they can get ideas about what to do and also maybe build the creative process. Here's an example of one of the videos that they had. There we go, right down. A little later, you'll understand why I selected how to turn a page. So here's the deal. I identified all of these ideas, all of these machines that they can put together, and then I asked them to design an invention. You can see the list of some of the ideas they had, and there's a diagram right next to them. This is basically what it is. If you take a look over here on the left-hand side, you'll see that there's a water faucet and it goes into a funnel. It goes up through this tube and then there's this balloon up here and then this ball starts going down. And then it has kind of a seesaw there. And then there's kind of a tether ball piece down here and then it goes down some dominoes, et cetera, and it goes into the bucket. Let's see what they came up with. It was similar to that. We have this part here where it goes down into the bucket. I can show you this part right here. These students are coming up with a way in which they can get a ball down here into this bucket.  So that looks pretty good. But let's see how it really works. So what does it have all about? This. This. Notice the water going down the faucet.  You don't want this balloon over here. It's going to fall down. It's going to move forward just a little bit. Are you going to knock over Winnie the Pooh? Winnie the Pooh is our master. And so then it'll knock down the dominoes. We'll have a ping-pong ball here. We'll have a ping-pong ball roll and go in here. Here's another one. And you'll notice that there's one point where they basically take a ball and just kind of throw it in the general direction of a car hoping that that's going to make things work. And yes indeed it does. So let's start it up and see what happens. It goes down. There's the ball. It hits the car. It knocks the lead ball and look at that right into the bucket. So their inventions were working. Now it's time to take it up at a notch. It's time to go for the final invention. And here we go. As I said before the goal in Goldberg invention is to accomplish a simple task. You know if we take a look at Webster's New World Dictionary it defines Rube Goldberg as a complicated invention laboriously contrived to perform a simple operation. Now I must admit that when we used it we used something a little simpler like a complex chain reaction created to achieve a simple task. Either way the idea is that it's very complicated and it's really just a very simple task. So what I wanted students to do is I wanted them to do some brainstorming about simple tasks. What they decided upon was they decided upon making a smoothie another one to put chips into salsa and another one popping a balloon. Let's go through and take a look. These are the steps that I wanted them to use. Please take a look at the words on the right hand side we'll be getting into those later but on the left hand side this was the process I wanted them to do. First of all I wanted them to identify a simple task. After they did that they needed to identify the parts of that simple task. Consider how the parts worked together and then for the rest of the invention they needed to use 15 ideas or machines, you know those little pieces like dominoes going down and then they needed to use at least three forms of energy. Those were what we saw on the previous page where they had the different types of energy. They needed to set up the plan and then build it. Let's start creating the final projects. Let's see what happens. In the first one the team was going to pop a balloon. Here are some photos of their contraption. You'll notice that there is a phone in the first photo and if you set your phone to vibrate and put it on an incline what will happen is that when you call it it will move down the slope it will vibrate down the slope and eventually hit the marble. This loop to loop that you see down at the bottom has a card and accelerator in it which gives it the power that it needs to knock over the Jenga blocks at the end. So are you ready to see this happen? Let's take a look. One, two, three! Now what's happening right now is they're phoning that phone and it's actually vibrating and it's moving down in a second and it's going to be hitting the ball. There it goes. Here comes the ball. Here comes the car. Shake the table! I guess sometimes you do shake the table. Now what about the smoothie? Now the smoothie I thought was one of the most industrious of them all because what they needed to do is they needed to take all of the the ingredients, get them into a blender and then somehow turn the blender on so they could actually have a smoothie and so you'll notice it on the left hand side in that cup there is a yogurt and a banana and then what they needed to do is on the other side is they actually started it with a ball at the very top you see up there with the pink up here and then the ball came down here ran down here went down the ramp and hit a power bar which turned it on and then started the smoothie and made your smoothie. Let's see what that looks like. Here we go. There it goes, the smoothie and we go up here to the top they add the ball the ball goes down comes down, turns it on and voila! A smoothie! That's terrific, eh? Now, dipping a chip, I must admit that this also was quite elaborate and if you take a look at it this is what it looks like and the ball will go down into this this tunnel, it'll go down this ramp go over here, continue down here it'll come back and then eventually it will roll down here, it'll come over here come down the pipe come back down here, come down here and then it will come down here and there is a robot that's going to be going along here with the chip, bring it over here and the funny thing was that they couldn't figure out how to make the robot arm put the chip into the dip so they're actually using a fulcrum so that when the ball comes down hits the lever this will come up and put the dip around the chip Let's see how that works goes down the tube comes back down the aisle notice they don't even have a ramp here goes down here down the ramp and here it comes it grabs it, it moves it over lifts it up and boom look at that it did indeed work so let's take a look at teaching strategies teaching strategies all about problem based learning you need to set up a problem based learning mindset and what this means is that you begin with an essential question like how do I get the ball in the bucket or later on you challenge them to generate a task that they're going to identify the task and then find the answer to then you provide a process structure you lead them along the discovery path but you don't control their progress you don't have to have step, step, step but you provide enough structure so they can learn from that and then you identify your deliverables and the other thing is that you want to identify parameters for the outcomes but you don't necessarily want to you don't want to squelch creativity so we tried to integrate physics into this I must admit that I'm not a physics teacher so I don't know a lot about that I had to do some reading and I had to contact some of my friends but here we presented the language we wanted to use the language you notice that when we talk about energy we're talking about transport and energy aspect when we get into kinetic and potential and thermal these are all the things that we use these terms as we did our projects and we wanted to build on the concepts and the process of what was happening and we aligned with standards we aligned with science, technology and writing and you'll notice that the students are working here on their project and right up above them are some sentence strips and on those sentence strips we have writing standards using technology to produce writing and interact and collaborate with others it sounds a lot like the blogging work that we were doing and so we have science and technology and you'll notice under science we talk about Newton's second and third laws and we didn't directly address that here but we're planning to do that this year when we continue with this under technology it says demonstrate creative thinking in design and development of innovative technology projects and problem solving the writing standards and the way we did this was we had students use kid blog to do blogging there's a wonderful blogging tool for students as each student blogged on their own blog what they posted actually appeared in this central blog you see right here on the screen that makes a tighter community and we expect them to respond to one another which they did and they actually responded to the responses kid blog also provides the teacher with the capability to control access as well as approve postings and comments before making them public we didn't monitor the postings or comments but we did limit the access so it was only the teachers and the students who had access to this now here's one that I just hit me between the eyes says inventing is like writing a book you get to have fun imagining new things and when you're done you feel like you accomplished something that's why I think inventing is cool beans and it really is cool beans especially when students show ownership now the key to success is student ownership when students work out of class on their own that means that they're excited about learning some of our students created complex inventions in Minecraft others created their inventions from things around the house most of them recorded them and then shared them at school here's a video of a Minecraft invention that is meant to drop a block into a hole now as we get this started you'll notice that right now there's the hole we're going back we're seeing all the blocks that he's loaded up and then we turn around and he hits the lever boom and now each of the blocks hits each other is a complex chain reaction and boom it dropped it right into the center remember when I showed you the idea for turning a page well here's one developed by one of our sixth grade troopers that ran with the help of his friend the bearded lizard there it goes on down hit that and boom turn the page we began this journey looking at ways to turn lights off in a room here's how some of our students address the challenge and that ladies and gentlemen is how Rube Goldberg led our sixth graders to pursue their passions instead hopefully this is just the beginning of a conversation about learning let's keep talking I'm available for workshops for lectures, for consulting some way in which we can work together please contact me through any of these media you can send me an email you can connect with me on twitter you can look at drzreflex.com or maybe even use a phone call just remember keep inventing the world is a wonder