Kevin, good afternoon. Obviously, haven't gotten to see all the guys that have been added to this defensive side of the ball this off season yet, but as you look at the changes, what are you excited about with these people coming?   It's been a lot of fun, honestly. You know, Christian Fulton, Breon Borders, Imani Hooker back there with me at safety, all the guys in front of me at the D line, we're just having a lot of fun just trying to get better, you know, every single day, just 1% every day. Buck. What's going on, Kevin? You bring up 1% better every day during these OTAs, but specifically with this time of year, how are you and your group trying to translate what you're doing in the meeting rooms to the practice field at this point? I know it's still early. I mean, obviously, something that was really talked about for us last year was obviously a historically bad year on third downs. So I think that's something that we're stressing a lot just this OTA of being better on third downs, really being aggressive, stressing, you know, not being so far off, just starting short, making sure that we're getting up on these guys we're challenging. We feel like we can play with anybody in this league. So we have to go out there and show improve every single day of practice and teachers to get better at those little things. Kayla. Hey, KB, obviously still early on, but what are your impressions, Ben, of some of these younger guys that have joined the defense? I've been really impressed, honestly. Like I said, I think Christian Fulton, Breon, Chris Jackson, to pretty much every guy, I feel like I know I'm going to lead some guys out, but I think everybody's been improving, getting better. And that's really what it's all about. Obviously, you know, we're not full pads or nothing like that. But what I've seen that I think guys are really trying to pitch in the details, do the little things, do the things that their coach would do every day. And obviously it's not a finished product, but we're working towards, you know, trying to be a finished product by the time the season kicks off. Terry. KB, I know you've always viewed yourself as a guy who's a leader and leading by actions and words, but literally now kind of being the last man standing from last year starters in the secondary. Do you embrace that role and take it even more seriously this off season? Yeah, absolutely. I obviously still have to lead by example, but being a vocal leader, not only just for defense, but for the entire team, you know, reaching over to the other side of the ball. You know, coaching of young receivers, if they have questions about, you know, what things we're doing on defense, I'm trying to help those guys out to help us team up.  And just doing little things right every single day to show the young guys this is how to be a pro. This is how we go out there and win ball games in Tennessee Titans. So just trying to do little things right. Luke. Kevin, we know that you and Kenny and Doreen Malcolm and some of the other guys that were here last year and beyond that were really good at communicating and being on the same page in the secondary. What's it going to take to reestablish that and get you guys on the same page with all of the new players you're going to have this year? Building relationships. I think in a defensive back room, probably one of the most underrated qualities of a good defensive back room is relationships. So you're trying to build those relationships not only, you know, in the locker room, in the meeting room, but outside of, you know, outside of the building, obviously we're still under certain protocols. But doing whatever we can to try to continue to build those relationships, getting to know each other better. And obviously once we get the full group in here, that's what it's going to be about. Because I think once you really get to know a guy, and you kind of get close to the guy, it's kind of easy to be out there in the field, you know, you can kind of give a guy a look and he already know what you're talking about. And I think that's the biggest thing that we have to continue to build this year is the relationships just off the field, so we can feel more comfortable with each other, you know, on Sundays. And I'm curious, have you met at all with coach Schwartz or worked with him in practice at all and what's your understanding of how he's going to be able to help you guys? Yeah, I mean, obviously he's here as an advisory role. This guy has been doing it for a long time at a high level coaching a bunch of different teams been ahead coach been the coordinator. And he actually worked me out at MTSU coming out.  And I haven't met with him on a one on one basis just yet but I've had conversations with him on the field, just talking about different things I think it's going to be a great asset for us throughout the entire year. Jim Wyatt. Kevin, you've talked about been relationships. I know every year is as a new team is different, but does this does this seem like you guys and a lot of ways are starting over a lot of guys up front knew a lot of guys in the back end new and are you just are you still in the process of learning guys understanding guys and how much of a challenge is that. Yeah, honestly man some that I've learned and you know as I'm, you know, continue to play in this league is that you know you have to start over every single year. Obviously, I think that, you know, sometimes some successes or certain things that you do from the year before can carry over, but I think as it as a mentality wise, you have to kind of eliminate all the success that you had last year restart restart your mind reset goals and start all over so obviously yes we're starting over this year. We have a new group of guys, we have we have new goals. We want to be a lot better than we were last year so that's the motivation trying to go up and trying to improve right if it was third downs past defense sacks, everything. We're just trying to improve it every facet of our defense so yes absolutely we're starting over. Hey Kevin seem like last year you were maybe at safety playing more left right, then you had in the past during during your time with the team. Is that an accurate assessment. Do you anticipate more strong free more center field going forward or is that maybe to be determined. Obviously to be determined, I think that hook has a really good skill set he can pretty much do everything out there. So me and him we're working together. He's going to be able to do some things I'm going to do some things so it's not necessarily going to be, you know, free or strong or left or right it's going to be interchangeable parts of the defense. So whereas though you know a quarterback or offense don't get a beat on. Okay, this guy's always playing man or this guy's always in the post or something like that so we're continuing to work on different things trying to you know switch it up obviously this is the time to try everything. Once you get the training can we kind of lock down on you know different skill sets and things that we're better at or you know things we continue to work on so yeah I wouldn't say it's a definite of what we're going to be doing where I heard you're trying to improve. Was it more left right last year than it had been. Oh, I want to say that was it. Yeah. I mean, obviously yes up most of the time I was maybe lined up on the left side of the field. Um, but at the same time like you said depending on matchups depending on different teams. If it was a tight end obviously a top guy obviously I want to be the guy to cover him so like I said just depends on the formation the call that we have on defense, you know depends on our alignment. Appreciate. Yeah. Gentry. Okay, but I know it's a business and the sort of thing happens every year but but did the level of attrition this offseason and the secondary surprise you with the number of guys and you know now is you kind of bring in a new group what what do you most want to see to try to improve on last season. Yeah, honestly man nothing is leave really surprising every single year you see things that you might not thought was going to happen. You know business and just like you said I understand it to the fullest and those certain things that you can't necessarily be concerned about you just go out there and try to put your best foot forward. You know whatever happens happens with this group of guys obviously we have new faces in the in the secondary. So we're just trying to jail come together, get better, and you know let those things handle the self you know at the end day we're just trying to be the best that we can be be the best in the NFL. And you know that's our goal. So at the end of the day we're going to try to do anything we can every single day to try to get 1% better. KB when back when Logan was here and you guys had the whole MMCP thing. That was kind of a focal point that brought a new group of guys together kind of became an identity. Is there something like that you want to try to do with this group to kind of make you guys want to give you, give you like one focal point to look at. Yeah I mean know the MMC and be deal with something that kind of just came about organically. And I don't think that you want to try to force an identity on a group of guys you have to continue to work together, and just try to be better. So, when it comes to trying to have like a logo or name. That's something that we have to go out there and earn. So I think for us, obviously with last year I think that we wasn't aggressive enough, you know we wasn't playing. If it was third down so whatever we just got to be more aggressive so if that's one thing that I think that we can try to continue to improve on, you know just as OTA is being aggressive and challenging guys, you know no matter who's out there in the field challenging guys and make guys make test the throws you know those guys get paid to but at the end of the day, if a guy is catching the ball he has to be challenged. So that's our main focus this year is challenging every single person that we go up against, because we fear no one. Yeah, Kev, a couple years ago, you know you have said that you wanted to step up and be a leader and now a money hooker. That's what he's saying he wants to do so my question will be, what are some of the things that that you feel will allow him to be able to step up in that role. And why do you think that he'll be an excellent running mate for you in the safety panel. Yeah, I think you know to be a good leader you have to be a great follower, and I think Imani has been a great follower since he's been here, you know watching me and Kenny are just watching any of the veteran guys learning from them, learning how to be a pro. So now he's going into that role he's out there playing, he's being more vocal he's making calls making checks. And as you know that's the start of it going out there being a sure of yourself knowing what you need to do. So when you assure yourself and know what you need to do, you can coach another guy up and I think he's been doing pretty great at that. I think we're going to be a pretty good running mate this year, we're not going to make any predictions about what we're going to do or anything like that but you know just being out there OTAs and I think we have a really good feel for each other. But you know at the end of the day we can always improve, and we're trying to improve every day. Last question Jim Wyatt. Hey KB what advice you give to you know the young guys with mold in and for Lee and what do you kind of been your early impressions them I know hadn't been out there but just from seeing around the building. Honestly, you know, you know they have their own rehab programs and stuff like that. The something that I just tell them all the time is just you know, watch the veterans. One thing about, you know when I first got in the league I had guys like Jason McCordy Brian the rightful drill know those guys.  One thing that I did when I first got into the league was, you know, I looked at the parking lot. When I got there in the morning I'm looking at cars, you know what cars here early in the morning. The guys here I'm asking Jason hey what time are you getting here in the morning, or you're getting here to two hours before the beating. Why are you coming so early, you know I'm getting rehab I'm getting the work item I'm doing the little things, and obviously those guys had played for a long time so that's something that I wanted to do. So I just tell the young guys watch the best learn from them as quickly as you can to how to be a pro and the little things you need to do, because the end date is league is obviously very competitive. So everything that you can do to try to elongate your career to God there and make plays and put yourself in position watch more film and things like that is going to do nothing but improve your chances of being successful so that's something I tell all the young guys not just the corner just everybody on the team. And I know it's early but you kind of like their mindset early from what you're saying. Yeah, you know just in the class some of the guys are being sharp. I think that just listening to them in the meetings they sound short themselves, but you know at the end of the day, you got to be able to take it for the meeting room to the field so I'm definitely excited to see the guys on the field. Those guys are working extremely hard to get back to get back out there with us.  I'm excited about those guys honestly.


a few of you way down the back there, and this room is very big. You can come forward. It's fine. I won't bite. I promise. Do it. It'll be great. All right. This is teaching aspect to play nice with Rails. Let's get started. I could not be more excited and more happy to be back here at RailsConf on this stage that is a lot bigger than when I thought I was going to be presenting on this year. Last year I didn't make the conference. Some of you know this story. Some of you don't, but I was suffering from a life-threatening infection in my leg, and actually exactly a year ago to this day I took this picture of myself in hospital and texted it to my mom. She had a bit of a freak out, but it was fine. This is a bag of a drug called calf triaxone. Calf triaxone is a super powerful broad-spectrum antibiotic, and were it not for the efforts of the doctors and nurses of the NHS in the UK, I would not be here today giving this presentation in a very literal sense, and I'm hugely thankful to them and the healthcare system in the UK that means that a year later I am alive and able to give this talk on this stage. But I'm not telling you this story to induce sympathy towards me, but instead to tell you about something slightly odd that happened at the RailsConf program last year. We had this problem where RailsConf last year was the conference where Rails 5 was due to be announced, and that meant that there were a bunch of talks in the program about how to get various things working with Rails 5. It's a big major version. Stuff will break. That is bad. And I was going to give the talk about how to get R-spec working with Rails 5. And there wasn't really a backup speaker that had a talk that looked like that, and that was a fairly large gap in the program. So myself and the rest of the program committee decided that the correct thing to do would be to call up Justin Sells, who's giving the keynote tomorrow. I don't know if he's in the room. He's probably not. He's probably writing his keynote. And have him give my talk instead. This is funny because the program committee rejected the talk Justin submitted outright. We were like, nah, that doesn't seem like a talk we'd like to have. And then you are now Justin morally obliged to give the R-spec talk because Sam is dying. And he took that with nothing but grace. If you've seen the talk, you know that he spent the back half of it basically trolling me. But in all seriousness, I've said this before, and this will be the last time I mention this on a Ruby Central stage. Justin, I am hugely thankful that you did that, even if you're not in the room right now. And I think everyone should use the meme hashtag. Hashtag Sam Phippen is Justin Sells confirmed. Tweet him and let him know that you're all thankful, too. So, we're now at the top of the list of the top five, 0.1. Some of you will probably need R-spec to work with Rails 5.1. That compatibility is coming, but with a couple of caveats. We do not have any support for Action Chat Box test case nor action dispatch belief system test case. Please have some faith in us. So, in all seriousness, Rails 5.1 has not been released yet, but we have a branch ready that should just work. So, there will be no changes required by you. As soon as R-spec 3.6.0 is released, you should be able to upgrade and everything will work. We don't have integration with system test because I haven't had enough spare time to do that yet, but I would absolutely welcome a pull request from anyone who would like to integrate Rails 5.1 system test with R-spec. So, that's sort of the front matter. Now, let's get into the actual talk, the integrations between R-spec and Rails and how we got there. Before I go too far, I think it's really important to discuss sort of the high-level architecture of the R-spec framework. One of the things that I think not a lot of people realize is that R-spec isn't a single monolithic gem, but instead a series of testing components that are designed to work together really well. So, when you specify gem R-spec in your gem file, the first thing Bundler is going to do is it's going to go out and fetch the R-spec gem, but the R-spec gem actually doesn't do anything on its own. It doesn't have any code inside it of any consequence. Instead, what the R-spec gem does is depend on the rest of the components of R-spec that form together to make the testing framework you're so used to using today. One of the dependencies is called R-spec core, and that provides describe and it and tagging and the runner and all of the tooling that you use to actually build and execute your test suite. R-spec expectations provides the expect keyword to all of the matches that you're used to using in the powerful composed matcher system. R-spec mocks provides the mocking and stubbing capabilities of R-spec, doubles, spies, and all of that good stuff. And so these are the direct dependencies of R-spec, but they're independent gems. You can pull each part of them on its own without having to have any of the others. All three of these gems depend on what's called R-spec support, which most people don't know about. R-spec support is our internal shared code between the R-spec gems, and we use it for various things like pulling methods off objects, determine method signatures, ruby interpreter functions, and so on. And nothing in this gem is marked as part of the public API. So you should never call code in R-spec support directly, but it is there nonetheless. R-spec Rails is an entirely different beast. It functions kind of on its own. It packages the rest of the R-spec ecosystem and also provides a bunch of its own code and links directly into the Rails version that you're using. In this manner, R-spec Rails is able to provide the entirety of R-spec that our users are already used to and then combine that with Rails-specific stuff in order to make testing your Rails app really easy. So if you see gem R-spec and gem R-spec Rails in a gem file, this is actually kind of a smell. You're specifying your dependency on the gem twice, and instead you can just pull R-spec Rails and everything will be fine. Let's talk about Rails. I think this is a reasonable statement, and that complexity also comes with the fact that R-spec is really permissive about which parts of Rails you can use and at what versions. Specifically, R-spec supports all Rails versions greater than or equal to Rails 3.0, and that means we support 3, 3.1, 3.2, 4, 4.1, 4.2, 5, and soon 5.1. That's a lot of Rails versions, and it leads to a lot of code inside the gem that conditionally switches on what Rails version is being used. It leads to our cucumber examples being tagged with different Rails version support, and it leads to here docs that contain Ruby code that's switched on Rails versions 5. That was a lot of work to get R-spec compatible with Rails 5, and in the core of this talk I'm going to be going through some of the issues that I encountered, how I thought about debugging them, or where external contributors were involved, how I helped them make their issues better, or got help from other necessary maintainers to fix everything up. This is broken into a series of lessons, and the first one is that major versions mean people can break things. At the keynote, not last year but the year before, it was announced that controller tests were going to get soft, deprecated, and what that actually meant is that assigns and assert template were going to be removed. Assigns is the thing that lets you test the instance variables your controller assigns, assert template is the thing that lets you test which template is going to get rendered. I'm like, please, no, stop. There are thousands and thousands of controller tests in the world that desperately need these things to function.  All the Rails controller testing gem does is provide assigns and assert template again, and so I'm like, great, this is perfect. I'll just integrate this back into our spec, we'll run our tests, everything will be fine, so let's add it, make sure it works, and oh no, the entire test suite exploded. Looking at this a little bit closer, we discover that actually it's just view specs that have stopped working, and I'm like, okay, that's less bad because mostly nobody writes view specs, and wow, maybe you do all write view specs, and I'm just terrible.  I was like, all right, let's work out what's gone on here. So we take one of our automatically generated view tests, we stick a pry in it, we look for the gadgets path, and we get undefined local methods for gadgets path. We switch back to Rails 4.2, we call the same method, and it works. So we know somewhere between Rails 4.2 and when this gem was extracted, something has broken, and I'm like, all right, well what could possibly have changed? It's pretty likely that gadgets path is not provided directly on the test, but instead one of the things that gets included to the controller, so I'm like, all right, controller, tell me everything that you're made up of, and you get a huge list of nonsense back, but just to explain this, the top line there is the singleton class of the object, the second line is the class of the object itself, then we have action dispatch test process, three random anonymous modules, action controller base, and then a bunch of stuff. Action controller base is where we can approximately stop looking because that's the thing we're used to using. You switch back to Rails 5 and it looks materially different, and specifically those three random anonymous modules have just disappeared out of this ancestor chain, and I'm like, anonymous modules are the hardest thing to debug ever because they don't have a name, they don't have a source location, how on earth am I supposed to find this?  I know aspect Rails like the back of my hand, but I am not like an expert at the deep, deep internals of the Rails framework, and I'm willing to admit that. So I hit up Sean, and I'm like, Sean, this is nuts, what's going on here? And we hop into a Skype call, and we actually end up spending something like three or four hours trying to debug this ourselves. Sean, would you say that's about fair? Yeah, yeah, so four hours of my life, gone, and then eventually Sean's like, this appears to be a load inclusion order kind of bug, and he writes this like essay of a commit message, this is the first pro tip of this talk, write really long commit messages that explain what's going on, because anything that takes four hours of two like Ruby maintainers to work out is complicated and non-obvious and scary. The diff looks like this, and I won't make you squint, but basically it's changing the order that the controller testing gem is including stuff in, and everything works. We went from a broken gem to a functional gem, and I think this is a huge win for collaboration. When I look at this change, I was like on my own, solo maintainer, scared and lost and confused, and I'm like, hey, Ruby ecosystem, I need some help, and it helped me, and it was great. Like, I love it when we get together and fix that stuff. It makes me really mad that I had to debug anonymous modules, but I think this is a great win, and then we were basically ready to release the gem, and we did, and users started filing issues. Oh my God, so many. It turns out that the test suite that you have usually doesn't cover all the cases, and your users are doing things you can't possibly imagine, so the remainder of the issues that we'll be looking at today were issues filed by actual RSpec users as opposed to stuff I encountered while I was trying to do the upgrade. Lesson two, it is actually possible for Rails to have bugs. This may seem like a controversial statement, but I hope you believe me. So we're talking about RSpec Rails issue 1658, you can look this up, but the user was basically like, signed cookies are not available in controller specs in RSpec Rails, and I'm like, the hell is a signed cookie? I've literally never heard of that Rails feature before. Like, all right, I'm sure that's supposed to work, let's find out. So I applied the label to it, triage, and this is a pretty common thing for maintainers to have, it's like a personal state machine for how they move issues. When I label an issue as triage, it basically means you filed this, and I haven't yet had enough time to work out whether there's enough information to reproduce the issue. And then I let it lie for a little while, and I come back to it a few days later, and I basically come to the conclusion that the original issue didn't have enough information in it, so I ask this question of the original submitter. This basically says, thank you for filing this bug, I wasn't able to reproduce it with the information you gave me, please give me a Rails app that I can clone so that I can just run bundle exec Rspec and see what your bug is, and then I apply the label needs reproduction case. I think this is an incredibly common maneuver for maintainers these days because even though you filing an issue represents us having a knowledge point that something is wrong, it can be really, really hard for us to work out what exactly is broken. Rails is a complicated environment, there are many gems, there's all of your configuration, there's everything you do to actually cause this bug to appear, and frankly I can't necessarily reproduce that given just a few lines of spec in an issue, and the user comes back immediately with like, yes, done, clone this, bundle exec Rspec you're good, and I'm like, yes, go team, we did it, this is how open source is supposed to work, and so I confirm that the issue is real and I move the issue from needs reproduction case to has reproduction case, and this state machine, this triage needs has, is something I do with nearly all Rspec Rails issues because it helps me know what I do and do not have to fix, but now that I have this green issue, I can actually begin debugging the problem. So we clone the Rails app that the user has provided and we also clone a fresh version of Rails into its own repository. I do this so that I can move the commit that it's on backwards and forwards, and I point the Rails app that the user has provided at my fresh Rails clone. I check that the tests are still failing and I get bisect bad, I check out 4.2 beta 4, and there's a very specific reason it's this version. This is the last version of Rails 4.2 on the master branch, after this 4.2 was released and then they have a 4.2 stable branch which doesn't track master, so I can't simply bisect between like 4.2 and 5 on that branch. I have to use master, so I check out this specific commit. I run my tests, they pass, I get bisect good, and git tells me I have 6,794 revisions in order to determine what's wrong. Oh god, this is my life now. So I basically just run the test suite backwards and forwards, get bisect bad, good, bad, good, bad, good, and eventually this commit pops out. Commit number A29 whatever, and I leave myself a little note as exactly to what the problem is, but not necessarily a fix. This is definitely one where the bug exists in Rails, not in aspects interaction with it, and so I leave it for a while, life happens, I get a job where I have to move to New York, that's a thing, and then after a while I'm like at RubyConf and I was having a discussion with somebody and I was like, so I bisected 6,000 revisions in Rails, found the specific problem, and I'm not really sure what to do now, and Sean turns around and goes, you have a breaking commit, just show me, I'll fix it right now, and I was like, all right, so I go on to GitHub and I literally just ping at esgriff, hi. Lo and behold, immediately, this issue is not the bug in our spec, it can be reduced with Rails alone. Sean opens the bug on Rails, which provides a Rails reproduction script, and specifically states, this can be replicated purely with Rails using the public API. In open source we have a twisty, tourney maze of dependencies. Your Rails app that uses RSpec pulls in Capybara and a diffing gem and a coffee script compiler for some reason in 2017, actually you got rid of that, that's an unfair accusation. So, before filing an issue on a specific gem, it's worth noting that the bug could be anywhere in the dependency tree of that gem, and so it's well worth paring down and seeing if you can reproduce it with a subset of the things that are available. Specifically, Rails has a guide for doing reproduction scripts and before filing bugs on RSpec Rails, I would thoroughly encourage you to check it's not a bug in Rails first. Lesson three, sometimes you can't just call up Sean to fix the problem. I love you Sean. So, this issue, RSpec Rails 1662 can no longer set host exclamation mark in before block for request specs, and that's not immediately obvious, so let me show you what this means. Basically, if you have an RSpec configuration that globally sets a host in a before or block this stopped working, and there are good reasons to do this before all blocks are useful, and this host bang can happen if you have router configurations that cause you to have sub-domains in your app that are also being responded to, and I'm like, this should work, and also I feel like I touch this code when I was upgrading RSpec to work with Rails 5, so other RSpec maintainers please don't close this issue, I want to take a look at it, and I asked the submitter for a reproduction case exactly as I did in the other issue, and they come back to me not just with a reproduction case, but with I made a short screencast of how to use this app to debug it, I'm like, oh my god yes that's the best thing ever, that's so much better than just clone this and bundle exact RSpec, he walks me through, he shows me where the bug occurs, he shows me what he tried changing, so good, and so I pull down the reproduction app, I do the same bisect, shimmy and shake thing, the commit message spits out, and I go have a look, and it's Array! Basically in the change to Rails 5, this got committed which changed the application initialization logic to happen lazily, and instead happening before setup blocks, before setup blocks are equivalent to before each in RSpec, and so will always happen after that before all the user has specified, and that's our bug, so I'm like this one is simple enough that I can fix it myself, I open a pull request on Rails, explaining what changed, why it broke the thing, why proposed fix, maintainers love it when you drop context on them, the more words you write about your change increases the likelihood of it getting accepted, because it just makes it easier for us to understand what's going on. I also did that as part of not just the PR message, but the actual commit as well, and the reason for that is that if any Rails maintainer in the future is ever blame diving the source of Rails to work out what's going on, they can without leaving their terminal look at that commit message and see what changed and why and who did it, and they can like come at me on the internet if I broke everything, but I don't think I did. So after some discussion, sort of round trips with Aaron, I think Raphael got involved for some of it, Sean got involved for some of it, I got merged, and then I completely forget about it and don't close the issue on aspect for plural months, and so someone just comes along and is like, hey, you fixed the bug in Rails, you should close this issue. All right, you're right, I totally, totally should, I'm a terrible fallible human, and the truth is if I fix something and you just ping me on GitHub and are like, you have fixed this, do you still need this issue to be open? I can be like, no, and then I can close an issue, and you did a simple one-minute action that gets rid of an issue on my issue tracker as an external contributor, that makes me super happy. So to summarize, RSpec definitely has bugs, but the surface area of R integration with Rails is not all that big, and if you have a Rails specific bug in your RSpec suite, I have seen it be in both places, but it can be because of Rails, and literally every fix that I showed today was in a gem that is owned by the Rails project, not by RSpec. I know that if you're in this room, you're way more likely to be a fan of RSpec than a fan of Minitests, but if you can, use the Rails reproduction script guide, which asks you to test it in Minitests just to make sure that's where the bug lies, and Rails has a really good guide for doing that. When you open an issue that has more than the most basic form of complexity, I'm likely to ask you to send me an app where I can reproduce exactly what's going on. The reason for that is not that like, I value my time more than yours. It's that five minutes of you doing that extra work of packaging it up can save me literally hours of debugging in my framework, and that's really important. You can always just call Sean to get Rails bugs fixed. Okay, real talk, though. I think working on an open source is a really hard thing to do as a sort of career maintainer. It absorbs your evenings and weekends and sometimes stuff goes out into the world and everyone's test suite is on fire and you are the only person in the world who can fix it. I have a friend who once tweeted retweet if participating in open source has made you cry. That has happened to me. I 100% can tell you that for sure. The work represented in this talk sums to more than 40 hours of maintainer time. That's a full work week. My time, other aspect maintainers, Sean's, Rails core team, Rails Committer team, you're all wonderful people. Give maintainers hugs. They really deserve it and more importantly than that, like I think open source is more approachable than it has ever been and it will continue to do so. The previous talk was about how to get starting contributing to Rails. The talk before that was a deep dive into a new Rails feature. If your company materially depends on the existence of Rails, RSpec, Bundler, RubyGems in order to exist, it seems natural to me that you should find some time to work on that.  I'm a fan of communism. Maybe we should find ways to ensure that maintainers can get paid for their work, just a thought. So, just one random cheer. In the meantime, though, please buy me drinks at the bar if you use RSpec. That seems like a fair trade-off, right? All right, quick wrap-up. I work for a company called Digital Ocean. We are an infrastructure as a service provider. That means we do servers, block storage, networking, all the primitive components for you to build amazing applications. We are hiring. I like working there a lot. It is a lot of fun. Our products are cool. I have swag. Come find me. Let's talk about servers in you. So, that's all I've got. Thank you very much for listening. I'm Sam Fippin on Twitter, Sam Fippin on GitHub. If you would like to email me, I am sfippin at do.co. Thank you. I will take any and all questions. Are the anonymous modules still there? Yes. To the best of my recollection, it's like an active support concern that does something with Rootset that, listen, I'll send you the commit. Like, it's, computers are extremely bad. One thing that could be done there to make it easier is to have those modules define self.name with something sensible, but like, I don't know what the performance implications of that are, or if it's a hot path or whatever. And there's like a whole section of Rails maintainers sat just over here. So, maybe just like ask them. Anymore. I literally can't see. Shout, be loud. All right. Thank you very much.


No cap. Man, he a different kind of animal. How did he meet? He would have been young back then when me and him in MOT3 did that. Four years, three years, four years. Yeah, let me ask you something. Go back to the MOT3 album. You said no cap, gonna be on anything? Yeah, no cap, boozey. Who else? Tory Lanez. I might be missing one. And how many songs? Like 13, 14. I ain't finished with it. But no cap. Man, he a different kind of animal. How did he meet? He would have been young back then when me and him in MOT3 did that. Four years, three years, four years. How old is he now? He's still young. He not... He was young, he first thought. That was when he first got rid of no cap. No cap was a MOT3 fan. Yeah, so that was one of the first ones he wanted to rock out with. Was he good back then? Yeah. Have you talked to him about it? I had to drive to... I called a plane to Atlanta and drove three hours in the car with T-Rear. Listened to all his R&B songs and then went to the... Why are you saying that? Listen to all his R&B songs. Because you're not messing with it? Yeah, yeah, yeah. T-Rear, R&B, man. And then I ran to no cap. How was it when you and him first linked? I said, I need that MOT3 song. He just heard my voice. He said, we just got to listen to it. He said, I said, I need it for them. He said, hey, y'all give the right in the song. Give me a comment if I need anything. It's clear. That's hard. And that was when he first coming on up. Nah, this was four months ago. Oh, this one you read, you wanted to go on and put it out. So you went down there... You saying now, you just went down there. That's hard. Listen to all T-Rear's songs. That's the new one. This man was the new one. Stop messing with T-Rear. T-Rear, T-Rear music, man. T-Rear, he got a good heart, too, man. He do. That's a good dude, man. So what's different with this song for all of the MOT3? MOT3 got some cold songs, bro. What's different with the one that you're doing now with no cap, the one that's going to come out? It's out. And he said, I'm going to remain the same to the day they bury me. Damn. Wow. That's all it. That's real. That's prophetic, to be honest.  You think the album is going to make a lot of people cry? Yeah, yeah. This is the one he stays sitting in the dark and listen to the music. Yeah, and then I... Have you cried over it? Yeah, I'm putting it together. Now, how hard is that listening to him over and over? Because you and him being so tight like y'all was. And I asked Mr. Lee the same thing when he was doing Pimp C's album afterwards. But you doing it over and over again, how does that affect you when you're dealing with it? I know what he wants. There's a story of a guy reading. I know how he wanted it, where he wanted it. I know where he recorded every song, when he recorded every song. I can listen to a song and let you know where you're it was. Wow, you were there tapping. Yeah. But you were living it? Yeah, living it. So I know time frame he was in, what mindset he was in, and everything. That's why a lot of people don't like me talking. Because I can listen to a song and say he was talking about you. Have you let a family hear it before? Like all the songs before you're going to put it out? Uh, they ain't heard out of them. I ain't heard out of them. Are you going to have them hear everything before it goes out? Yeah, but I don't know what's out going on yet. I just let the spirit, I just follow the spirit.


you guys doing I decided to record this video while I am on pause I've actually decided to go a little bit more at first I was only gonna be out for one month I'm gonna have to go ahead and do two months you guys we're gonna get to this hair in a minute yes you guys this is cute huh I may try to recreate this in the summertime anyway y'all we are excuse my accent honey my voice is my accent gets very very heavy when I'm tired or drunk and right now I'm tired I'm not drunk I'm very tired I haven't been sleeping well y'all I've always had insomnia but it's been a little a little rough and some you'll insomnia lately I'm okay nothing's matrix going on grasses dang on pandemic hey I'm so sick of this shit so anyway y'all so let's get into this hair yes so I blew out my hair when was it last week I blew up my hair and then I saw who did I see I saw Jeanette beauty she had taken down her protector styles and I saw she had beads and I'm like that's really cute I've always wanted to do beads but I don't want them all over my hair so I just did the front and I add a little jewel so yes I started this yesterday and finished today I could have finished it yesterday but I'm lazy and I don't care so this is the close of what it looks like this will last me for three weeks yeah it's very very pretty um honey people will look at this and probably think I have extensions and stuff this is all of my hair yeah I know this is all of money but y'all know how we do this I talk about what's going on in my personal life when I'm watching on YouTube and then when I'm watching on TV all right y'all so personal life is going well we just came back from vacation we just came back from Vegas girl there was nobody in Vegas which is good we say that the the at the Palazzo excuse me I will be uploading that vlog hopefully with them within this week of when I'm filming this chit chat okay it was really nice although Ms. Jackson that's my maiden name Mrs. Denza and Mr. Denza got a little too lit the first night y'all we are not young anymore we're not and so we thought that we could handle eating heavy fattening food and drinking y'all we were so sick he was sick more so than I was because he has some bubble guts and issues child even JB was like the second day JB was like did y'all learn our lesson I said we were laughing like yeah baby we learned our lesson I did and all we had were three or four drinks of cocktails but mixed with the greasy nasty food that was it so anyway yeah that was good it was good to get away and for me that felt like even though you know things were still kind of shut down that felt like the realest vacation we've had since the pandemic so yeah that's that's good so homeschooling is going good we had a week break there with so long break this is our spring break I do like to schedule in breaks for JB you guys I had to reevaluate some things and so we pulled back on several subjects and we were mostly focusing on reading and math and some writing so what I was doing you guys I'm like okay Vivian you are writer you write a little short story for him and see how he can handle it so I wrote a little two-page short story with J for JB and he read it and he liked it but that got him interested in other stories so what I it was so cute what I did is I wrote little mini stories for him to read excuse me I'm spitting I wrote little mini stories for him to read with him as the main character and then I'm trying to figure out okay what is he interested in right now cuz I know kids they change like that what they're interested in so right now it's Mario so I've been writing these little mini adventures that he reads out loud about him or Mario and Larry Luigi and sometimes I put in his little friends around the neighborhood that's another thing you to you guys every I thought I heard him he may interrupt me everybody has gone back to school he only has one friend now that is homeschool everybody has returned to school because some other parents when they hadn't got vaccinated and they feel like since they've gotten vaccinated that they should go back and my husband keeps telling me and keeps reiterating to these folks he's like just because you got vaccinated doesn't mean you can't catch cold it just means that you have a better chance of recovering from it and even that's not a hundred percent worse we still in my opinion there's too many question marks still so anyway I'm one of my say so any yeah he liked that and so I'm continuing that but definitely discovered that JB is dyslexic and he has an issue with transposing numbers with math so for math we are doing um Christian like education for math we have to go back to first grade which I'm perfectly fine with and he did his first quiz two weeks ago he scored a 90 so I think I was at first I was a little bombed out by that but I think this is the best step is to draw back and like I said focused on math and English for reading we switched up in I ordered all about reading y'all these school supplies homeschooling surprise supplies excuse me or expensive there are no joke his all about reading cost me 200 but that is specifically for kids that have dyslexic or dyslexic so I also got him a little reading guide so he uses that to read and so he's definitely improving with his reading definitely getting better with his math so that's what we're focusing on and I'm looking at his curriculum for second slash third grade and then we'll start once he gets his reading and math a little bit stronger then we'll start incorporating science actually we'll start doing science now in history anyway um what else is going on there was a little bit of some neighborhood drama which is going to tie me in to talk a little bit about the video with Kirk Franklin cursing the heck out of his son grown son by the way I discussed this at my blog too I mean yeah I'm a disgusted so this may be repetitive so couple of weeks ago I was over at my friend's house over here in the neighborhood she's also a neighbor and I guess JV and her granddaughter had been jumping on her trampoline and a part of the netting came off the father the little girl's father came down and straight curse her out the child she's only nine years old mine you I had two or three drinks by then cuz JV and I had just came back from Papa Dose and I must say what he said I may bleep it out but he came down the stairs and was like what the y'all do did I tell you not to do that yeah I'm gonna bleep it out cuz I don't like that baby when I tell you I looked around I looked at my friend and I looked at his wife cuz I look I didn't grow up in a household like that my parents bear my mom never never curse she doesn't curse my dad maybe said hail that's it my parents didn't curse us out and they didn't curse at us no one in my family does that so when I heard this I was looking at my friend cuz this is her grandbaby right this is the little girl that comes over here a lot you guys and she has a little accent you know she's starting to get a little accent when now she's in school so uh-uh no way I went out there I said oh we got to go I told you that so we got to go he's looking concerned cuz JV looked a little scared and I knew that he knew the guy wasn't directly talking to him but it was still very awkward cuz he did this in front of a bunch of people and no one no one said anything cuz I guess they're used to it this functional ass so I said we gotta go and so I came back and followed him cuz he was ticked off the father he went outside to see what they had done the babies have been jumping on the trampoline like I said and the net had came down cuz they were jumping on the net and then back off right he came back inside I followed his ass back inside I said um we don't do that he turned around he said huh looking at me huh I see a we don't do that in my house we do not curse out kids you may do that here in your household that may be okay but we don't do that so on that no we gotta go give me my damn pot I had made them something you know a couple of nights before and so the husband was her husband was the grandfather was cleaning a pot like okay I see yeah we don't do that so you need to give me my stuff and we need to go you don't do that to babies I was so pissed go I took my stuff and went home Ms. Lori my friend text me I hope you know that um he wasn't talking to your child I don't give a you don't talk to your is that normal even though why she she sent me a text but she said I'm so I'm so sorry for my husband's behavior I told him to stop using that type of language well clearly you're not telling him enough cuz his daughter wasn't even phased about that and I'm gonna get to the current frankly thing in a minute cuz I think that's disturbing too I'm a car if he is 33 there's something wrong with that we'll get to that in a minute but I was livid y'all when my husband found out he stared at me like my husband was very upset he actually asked he said I don't think he should be going over there at all anymore so unfortunately JB would not be allowed to stay over there unless I'm there and I told her that I told my friend I said he's not coming over unless cuz I had left him over there and I came back home I said that was the thing and so I told I say he can never stay over here by himself cuz the father went from zero to a hundred like that and so she starts she's like I know I know um but he did ask him to stop jump I said but that only you got a curse about some babies like that you don't talk to kids like I said let me ask you something did your parents talk to you like that she's like no they didn't I said that's what I thought so why would that be okay for your grandchild you have to do yeah I was livid so my husband was done too and we ended up buying JB his own trampoline after that that's why he has his own big trampoline I'm like look you don't have to go over there come over here and I feel kind of bad and so you know with that but there's something about that situation that they felt it was okay it's something my spirit telling me don't do that you know there's something about him and they're all stuck over there in the house you know quarantine got people acting crazy so I'm like no my baby can't stay over here not without me no so speaking on the Kirk Franklin thing y'all did hear about the Kirk Franklin incident and I did listen to some of the tape let me say this before I get started there's something about something about Kirk Franklin that always made me feel uneasy so when the allegations that came out well when he came out and said he had an addiction to porn I was like okay that's part of it but that's something else about him first of all I really don't even listen to modern gospel because it's changed so much and a lot of them love working with secular artists which again if that's what you want to do that's your business but I don't listen to Kirk Franklin but I'm also not the type that's like oh is that Kirk Franklin I don't want to listen you know what I mean it's not like I go out of my way to not listen to him but I couldn't name a song or recent song I don't know a silver and gold and that's when like 20 song so anyway there's just something about him that makes me you know what I mean y'all so anyway I listen to the tape the audio tape and he straight cursed his son out and I know he has since came out with an apology let me tell you something there is something this is the reason why I couldn't even listen and I understand that the the his son is 33 years old he's an adult but we sing we tend to oh say things like oh he's just human oh you know God may be working on him we I don't I don't want to say that we pacify this but or I saw some comments like oh my parents said that to me or let me tell you something if you grew up in a household where that type of language was used towards you or you heard that please know that that is a abuse that is not okay we have got to stop this y'all there's certain something very wrong with a parent flat out cursing out that you may not agree with this and yes I do believe the son was wrong on his he's not he's not innocent I'm not saying that it was the anger behind it I think he even said like he was gonna choke him out or step on his neck or what he say put his foot up his butt or it was just I was like oh it was it was a bit much and like I said maybe it's maybe it's because I wasn't I didn't grow up in a household like that but that's not normal um we have got so we haven't got to stop this we have got to stop the cycle of this abusive behavior we wonder why we continue to have generational curses in our family that's and yes I get it he is a man and yes we all fall short but that's not that's not right in my opinion I do think it was very wrong for him the cursed son out like that just like it was wrong for this man the curse you know his daughter out you see what I'm saying so it's just something about us I'm talking about my people that we all he didn't do anything wrong or even when it comes to strong discipline like I seen videos of family members completely like what is that one video of the father the little girl had snuck out and he was literally beating the crap out of that child and people were like oh my parents gave me worse beatings that's not something to be happy about that's abuse you do know that and especially if they come after you in anger oh my god y'all we gotta do better we we are hurting as a people it really saddest music and I can't and I will say this to I'm not gonna say I would never ever do that I don't know what I would do if they if I'm pushed to a limit limit but I am hoping by the grace of God that he would give me the strength okay we got to really start praying over these type of situations if I put it like this I don't want my child to pick up any type of behavior like that from me and I'm so glad my parents never talked down on us like that because you be you basically are speaking deaf over your child think about the words that you think about the curse words I know we're gonna go we getting a little deep there but think about the curse words themselves you are cursing you're speaking deaf over your child you got to be careful you really do I don't know it's called a curse for a reason you're speaking negativity and death and you're you know perpetuating that and continuing that cycle of hurt the it's not the first time his his fall back or some out on top of that I heard a snippet of a audio in that same breath and I really don't want to spend a lot of time on this because I haven't heard any other sources on this but I heard a snippet of another audio apparently is an audio of allegedly his son calling Kirk a molester so that the the music Kirk Franklin's music is playing in the background and you can hear a young man's voice on the audio scene oh you're playing my molesters that's my molesters music and so I don't know for sure if that's a son or another young man saying that but in this particular YouTube video the person who made the video is saying that they think it's the son calling Kirk a molester so y'all the music industry whether or not it's gospel or secular it's very very evil and wicked and it's her song oh what does she make baby you able to draw this what in the sound child this is me walking with the danger sign right there you got child you get a panic attention to detail that's what I'm talking about y'all now he gonna bring his raggedy but I just talked about that no my baby can come in here so yeah you guys that's what's going on you know now man I'm in a better place with my neighbors but for I gave it a break like I took a week long break from over there but she has asked that I help keep one of the I'm gonna be keeping one of the babies we were he's so cute he's a baby I used to help watch now he's a toddler but I used to watch him when he was a baby he's so cute y'all love me some babies if I was younger I would probably have some more babies that's picking up babies so many people are pregnant look Linda Linda's pregnant Linda's having a girl um what is her name Morgan is pregnant but a ripple she's on YouTube is but to ripple I don't think she's posting in a while Morgan is pregnant my Starbucks girl is pregnant so y'all what I'm watching on YouTube really not much of anything I'm really not watching a lot of YouTube honestly I'm started to watch a thousand pound sisters on YouTube one of the sisters actually had COVID y'all the bigger one had COVID and then the other one just recently had a baby look I saw them I guess it was the grandmother feeding the baby food their babies like four months oh why are you spoon for them spoon feeding the baby at four months so anyway y'all country people so what is that that looks fabulous baby you did really good I know one thing if you are get pencil on my my blank so y'all what I'm watching y'all excuse the feet I know that's distracting um what I'm watching on TV girl I'm watching a lot so girl first of all let's get into this little series behind her at behind her eyes girl get it together behind her eyes it's on Netflix it was seven or eight parts but well all the way over that is very distracting cuz so whoever's watching it they can't concentrate cuz they see two brown chocolate Twix legs thank you that's good enough um behind her eyes very interesting very different I wasn't sure what was going on by the sixth episode I was a girl what what is this and so look my anxiety was off the rails for a minute I'm not gonna really get into detail but check it out again it is called behind her eyes on Netflix okay like I said I am watching a thousand pound sister I am watching my six hundred pound live that one girl y'all I think her name is Samantha Samantha I don't call everybody Samantha so her name is Samantha this woman has got to be the biggest I think she's the biggest woman I've seen on here um and she's a eater so she appeases the feeders um you know they call them feeders of people who find who have a fetish with bigger women eaten so she eats for people on cam they have a request she eats it on cam that's how she makes her money and so I think Samantha is what was pushing 900 pounds y'all 900 pounds now I think she's like six one yeah she's tall she's six feet she's over six feet but her she looks like if she was thinner she would be pear shit because her face is very small her face is way smaller than her body and her upper part is small but then her bottom like her stomach she was literally eating on her belly like sometimes I could do that too but her belly was like a little table so very very attractive beautiful woman which is well probably why she's got a lot of only what they call them only fans or whatever um but anyway I was watching 600 round life is my point um behind her eyes like I said good girls is back yes season four of good girls I'm here for it I want episode well we're on episode three and I know one thing they better you know Beth and Rio we need I need to get a shower scene something go pop off okay all right y'all so married to medicine it was interesting to watch the first episode what are they on season eight I'm not gonna watch this bless you baby don't cough like that man of a pandemic and you sneezing like that married to medicine season eight yeah I'm not gonna watch this season it looks boring but it was very interesting to see JB be quiet it's very interesting to see how things are in the middle of the pandemic how the pandemic basically affected these people's lives because they're in the you know medical field I will say y'all that dang on who is her what is her name don't want married to Eugene she is so annoying he's up here talking about you know people dying and they're running out of what is it PPE and she's talking in her main concern is oh we didn't we didn't get to go to Italy for anniversary like really is that your priorities have always been off but that was so insensitive for her to say that but like I said it's very interesting to see how these people have basically reacted to the pandemic and we're seeing you know how it affects their livelihoods in their family life so I just watched the first episode I'm not watching Toya that's a name toya y'all even sometimes in the previous season some some of the things she says or was worried about it seems like it's some so mundane you know that she's worried about all of these anyway so yeah marriage and medicine it's back I'm not watching it I did see a movie that I liked on Hulu called tip tempted by danger and what's good had a black cast I like that honey just as soon I was I was about to cancel my Amazon Prime I saw our preview for a show called them let me tell you something it is giving me us and then remember that scene from I saw this on you do because I stopped watching the series on Lovecraft country the jiggable scene with those two demons let me let me in let me in let me so them is apparently about a black family that moves to an all-white neighborhood in the mid 60s but then they start acting crazy remember that once that once trailing we saw a y'all at the very end of the check out the trailer get your Bible at the very end there's this character with the white lips the black face and white lips and he's singing he gets really close I said oh no let me go ahead and not cancel my I want to watch that I really do again it's called them and it's something about it give me step for why so like I said us Lovecraft country I'm here for it so that is it you guys this is just a preview so I do have several videos that are scheduled on my channel so please be expecting that I know a couple of you have asked me if I'm reviewing certain products now I have several videos hopefully by the time that I have set to record and review we're down to of just a few and these are the few that I had carried over from last year honestly and so yeah gonna start limiting or slowing down on the product reviews because my hair is finally thriving after I felt like I had protein overload that a few times last year in the end of last year and y'all this is my hair is stretched but it shrunk up a bit because it's still a lot it could be a lot longer sees past my armpit if it stretched down so yeah my hair I guess my point is is that I don't want to start using a bunch of products in my hair and not know how it's gonna turn out now I'm gonna stick with my singing products now I will have a review coming up or a hair video affordable wash day using drugstore products and some of those products are new to me but the lines are not new okay if that makes sense you guys so I want to share a little bit of something and this has to deal with the series that I just got finished binge watching behind her eyes so share a couple of mini stories and spoiler alert if you have not seen a series girl you don't want to watch this part but hopefully by now it would have been two months since this has came out and hopefully by now most of you all have seen a series so overall the series is about a woman who ends up making out with a guy comes to find out that this is her boss she ends up having an affair with him get some creepy vibes from his wife who turns out she's been I'm not gonna give all of it away just give it all away but turns out she's been visiting her husband and the mistress through what is it called basically she can leave her body white dreaming so the young woman the mistress and I hate to refer to her the main character who's a young black woman she's also a single mom to believe her child is seven or eight years old cute little actor in the movie she's excuse me the series she's been having night terrors and so the wife convinces her be able to figure out how to control her her dreams and that way she can she can ultimately control the night terrors so choose a door go through the door before the night terror come and go to basically a happy place now how this relates to me is I'm what you call a lucid dreamer and I actually have always to a certain degree has I have always been a lucid dreamer and I thought this was normal I thought most people were aware that when they're dreaming they're dreaming I would say a good 90% of my dreams I am aware that I am dreaming I was for a while writing down my dreams and all that and documenting it but I haven't done that in years so a couple of things you guys have happened I'm one of those who gets the visitations from people who have passed on I received a very much needed visitation and try to cry after a good friend of mine was murdered by her husband I felt lost I felt confused I was living in fear I was very fairly young her and I were in our mid-20s and I had this weight on me so I received a visitation from every woman matriarch whatever you want to call it woman is a matricle paternal on my father's side paternal so basically his mother his grandmother and his great-grandmother visited me I have a story time on that I'm not really ready to release that I don't think I ever will but that was very very I needed that as soon as I woke up boom I could feel the weight or whatever that was to fear leave me thank God for that another quick thing my now my life is blinking besides visitations and people who have died and I literally feel like they are them because again I'm very aware that I'm dreaming my husband and I dreamt shared this was like two years into us dating and it was a funny dream but we basically I don't want I don't necessarily want to call it dream sharing but we basically had these same exact dream on the same night I was being well he was being pulled over by a cop the cop was trying to arrest me I was heated in his dream he was pulled over by a cop I was arguing with the arguing with the cop and almost got arrested isn't that funny but yeah I just want to share that tidbit on me personally do you believe in all that like I said are you a lucid dreamer so that is it everyone bye