What's good everybody Chris from jashes case breaks comm doing 20 22 we feel it baseball 12 box case break number one Random first letter first name. So 17 spots total when you do only one for to get it done Here are the letters in order a Some combo spots all the way down to z plus x the way it works If you let her deem you get a drew Jones you get that card goes like that for every single Cart and every single hit a couple maybe potential random buyers going in as well But we'll see when we get there and at the very very end after any randomizes we may do We're going to give away a wax party spot as well. So first off Let's do the box breaks itself, right our fresh dice our fresh list Erin down to Scott grab the last spot mojo And that series one hanger Our only filler for it and our letters from a down to z plus x. Let's do it Thanks again everyone and good luck roll the dice and randomized two and three five times Let's do one two three four and five fifth and final time John down to Adam and five for the lettuce one two three four and five fifth and final time D down to K. I'll leave the tray window open for a couple minutes. I got some people in here who have Been active in the chat who are nowhere in this break. So we'll see how it shakes out first though So John with D Adam with J James with G Scott with E Cory with M Erin with F plus H John with T Adam with B and P plus V plus all other letters Scott with N plus O Brett with a nester with C Nicholas with Z plus X Eric with S and R Ed with L and Adam with K All right, we'll pause the video real quick Let you know if any trade and after that we'll break this 12 box case of leave it. Thanks again. Be right back All right, we're back one one letter was up, but no biters. So we are gonna rock and roll Let's do it everyone.  All right, there we go. There's our list random winner number one Brett with a got to Nicholas at Z plus X Let's do it If Scott eat turns out to be the muscle bound freak freak Zilla Scott Siner himself I'd be so happy Came out a little funny But all 12 boxes for all those each Let's just rock and roll on it. Yeah, thanks again everyone. Good luck already toppled it, too It's incredible. It really is just like one of my all-time favorite videos wrestling road it or not first up Sterling Thompson Going to spot S and Eric 20 out of 50 painting corners Cooper here be Spot see a nester five out of 40 Some extras here Taj Bradley Spot T and John at seven out of 25 Doing let's go spot D and John 13 out of 25 One more doing less go should be a little lower It's a one-to-one nice our first one one of the break one-to-one sign proof Dylan let's go going to spot D and John and the last one Nice little chicken man on the imagination. It's Wade Boggs two out of ten going to If it's not listed on here, W will go to P plus V plus all other letters and Adam has Wade Boggs there So we saw a mix there some prospects a whole famer So we vivid some retired players some active stars some rookie some prospects Big mix Next box Jefferson Quarrow Technicolor spot J out of copperman 12 out of 20 Jose butto Nice 16 out of 35 one more for spot J and Adam Pain corners cool Mar rocker nice first rounder from a couple last year 27 out of 35 spot K and Adam Copperman looking to make this a personal break Drew Gilbert spot D going to John breaking up the streak there One more deep Technicolor Dylan beaver is another one-to-one second one-to-one signed proof one more for D and John last auto of this second box Charlie Sheen as Ricky Vaughn that's still spot C and Nester nights 27 out of 35 on the wild thing It's a cool one there So real baseball players and some fictional ones added to the checklist now That's pretty cool right there the type the tiger blood ink auto Got a Vaughn brown P plus V all other as an Adam peppermint nine out of 30 Jordan Beck one more for spot J and Adam Ezekiel Tovar spot E showed up to Scott Scott E All right, we got our first dual auto, but it doesn't matter because it's Turmar Johnson and Thomas Harrington colorful combos Spot T. That's gonna be John 18 out of 40 Gavin Stone It's gonna go to spot G James our next one-to-one printing for press proof next up Street signs nice drew Jones That's gonna go to John with spot D Right up top there 23 out of 25 Nice youngster there number one pick number two picks You know that there was a top series I mean a series one or series two from back in the day that had all the will Ferrell cards From every team including some on us That's a cool one, but that'd be pretty great. You know, if you knew the Charlie Sheen might as well do Ferrell right Get the celebs in there All right box four starts off with Adele. I'm a door going to spot a and Brett 16 out of 35 One more for D. It's Dwight Gooden Going to John 29 out of 40 Ken Waldechuck Going to spot K Adam company 25 out of 30 chase the lotter spot scene and Nester 10 out of 20 on the chase the lotter Got a printing plate our first printing plate, and it's the hawk Andre Dawson very nice one-on-one on the printing plate for spot a and Brett and The last one Gonna be Anthony Volpe nice one more for spot a 39 out of 50 going to bread nice Just had his first rookie stuff come up in 2023 top series to which is on the site right now PYT and doubleheader random teams jasses case breaks up. Oh 30 30 auto all will Ferrell Actually, they got to put that in like sterling or Luminaries something like that right starting off Owen Murphy 28 out of 30 for N plus. Oh Scott the last spot mojo Reginald Presadio spot are and Eric 31 out of 15 one more technical. It's Louis Louis Matos Spot L and Ed 14 out of 20 One more Dylan beavers for spot D and John 3 out of 15 One more printing plate, and it's a dual and it's gonna be a randomizer colorful combos printing plate Gabriel Arias spot G and Robbie snowing spot R G is James and Eric with spot R. It's gonna be a one of one. So we'll put this right here randomizing and Last one Brooks Lee Brooks Lee 23 out of 50 for spot B and Adam here is box 6 2015 tops are that's what it was You know just grab a grab a Make them sign 30 stickers. I want to make them grab 30 stickers. Who cares, you know Alright first up Gabriel Hughes painting corners for spot G and James Mikey Romero gonna spot M and Corey 29 out of 35 So then Rafaela Another red sock 12 out of 15 going to spot C and Nester Nice O'Neal Cruz. Oh and plus so going to Scott 47 out of 50. I think it was Rex too. Yeah Next up Kate Horton spot C Nester 10 out of 15 and another multi a Red Sox box but another randomizer sedan Rafaela and Marcelo mayor C plus M on the colorful combos 28 out of 40 Nester would see and Corey with M So another randomizer to do that's the first half of this case start with the box seven Nice, there we go Yeah, he had his own bobblehead night the other day and he was handing them out set up a little table Right outside the front gates in Pittsburgh at PNC Park handing out his own bottle. That's nice Jordan Lawler spot J out of couple men seven out of 15 The top prospects in all baseball right now Another Technicolor for Gavin Cross and spot G going to James 18 out of 40 Oh nice Slamming Sammy Sosa Spot S and Eric 13 out of 30 Nice one there Painting quarters Justin Campbell One more for Jay and Adam 21 out of 25 Other old school in the Technicolor. It's Omar Viscale One more for Scott and plus out 17 out of 30 on the Omar Viscale and another duel Alec Burleson and Jordan Walker colorful combos a Brett C. Nester four out of ten There's lining up all those randomizes at the top there He should just do you know, I think it'd play like a bunch of different positions too, right?  I'm in a nice rookie year so far Jason Cheerio 23 out of 25 Going to spot Jay and Adam Cole Young that's going to be a one more 101 on the sign proof spot C and Nester and Jack wider nice Spot Jay seven out of ten one more for Adam spot J Pretty well here at him Not so bad break here is boxing nine Landon Sims going to spot Ellen Edpin 38 out of 40 Michael Garcia spot M. Corey 19 out of 30 Got a Z. Zack Neto Technicolor spot Z plus X at Nicholas 26 out of 40 Nice rookie season for the angels right now Justin Crawford first rounder for the Phillies spot J Going out of 14 out of 50 One more Cole Young on the Technicolor 17 out of 50 for C and Nester And nice Jordan Walker Going to Adam 36 out of 50 with spot J Jordan Walker there Couple of our big rookies from 2023 series to once again on the site right now Jeff who's taste breaks calm A volt be earlier Jordan Walker now too bad three more boxes here Gavin Stone spot G and James seven out of 30 Wilbur Salinas Spot are Eric 13 out of 50 J are Ritchie two letters. I'm gonna spot J and Adam seven out of 40 out Burleson Spot a 33 out of 50 for Brett and that's right and Frankie and A redemption gonna be a Brian bellow Spot B. That's gonna go to Adam. Yeah, I got a couple guys got a drew Jones in there, too Well, nice wrong Acunia, Jr one out of 35 Perhaps your NL MVP Nice for spot R and Eric Nice little case so far. I still got two more boxes to go He's just having that year what we all thought he would have when he was When he was younger just got to stay healthy and he's really been doing it. Oh Randomizer right off the top here Sterling Thompson and Marcella Mayer Cory with spot M. Eric with spot S one more redemption or one more randomizer JC on on the Technicolor 29 out of 35 spot J. Adam Getting it done again another randomizer old school new school Dwight Gooden and Ken Waldechuck spot D. John spot K. Adam 16 out of 40 Christian Santana 30 out of 30 That's gonna spot C and Nestor Another redemption gonna be Xavier Isaac X Z-Plex X Nicholas getting back in on the action.  Whoo Corbin Carol and Drew Jones C and D Nestor and John respectively. That's a great one here 15 out of 15 Oh Let's see if we can grab one more heater just like that in this 12th and final box. So so far six randomizers And the wax party spot to give up at the end to leave vivid It is a fun one. Oh Nice say a Suzuki For spot s 20 out of 20 go into Eric my second year Jose Rodriguez 7 out of 20 at the J while you're thinking of what spot J nonetheless for Adam Another J Joey Weemer Another rookie right now for the Brewers 13 out of 40 one more for Adam Yuri Perez another guy made his debut this year spot E and Scott six out of 25 one more randomizer Reggie Crawford and Vaughn Brown are Eric V is P plus V was all other letters at him and it is one more one of one potentially our last year Nice dual right here And the last one. Thanks again y'all how to randomize us to do we'll get them done Last one is a term are Johnson. Nice another first rounder nine out of 35 spot T and John All right Let's switch screens. We have some work to do. So I've got one I need two three four four five six two four five Six and seven so I'll roll the dice once for all these randomizers and then we'll do The good stuff G and R C C M This has to be a list excuse me A J S plus M D plus K C plus D last one R Plus V. All right, so seven randomizes in this order. I'll show it off One more time first up will be G plus R C plus M A plus J S plus M D plus K C and D and the last one before a wax party or R plus V We're doing the parking For screens one more time we're gonna roll the dice and randomize below one five and two seven So seven times for our seven randomizes. Good luck one two three four five Six and seven G at the end there. So the game to Arias Robbie snowing going to G Next up seven times for C plus M one two three four five Six and seven And so the Raffaella and the mayor going to spot M next up a and J two three four five six seven a He gets it done again All right, S and M Okay One two three four five six and seven it's S Right D and K one two three four five six and seven K And No Yeah, sure you call it that seven times for C and D one two three four five six and seven D I'd be the big one that would drew Jones and Corbin Carroll out of 15 going to D And the last one R puts V Seven times one two three four five six and seven R All right, there we go All right one more to do let's grab one more Fresh Dice one more fresh list Let's grab all these names one more time bend down to Nicholas We'll roll the dice and randomize one last time this one's for the wax party. That's one right there It's Tuesday. We'll go the dice here. Don't mind me Three and five eight times. So here's one eight times on the randomizer is one two three four five six Seven and eighth and final time name on top is Eric Eric K gets in Eric Congrats And grab your name put your right down here all the way down our 75th. That is 22 We've Vivid base Random first letter first name Number one There we go first one of the day goes to Eric Congrats again everyone for any spots to do the we'll show off the recap one more time Most importantly the randomizer so the G plus R went to G C plus M goes to M a plus J goes to a S plus M goes to S D plus K went to K C plus D. That's nice Corbin Carroll drew Jones goes to D and the R plus V went to R Very nice stuff do one more recap of all the non-randomized stuff Some fun stuff in here. Thanks again everyone Congrats to Eric one more time gets in I was not even halfway done. Here we go some prospects some current guys some Hall of Famers some celebrities Plenty of one-on-ones This one T plus T. No need for a randomizer There's the Charlie Sheen that's a cool one right there little wild thing All right, and there we go. Thanks again everyone Gotcha more for baseball basketball football and more on the site jasper's case breaks calm. Thanks again. Bye. Bye


Yes, as at this point you I'm sure know, I'm an engineer at Weedmaps, but I am lucky enough that this is actually the third company that I have worked professionally in Elixirin, getting code out onto actual servers. And what that means is that I've got at least three places where I've made huge mistakes and even better as I'm part of a team, you know, I'm always part of a team and that means we get to make mistakes together. We also get to be successful together and one of the interesting aspects of speaking at a conference that's local to where I am is I'm looking out in the audience and I'm actually seeing a lot of those people that I've made mistakes and had successes with and I'm about to share a bunch of those things and I hope they still like me afterwards. So but that's a big part of what we do, right? We make mistakes, we figure out what we did wrong and we move on. One of the big tools that we have to help us with that and to help us prevent mistakes in the first place is testing, right? But testing is hard and a lot of us, most of us have come from another language where we had an idea of what we were doing, we knew what we were up to and then we got into this other, this new language where everything's concurrent and there's crazy stuff going on all over the place and we can do anything. I mean we spent the last two days having people tell us how awesome this stuff is and showing us these ways that we should be leveraging this awesome language and the beam in ways that we haven't thought about yet and that's great but I feel like a lot of us were still finding our way, figuring out how we should be testing. The downside is I'm not going to give you any magic, you know, bullets today telling you up, this is how you test and everything will be good from this point forward but what I can do is talk about how we get better at that process. So let's take a step over and talk about the title of this talk. What is an insert noun here whisperer? So popular culture gives us such things as the dog whisperer. Somebody asked me if I was going to have pictures of him and I promised I did so and then the other one I'd heard of is, you know, the horse whisperer so I found some images of people who go by that title, there was a movie about it and that has moved on and then that kind of started taking on and we got just whispers of all sorts, right? But what does that mean then to be a test whisperer? So it really comes down to that's what you name your talk when it's right before the submission deadline and you haven't thought it through very thoroughly and it's kind of a bad title. More importantly, as I did more research as I was building out the talk after it had got accepted, I started realizing that one of the big aspects of the whisperer phenomenon was more about talking or, you know, whispering, communicating to a thing and less about listening and what I'm really focused on today is listening to what your tests are telling you. What is it that we get back? Not, you can tell your tests all you want. You're the one writing the code. Getting it to listen is, you know, to you is probably not too complicated. So it's not the best title. But when I mentioned listening to tests, tests are just code and there's a common concept that we have of listening to our code already. It's called the code smell, right?  You've got to go take care of it, right? And so the same thing actually applies to tests. But the tests, and we've got a concept of a test smell.  The same way the code is. It's when your tests are telling you there's an issue with your code itself. And so with that, I'd like to start over. I'm Jeffrey Mathias. I'm an engineer at Weed Maps. And I want to talk about being a test smeller. I'm guessing that it may not have gotten accepted had I done this. But now that I've got you as a captive audience, and that's exactly what you are. Now that I've got you as a captive audience, we're switching over. So tests in general, what are they good for? We can either do this interact or I can just tell you it's up to you. Who wants to tell me why they like tests? Sorry, somebody? There you go. It tells us how to use the code base. It helps us to find what's supposed to be going on. It keeps us from forgetting corner cases. Regressions. Oh, I love that one. So more importantly, it keeps us from breaking things that we're already working, right? So there's lots of reasons that we do it.  Some of you do it beforehand. Some of you do it after. I'm not going to get into that today. That's not what this talk is about. You should do it before. But the point is that we recognize that tests are really good. We also know because we write tests that they interact directly with our code. I personally love testing. I have a background before I got into coding. I was sculpture, product design, automotive technology, which is just a fancy way of saying I went to school to be an auto mechanic, only to find out that I was a terrible culture fit. But those things, I didn't, with the sculpture and the design, product design, I was making these things and I was pouring all this energy and time into it. And then I would put it in front of somebody. And it either worked or it didn't. And what I mean is it worked for them or it didn't work for them. And I either had communicated successfully or I didn't. With cars, I had very clear guidelines on what was supposed to be happening in that car as I was diagnosing and fixing it. But I wasn't making anything. There was no creativity. So coming to code, I get both of those things. I get to create a new thing and I actually get to know that it actually works before I hand it over to somebody. Can you imagine if the first time we ever knew that a website worked was when we pushed it live and told the world about it? It'd be awesome. And so from that standpoint, that's one of the things I love about what I do here. Don't get me wrong, I do like those other things still. I haven't completely abandoned them but I love people who work with me will tell you I'm way too big into tests. But that's because they're so useful for helping us work together effectively as a team as well. So one of the things that I found early in my career was, when I say career, I mean specifically my coding career was this quote from Charles Kettering. Charles Kettering is an engineer who ended up being the head of research for GM, but he invented the automotive distributor. That's the thing that for up until the last couple decades where technology got way better, basically let your engine run. It's the thing it's the system that delivers the spark from a single coil to each of the individual cylinders, the spark plugs to fire at the exact right time so that your car runs. So you don't know it, but we all owe a lot to this guy being pretty smart. And what he said was a problem well stated is a problem half solved. And I feel like that applies really well to test to the part of the reason I start writing tests first is because defining tests I guess helps me getting get to know what I'm building. And so that doesn't mean I don't go play around and build stuff first. But then I go in to find that test. But so what we're going to do here today is we're going to look through places where we're coming across tests gave us smells. I'm going to go through three code examples about that.  It's more about trying to get a sense of what it looks like to recognize these things. And then you're going to have to go fail a bunch. So with our first example, and yes, I'm aware there's nothing on the screen right now, I just want you to look at me and listen to my awesome voice. With the first example, I'm going to set up a little bit. First off, none of the code that I have here is and some of it's going to be very obvious, none of it runs. These are me reconstructing problems from code bases that I no longer have access to, but the patterns are there and the concepts are there. So when you recognize that I've got a type, you're like, no, I wouldn't compile. Don't worry about it. Just pay attention to the general pattern. So for this first example, and in fact, a lot of this stuff comes out of the fact that every company I've worked at, we're typically moving really fast. For whatever reason, the companies that I've worked for have wanted to make money and getting things in front of people has been part of that. Priorities, I know. So with that, that means that a lot of times we're not paying attention to what we're doing or we think we're paying attention and we miss things. So the first example I have comes from when we were working again, we were scrambling.  Like writing these tests, the controller code is easy, but writing the test is absolutely miserable. So what are you doing? You say, I'm looking at one of the other examples, and I'm just kind of copying that and then modifying it for what I'm doing. And so I looked at the code with him, and this was his code. And honestly, what's in the test themselves? Nothing about this is super important except that we see that we've got a post and we've got, I don't know, a pile of test against that single post call. And I said, OK, well, show me the code that you're looking at. And it looked like this. I'm sorry, the example that he was pulling from. And it looked like that. So it looks like a lot of copy and paste. So there's a couple of attributes that are different, right? And we'll just jump back. So it's effectively the exact same test, but that meant that getting down into those tests and identifying the little bits that were different was really quite painful. I said, OK, great. Well, let's go look at the actual controller code. So that's the controller code for both of those controllers. OK, so there's something going on here. We have some macros going on, right? And so we're going to go kind of dive into what those macros are doing. And we'll take a step back and look at the rest of it. And that's, oh, and so this is the top part of it of the file. We are going to just actually just focus on specifically the create function and what it's doing and what it's calling below. There's a bunch of code below that effectively is getting called. And then that expands out. But the catch is, is everything we're talking about today is going to apply to every one of these actions, every one of the functions for these macros. So when we go actually look at the function below, this is effectively, you can just put it in the context of whichever controller you're working with. This was one of the controller actions. And in this else, each of these actually had a good bit of handling logic in them. And so the happy path was relatively straightforward. But so it's robust. It covers a lot of cases of what the behaviors could be, right? But the problem here, and I'm sorry, I realize I now have a slide that highlights the things I was just pointing at there. Just repeat whatever I said in your head, but with this on the screen. So this is not a conversation about whether to macro or not macro, because at this point, this was really just somebody using macros, I should say, this was us using macros to dry up our code, right? And there are other ways to do it. But the point is, is that we had picked this particular place to build our abstraction. And don't get me wrong, I think macros are really cool. And I don't want them to never be there. But also sometimes they're not the right place. Again, this isn't really that conversation, though. Use macros. But what we can do is we can look at the fact that the way that this controller was written forced all testing of those behaviors to cover all those use cases all the way from the controller down the stack and back. And the reason, and the issue with that is that this controller, and if we go back, we look at it, it's actually mixing HTTP issues and business issues, business ideas. And so we did this really fast because look at how fast we could knock out identical controllers.  It really sped us up. But look what it was doing to us from a testing standpoint, right? And so by instead looking, re-looking at how we're doing or re-examining it, it gave us the opportunity to recognize that like what we should have done is we should have split out the controller specific logic from the business logic. You've got some service layer. You can call that thing whatever you want. Everybody's got an opinion and I'm sure they're happy to tell me why that's not the right name. Good. You pull it out into a thing, right? And you separate just those two layers of that logic. And that gives you the ability to then not have to deal with decoding in all of your tests. Dealing with the JSON payload, abstracting, making it more confusing about the arguments that are being passed in through having to do it through the testing framework around the controller actions. And then it also, and it removes it so that all of your tests don't have to be through that controller to be testing out that business logic. And so if we go back and look at what that would have looked like then, so this is what we had and what we'd do instead is we'd get back down to, and I know the code format is going to love moving that do on me, but that's just a thing I like to do and make it more readable. But, you know, so this gets us back down to significantly simpler cases. It's not golf, so I don't care that we removed X number of lines of code, but the actual cognitive load of just this controller test is significantly lower for having done this.  And depending on what you're doing, you may even be able to handle that authorization at a different level, but we were focused on where the code was right now. So the good new, oh, and then as far as like the service layer goes, testing that stuff, you still potentially, if all that logic is still going to be used across all the different resources, you potentially can do that, but you're going to pull that service layer. You're going to test it individually as a macro. If you're from the Ruby world, you know, it's about testing your module or your mixin' it on its own, pulling it into a generic class and making sure it behaves the way you expect, but you don't need to repeat those tests over and over again. And there are actually different ways you can build that out or handle that solution. The big catch, though, isn't that, like, this is how you should build your code.  Like, I don't know what's going on here.  That caused us to reexamine and look at what we had done and recognize that there was, like, yeah, we built that wrong. We were moving really fast. We thought this saved us time and, you know, by not just slowing down ahead of time. But so that was really helpful, right? So speak up. If you see stuff, get somebody else's opinion. If you're not sure if it's a smell, get somebody else's opinion. The next example is a little different. It's not necessarily a thing I came across once, but it's just something that I look out for. And this this evolved out of another conversation with yet another coworker, because that's effectively what I do is grab their work and talk about it on stage. But it is here. This test is actually, you know, pretty clean. It's got a mock. It's using the mox library. If you're not familiar with that, check it out. It's newer. It's from Jose. And it's a nice way of doing things along that great platform attack blog article that came out a while ago. We've got a single assertion, which is nice. So it's a pretty clean looking test, but to me, there's a red flag. And there are reasons why somebody would add a capture log on there. The biggest reason, and it's one that I like, is that there's nothing more gratifying to me after working on a bunch of code and watching those little, running my test and watching those little green dots line up and just seeing this big field of green. Just it, you know, I'm like, yeah, I know what I'm doing. And so I can absolutely understand why somebody's capturing log here. But the problem is, and this is something that I prefer, that I like to do, is I'll go remove that. And sometimes you can, you know, you see what's going on, why they put it there. And other times you see additional stuff. There's something else breaking while that's running. So in this particular case, I'm guessing that this warning, which is intentional logging, and it's probably an error case test, right, this intentional logging is happening. And they were trying to capture that to get clean output. But what they ended up doing, and they meaning, well, me in this case, what they ended up doing was hiding the fact that there was something breaking in the background. Now, in this particular case, this example, I think it's just an issue of setting up the test or the database sharing, connection sharing correctly in a test. But the catch is that we do stuff that's very multi-processed. We spin things out all over the place and watching, you know, seeing processes die, seeing red showing up on your screen amongst all the green dots and then getting to, you know, zero failures at the bottom. There's something, there's a cognitive disconnect there that does not work for me. And so what I'm going to tell you to do when you do see that and you come across situations where this is going on is instead just switch where you put that capture log, move it down into your test itself and explicitly assert for the error that you're expecting to see. And that actually, in this case, will give you output that looks a lot like this if something else comes up. And then you can just remove, you know, comment out the assertion or that capture log if you need to get the full story of what's going on.  And that's one of the biggest things about this, right? Is Elixir gives us all this ability to spin this stuff out and do new processes. And it's not that we shouldn't be doing that, but from a testing perspective we need to figure out that we're isolating the right things that we're, and that we know what's going on. We need to know what's happening in our application during the time that we're testing. So fortunately something like this actually helps us get back to our pretty row of green dots, right? I got good news for Johnny. I'm going way too fast.  So I actually only have one last example about this stuff. And it's about a time where I was actually writing a test case for existing code. And I was getting back there. I talked earlier about, you know, testing first or last and what not. But the fact is, is that even if you're a test driver, you're ultimately going to be at some point writing code or writing tests around code that already exists. In this case it was a bug, but when you're doing features there's already code in place, right? Like it's just not, there's no such thing, except for that very first time you're green fielding a project that you're looking at code that you're looking at tests that don't exist with some sort of existing, interact with some sort of existing code. And so in this particular case it happened to me that I was dealing with a bug. And that bug came up because we were processing things off of RabbitMQ and we happened to have a service that was dropping messages into RabbitMQ, had a bug in it and it was duplicating messages. And in the case of deletes we were getting, we learned about this through Honey Badger. We were, you know, we were doing our air collecting and we started seeing all of these stale, can't delete stale entry errors showing up. And it's because we were processing effectively the same message twice, not because, because there were actually two identical messages and we were processing them right at the same time. And so what was happening is one was getting it, we had two servers up. Well, I'll talk about that in a second. The whole thing though is that I needed these errors to go in. I needed it to go away fast because everybody was pointing at this like, hey, this is a thing. You guys have a bug and that's bad. And so digging into it, you know, we saw that we had those identical messages and I was like, ah, that's cool because Elixir, I can, I can write, I can use Async so easily and just duplicate or create this race condition. Right. And I was pretty pleased with myself. I was like, look how easy it was to write this test and duplicate this race condition. And I was working with one of the, one of the engineers who's newer to Elixir. And I was showing him like, hey, let's do some lessons time here. Like, look at this task thing. Let's talk about how that works and whatever. And he's like, yeah, but why is there a race condition?  Look at what I did here. I'm Asyncing stuff and it's really easy. Look what it looks to let me do, you know, and take that to your whatever language you were working in and stuff it. And he's like, yeah, but ultimately the thing is, is he had a really good point. Why was there a race condition? But because I was running fast, I was more focused on just fixing that error. And again, Elixir made it really easy for me to replicate it. I did this, I added, and that gave me an excuse to test drive, putting a database lock in, and I was done until he asked me that. And so, yeah, now we'll get back into why it happened. And that's because we had that service double publishing. We had two servers. It's good to be robust. We need to make sure that if somebody, you know, if one went down, we had another one going, but both those servers had their own listeners for that particular set of messages or that particular queue. They were each grabbing these identical messages and trying to process them. They were both pulling it from the database, seeing that record, and then both trying to delete. One was getting to the delete and the other one was saying, the data is just like, wait, no, this is gone. I already have, you know, this is, and so it was airing up. And to a certain extent, like it didn't really hurt anything. On the other hand, it really highlighted, you know, like the fact that I was trying to duplicate this race condition, highlighted the fact that we had been running fast enough that we had never really talked about how to handle or create single processes or deal with any sort of back pressure on stuff. So there's a few different ways that we could have resolved this, but at the end of the day, you know, it would have been something where either we had a single listener as yet another place that was just feeding to us individually, so they weren't combined, or we had connected the two nodes in the application and just told them to have a single listener. I mean, there's a few different ways that we could have handled it, but at the end of the day, it came down to we had an entire system issue, like an architectural issue that I was about to just hide with a clever, and I mean that in a very condescending way to my own work, a very clever way of using the asynchronous, the ease of which we can do asynchronous calls. So with that, man, I went really fast. So with that, the biggest thing about this, and it's just like with code smell, the only way to really hone this is to be paying attention and finding, like whenever you make mistakes, whenever you realize that you've done a terrible thing, go look at your testing. Was there actually a chance that you would have caught that there, but like you did something clever in your test or you did something exciting there that you were so proud of that you failed to notice the bigger issue? So every time you make a mistake or every time you catch your new mistakes, go look at your tests, go figure out why they didn't catch it, go figure out if there were things in there that should have been telling you why, that it was there the whole time, but you just were too excited and you weren't paying attention. So, and I guess that's the biggest thing too was with Elixir, we have a whole new set of smells that we're having to get used to, and be aware of that.   They don't actually run in production, but they help make sure what you're doing is there that is in production is running well. So, with that, I am gonna wrap up. Again, my name is Jeffrey Mathias. I'm an engineer at WeedMaps. I would love to hear your own failure stories. I'm happy to keep adding to the collection here, and at some point we may, you know, I just may actually start blogging about this stuff when these come up. The other thing is that I am one of the organizers of the local Denver, Erlang and Elixir Meetup, and we have a meeting on Monday. So, those of you who are either local or are gonna be in town through Monday night, please either hit me up or find us online through meetup.com and come join us. Cheers, thanks. Oh, and I can take questions. I got time. Yeah. So, you were talking about how like the only time you're gonna be working fresh is like on a green field where you're not gonna be writing tests for code, but I think more often than not for me, you find bugs later. So, even in those cases, in the green field cases, you're doing tests and then something you didn't intend to be able to happen happens and so you're going back and adding tests to existing code even in those points. Are there any like pointers or like smells that maybe could mitigate that a little bit? So that you can kind of like think of all those edge cases from the get go? Well, I think we've had some really interesting introductions or like peaks at property testing this weekend or this week or whatever this is. But, I mean, ultimately, I think it comes down to the other thing you should always be doing is running your code. It's really easy to forget that sometimes because we're so good at testing that of course we covered all the things, but so I don't know that there's necessarily from a smell standpoint that you're going to identify that, but I highly encourage that as you're writing those tests and running that code and getting those little green dots that you occasionally just spin up your application and try it and that'll help you identify those things pretty fast. And yeah, I mean, like literally that very first, the very first code you ever write is the only place where you're not going to be writing tests with already existing code, right? Thank you, Jeffrey. Yep, cheers.


This is Professor Resnick again. What I'd like to do is present you a summary of what we've done in the course. And I'm going to do that in terms of telling you a story about the US economy over the last, let's say, four decades, roughly from the middle 1970s up until the present. So I want to kind of review the course, exploitation, the business cycle, and so forth, contradictions, over-determination through this story that I'm going to tell you about capitalism in the United States. Let me start out. We start out the 1970s with a, more or less, regulated capitalism. I'm going to use the term that's popular now. That wasn't the term of the day. In the 1970s, we still had, in many ways, the heritage of the 1930s in the United States, in which the state played a very important role in the economy. And what the state did was intervene in a variety of different ways to maintain capitalism, to regulate it. That was partly the lesson of the 1930s in which, under FDR, Franklin Delano Roosevelt, the state intervened in order to try and get us out of that business cycle. It didn't succeed. It took World War II to do that. But there were major changes which occurred at that moment in time that the state would play an active role in trying to offset the depression that was occurring in the United States and was threatening the survival of the United States. Secondly, the state played a very, very obviously key role in World War II. The third is that a new notion arose in the United States in which people looked more to the state, in part because of what it did in the 1930s, in a part because of this kind of collective action during the war, that the state had a role in providing, and let me again use a term popular today, a safety net for the society. And in so doing, the state would be kind of an employer of last resort, would regulate various key markets, including the labor market, and so forth. So the people understood, and people accepted and wanted the state to have this kind of role in society. And Congress reflected that and as did the various presidents, both Republican and Democrat. In the 19s, okay, so we got on an economy in which the state is playing a major role. And by the way, it's also reflected in economics, Keynesian theory, which is a theory that explains the why the state should play this role. Keynesian theory was more or less hegemonic, and neoclassical economic theory had been demoted. So macro theory was a key understanding in economics profession around the land, and that's what was taught in most universities. It wasn't just as if micro theory wasn't taught, it was taught, but the macro theory and the Keynesian theory had a dominant place. The 1970s also starts, oh, certainly the 1970s is also characterized by the following problem, a major problem. And I'm gonna put the problem on the blackboard. The surplus value in American industry was less than the demands on that surplus. So look what we've done here. We've gone right to the Marxian entry point where I began this course, and we're saying, okay, let's make sense of this problem in the United States from a Marxian perspective, which is that the surplus that was being pumped out of the workers was less than the demands on it. Basically, in non-Marxian terms, people understood the mid-1970s, late-1970s as a severe crisis in American society. It looked as if American capitalism was nearing its end, and people were worried, deeply worried that our investments in plant and equipment and so forth was falling, our productivity was falling, we weren't able to compete in a variety of different industries with our competitors, the Japanese, the Europeans, the Brazilians, and the Koreans, and so forth. There was a real problem. We were losing our edge in a variety of different industries in which we had a superior position after World War II. It was a problem, okay? In Marxian terms, the problem is such, okay? And I wanna now look at the first, the right-hand side and the left-hand side to explain exactly what this problem was in these valued terms. So, on the right-hand side, one. The subsumed-class payment to workers via the workers' unions was very large. So maybe I should just add it over here. Helping this inequality on the right-hand side were these payments that the capitalist had to make to the workers. So what this was all about was that the price of labor power was greater than its unit value in industry after industry after industry. And you can ask, okay, why? Well, in many ways, this was the heritage of what happened in the 1930s, the presidency of Franklin Delano Roosevelt, and the various presidents thereafter. It was a period of time in which unions were looked upon favorably. They were strengthened under federal law. There was a culture which was supportive of unions and all that helped the AFFL and CIO in the United States to assume a strong bargaining position in a variety of leading industries, automobile industry, rubber industry, electric industry and so forth, transportation industry, in which those strong unions were able to get a price, a wage for their workers higher than the unit value. And that was supported by the federal government, okay? So this is bad news for the capitalist. The bad news is this inequality. This is part of the crisis, okay? The bad news is you had to pay these workers more than what they're worth in value terms, and that puts a strain on the surplus. But that wasn't the end of it. By the way, let me be consistent. That's the bad news for the capitalist. Is there any good news? Yes, there is good news. The good news from this extra payment to the workers because of the union power was that the workers had obviously higher wages via their unions. And so then the workers could take their higher wages and go out and buy all kinds of consumer goods, which helped the capitalist realize their surplus. So the workers' monopoly position on the selling of labor power earned them higher incomes. That's a disaster to the capitalist. That's the blackboard. But then the contradiction is there's a good side to the capitalist, which allows the capitalist to realize their surplus because now they can sell the cars and the boats and the homes and so forth to all the workers. So it's always contradictory. For example, you can drive this home. The unions were very strong in certain cities in the Northeast that were produced, Pittsburgh, for example, that were producing all kinds of steel in that particular very famous town. So the workers there had a higher, via the steel workers union, had a higher price of their labor power. That gave them higher incomes. That higher incomes in turn allowed those workers to have something which they hadn't had before, to buy a small house in the suburbs, buy a small house, to buy a car, to commute from the suburb to work and bend back, to outfit the house with all kinds of consumer goods, including a little boat that you would put in the driveway, which you would use on the weekends, and also to purchase something which became very valuable and reflected this, which is tickets to the National Football League, which is a multi-billion dollar industry in the United States, which grew rapidly after World War II. So the bad news is this, but then there's the good news for the workers and the capitalists. Next, there was another demand on the surplus, which was very large, which was in the form of corporate taxes, okay? So the second one was the subsume class payment that had to be paid by the capitalist to the federal government in the form of corporate taxes. So what that meant was that the capitalist had to take a significant share of their gross profits, the surplus, and pay them to the federal government. How high? If I remember correctly, I think the tax was 0.52, so more than half of the surplus had to be given in terms of a tax payment to the state. That was a disaster, okay? So not only do you had strong unions, but you had a strong state putting demands on this surplus. So that's bad news for the capitalist. Any good news? Yes, there too, it's contradictory, because it is true that the state took a hefty cut of the surplus, but then the state provided an environment in which the capitalist could produce and sell their goods, not just nationally, but globally. That is, if you think about, what is the state providing the capitalist? Well, the state is providing the capitalist, which is good news for the capitalist, is enormous defense expenditures after the war, to fight the Cold War, okay? And so that means that the capitalist are producing and selling commodities to the state. It's kind of a guaranteed contract that the state is providing by saying to the capitalist, look, you produce the tanks, the weapons, the tanks, the airplanes, and so forth, et cetera, we buy, okay, and therefore the capitalist has less risk than would otherwise, because you're kind of a guaranteed market by selling to the state, and then the capitalist can produce these commodities and realize their sale to the state. So that's a great benefit to the capitalist, but of course the capitalist are paying a tax on that, number one, number two. The federal government, the US government provides a kind of, I don't know what to call it, kind of a protective network around the world, enabling the capitalist to sell their goods, not just in the states, but every place, because the United States becomes increasingly a hegemonic power after World War II, and so the defense expenditures are not just for a defensive army, but they're for bases around the world, which helps our exports around the world. Third, the state is providing all kinds of new research and development, which helps capitalists. Everything from computers and chip, computer chips and polio vaccine, jet airplanes, it's endless. The state is funding research and development in a variety of universities around the United States and other places as well, and out of some of that research comes all these new products which enable the capitalist to produce new use values embodying surplus value. So make a long story short, sure there are costs, but there are benefits as well. Third, a new subsume class payment emerges towards the end of the 1970s, which is OPEC. What happens now is that the oil company, the oil producing state companies organize, they get together, as I think I mentioned to you in Geneva, they set a higher price for the barrel of oil. They allocate how many barrels their members will produce, but all of a sudden, that's a oil shock to America, because now we have to pay higher prices for that on those important secrets, and hence that's another kind, you can think of it that way, as a kind of another tax, besides the corporate taxes, there's a tax to OPEC. So a new subsume class payment arises to OPEC. And so you can see in terms of the right hand side, this is a kind of crisis these others, but I'm gonna just focus on these, the workers via their unions, the corporate taxes via the state, the higher prices for energy via OPEC. And the final one, on the left hand side of the equation, we have a problem which I mentioned to you, is that American industrial capitalists are losing surplus value to their competitors. So this is a loss of surplus value.


It has a bizarre yet intriguing taste. House of cards season four. So this was a season that a lot of people had a lot of hope would be better than the previous season. Season three was all right. It had some really interesting moments, but in all, nothing really happened in that season. And there was a lot of moments where the show kind of went in direction as you think that would turn into something really potential, but actually just completely fell flat. This season, the first thing I can say about it is it's the most ridiculous season yet. The level of absurdity that this show goes to in this season was beyond anything I could have ever imagined. The first two seasons were somewhat cemented in a realistic environment. The third season kind of went a little bit further and then this season goes balls out. The trails are left, right and center. So many people come back in this season. Frank has a weird pseudo dream with John Russo and Kate Mara's character, Zoe Barnes, and it's really freaking weird. This season is strange, absurd, and yet it's very entertaining. The beginning of the show is a bit slow. The season starts off kind of with a slow burn because after what happened with the previous season where Claire decided to leave Frank because nothing for her had worked out and Frank had basically pushed her to the edge. So the first bit of the season is about Frank and Claire and them being at odds with each other. And basically Claire starts to underside Frank and starts to sabotage his career. Until a certain event happens where Claire is forced to come back into the fold. And there she even manipulates Frank's campaign even more once she realizes the power that she can obtain. The first half of the season is about Heather Dunbar, the other Democratic running mate. Then the second part of the season is about Conway, the Republican running mate who is trying to go for Frank's job. Now Conway was an interesting character because he comes off as this very wholesome, very interactive, very up to date with technology and the way of the world father. He's also played by the guy who played Robocop in the new remake. But much like every other character who has entered into the world of House of Cards we start to see him take a dark path. And we see him start to do things that he would never have considered. And basically he becomes a game. But the main thing that I really wanted to see which would happen with this season is what would happen with Claire and Frank. Claire has been one of my favorite characters from the show. She was my favorite in season two. And in season three, she had a lot of potential but she fell flat. And they came to this real focus that she couldn't do anything without Frank which was an interesting concept but I didn't really enjoy it. Mainly because I wanted to see more from Claire. I wanted to see her make it out on her own. At least to say she does that tenfold this season. And I was very impressed with Robin Wright. Not only should she bring a lot more to this character and have some very interesting arcs. The best episodes by Farv this season were episode four, episode seven, episode nine and the finale. Episode nine was interesting mainly because at one point Frank and Conway come into this room to talk about ICO which is this show's version of ISIS.  And this is something that's kind of been a little bit of a thing for the past few seasons of House of Cards as they bring in a, they basically put a giant ad out for a indie game.  And it was so funny because it really kind of had this very dark undertone, this symbolic meaning to what the show is meaning of what House of Cards is. And I really actually like the jokes that they made with that. In the end the season does end on a cliffhanger which is a bit of an annoyance because it's such an unnecessary cliffhanger. I don't know. I'm very much interested in what's gonna happen but the thing that the show definitely started to do was it started to become what could be the future of Trump is the president. That's what made the season scary in the end especially with the final episode. A lot of what Frank Andrews does is a lot of Trumpisms. I'm not gonna specify but at least to say I was slightly terrified because it's like wow, this is what could be going with my neighbor down south in the next few months. Oh God. So either way, this season was much better than season three. However, there were still some episodes that dragged. The beginning of the season is very slow. There are some characters that are brought back for a reason of which I do not know. Doug Stamper, he's also another one of my favorite characters. He has this really weird arc in this season. He's basically a whiny little pratt and at one point he feels sorry for a person who died in a circumstance that wasn't really had anything to do with him. Yet he shows this interest that was just bizarre because Doug has been able to take out the trash before and have no problem with it. Sure, there was that thing with the prostitute. That was his own personal issue. This had nothing really to do with him so I find that arc very pointless. Otherwise though, this season was much better than season three. Still not as good as season two. Season two is still my favorite. I think it's almost a running mate for season one. In the end, I will give season four of House of Cards a five out of seven. I actually watched it twice just to be sure I was following the right path. Admittedly, the beginning of the season is very slow but once you get into it, then it starts to get very interesting and much like how House of Cards usually does it, it's bizarre, dark, and creepy as shit and very interesting view of politics.  We campaign in Canada for 70 days.  Jesus. Anyway guys, that's all from me. See you guys later.


Suspends! Autolight and its 96,000 dealers present, Mr. Ray Milland in Chicken Feed. A suspense play produced and edited by William Spear. Hey, Hap, what happened? Get me a doctor. Rush is fast getting here. Run my battery dry. Why, you don't need a doctor. You need an autolight. Stay full battery. Why, these brilliant beautiful bouncy babies want water only three times a year. Yes, only three times a year in normal car use. Their larger liquid load is like a lake compared to ordinary batteries. And autolight stay full batteries have extra protection with fiberglass retaining mats for longer life. While tests conducted according to life cycle standards of the Society of Automotive Engineers, autolight stay full batteries gave 70% longer average life than batteries without the stay full features. So, folks, get an autolight stay full battery. Remember, you're always right with autolight. Oh, and friends, a reminder, suspense may be seen on television in many parts of the country every Tuesday night. And now with Chicken Feed and with the performance of Ray Milland, autolight hopes once again to keep you in suspense.  But of course, that was the only the beginning. Junior had asked for a nickel and I flipped it over to him. After he left the room, Mary said I shouldn't spoil the kid. It was time he learned the value of money and I said, great Scott, if I couldn't give my own child a nickel without her jumping down my throat, I said, after all, what's a nickel good for? Cup of coffee?  He keeps saying things you shouldn't and she lashes up with an answer. Before you know it, you've stormed out of the house and you're taking it out on the car. 50 miles cooled me down a little, but not much. I automatically slowed up when I came with the sign. You are now entering Lansing, California. Go slow and see our town, go fast and see our jail. Everybody knew Lansing, speed trap, tough town. Driving at a normal speed through the quiet Sunday street gave me time to think of something besides the fighting words Mary and I had slugged at each other. I pulled up in a little cafe next to the police station. Had a whitewash sign in the window, best cup of coffee in town for five cents. What's yours, Mr. Coffee, please. Brady, how's your starboarder? Phillips, ah, they're coming for him in the morning. They could be able to hold him until then. He got out of that Pennington jail like a paper bag. But don't worry, sister, Mr. Phillips won't get out of this room. And I listened to him in the half an ear when I sip my coffee, best cup in town for five cents. That reminded me of our argument over a nickel. That's about all a nickel's good for, a cup of coffee some places, a newspaper, a phone call. There was a stack of the local papers nearby and I poked over to look at. This Phillips is on the front page. Bank robber, killed a teller. He had a face I wouldn't want to run into, close. After a while, a hot coffee made me feel a little better. Maybe, well, maybe I'd been at fault as much as Mary. She wasn't the only one who had a bad temper. On a sudden impulse, I left my coffee, went over to the phone on the far wall. I heard the dial tone and then I fished in my pocket, but changed. It was empty. Say, Miss, could you change the dialer for me? I want to use the phone. Oh, yes, sir. What's the matter, mister? Well, my wallet I seem to have... Look, I'll be back in a minute. No, Mary wasn't the only one with a temper. I'd stormed out of the house without changing the contents of my pockets to clean my soot. Didn't have a dime on me, not a nickel. I rummaged in the glove compartment. Mary sometimes left the coin first, but this time, naturally, it wasn't there.  It seems to me the trouble, mister. Oh, hello, officer. I seem to have come out without any money. It's embarrassing. Yeah, yeah, embarrassing. I didn't realize it, I tried to phone, but I... Wait a minute, just a minute. Where's your driver's license? Oh, it's in my wallet, San Francisco. Got any other identification? Well, the registration slip on the car. Oh, yeah, that's the car. What about you? Look, officer, I'm Ralph Clark. Clark and Jacobs in the Hatfield building. We're attorneys. Attorneys? I should have a card somewhere. Quite a far from home to be without any dough, ain't you? Well, I came out of the house without changing the stuff into this soot. You know how it is. How do you happen to have the keys to come? Well, I don't take them out, and it's in the garage. Yeah. Say, you don't think... Where are you headed for? Well, I know it sounds funny, but nowhere, really. You see, I had a fight with my wife, and I just batted out of the house to cool off. Mr. Clark, suppose we just mosey over to the station house. Station house? Hey, what is this? Oh, nothing. Nothing at all. It's right next door, and you can call your wife from there. But I don't see why that's necessary. If you'd just lend me a nickel, I could call here and reverse the charges. Come on, we'll go. You can leave the car here. I'll take that key. And look here, officer, I don't... Come on, move on. Move on. At this time. I'll tell you better after he makes this call. That's out of order. Went dead half hour ago. Yeah? I reported it. They said they can't have a man here before tomorrow. But did you tell them this is a police station for Pete Sakes? Sure, I told them. It ain't bad, though. We get incoming calls, and we still got the nickel snatcher over there. Oh, yeah. Well, there's a pay phone, Mr. Clark. You can make your call from there. I don't have any money, remember? Oh, yeah, okay. Here's a nickel. Gee, thanks. Let me speak to your wife when you get it. It's gonna sound fine, just fine. You'll think I really tied one on. I want to call San Francisco Philmo 69098. Reverse the charges, please. Thank you. Uh, this is, uh, 4-6-0. Hey, Mary, take the call! Call? Look, operator, get her back with you. This is important. I will ring them again. Well, that's a sweetheart. He's there, the little... Why doesn't she pick up that phone? Your party does not answer. No! Now's up, man. Well, that's your nickel. Let me have another one, will you? I'll get hold of my partner. He'll identify me. Look, we've wasted enough time. Come on in here. But those are the cells. Right.  Right again. But what's the big idea? I didn't do anything. What are you charging me with? I don't have to charge you with anything. I'm holding on suspicion. Suspicion? Suspicion of what? I'm fronting the café for one thing. I want to check that car. You think I stole it? Well, it's been done. Now, wait a minute. If you just let me fall down... You're entitled to one call. You've had it. But look here, officer. Come on in, son. In jail. All on account of a measly nickel. A lousy, stinking nickel. Welcome to our jail. The stink part of the Santa Nueva Valley. Slim. Yeah, you said it. What's your beef, chump? Suspicion. Can you feature that? Suspicion. They won't even give me a nickel to phone. You mean you ain't even got a nickel? No, you see, I... Gee, that's too bad, ain't it, Pete? Oh, yeah, sure is. I wish we could help you out. Yeah. Maybe we can attack. You got a nickel? Sure. I got three of them. Well, let me one. Well, you just won. I'll pay you back.  What's it worth to you, chump? What? I just told you $10. Yeah, yeah, I know. Fire in the sky. Hey, Maristwatch, why didn't I think of that before? What's the matter with it? Oh, nothing. Nothing's the matter with it. It's worth $50.  Look at it. It's yours for five cents for one measly nickel. What can you lose? Must be something wrong with it. Is it hot? Hot? You mean stolen? Yeah. Of course not. What do you offer it for a nickel for?  Oh, so you don't like our company, is that it? Well, if you want to put it that way, no, I don't. Oh, the man don't like our company. And now, ain't that just too bad? Hey, what do you think of that, Mr. Phillips? He don't like us. Hey, you got any nickels, Mr. Phillips? I followed his glance. For the first time I saw, deep in the gloom of the locked cubicle, the face I've seen on the front page of the newspaper, the face I said I wouldn't want to run into, close. Well, it was close, and I was glad there were bars between us.  Rob four banks and broke into two jails. Killed a man, too. Yeah, sure. We're just bags. But Mr. Phillips, he's going to the hot seat. He had a comment to get him, take him back to Utah and find him. They don't find him in Utah, they shoot him. Ain't that right, Mr. Phillips? Hey, Mr. Phillips don't want to talk about it. Yeah, Mr. Phillips, he don't want to talk about nothing. Mr. Phillips, he ain't very sociable. Just like this. Oh, now look, fellas, I didn't mean to. I just meant I want to get out of this jail. Yeah, take the watch and give me the nickel, huh? Tell you what I'll do, I'll match you for it. Match me? Yeah, nickel against the watch. Well, that is... Take it, I'll leave it. I'm all right. I'll leave Pete hold the watch here, huh? I'll flip a nickel on the floor and you call it, huh? Heads. Tails, I win. Hey, wait a minute, wait a minute, get your foot over it. How do you know it's tails? It's tails.  Sure it's tails, all right. Here's the watch slipper. Say what is this? Watch it, brother. You're not going to get away with this. Get him, Pete. Yeah. This is for me and me. Oh, don't kick me. Hey, what's going on in there? Officer, these men... It ain't nothing, officer. This new guy is acting up. That's all. Well, quiet down in there. I can't, he kicked me. Trying to get us in trouble, huh? No, no, I... Look, fella, for heaven's sake...  I'll be the judge and you'll be the prosecutor. Right. Maybe Mr. Phillips will be the offensive attorney. You want to, Mr. Phillips? He don't want to. Prisoner at the bar, stand up. I said stand up. Cut it out, will you?  All right, counselor. What is the prisoner charged with?  He's charged with breaking in the jail and solving his fellow borders. Poor sportsmanship and fighting. A very dangerous character, your honor. Oh, yeah, yeah. I've got guilty on all counts. Prisoner, have you anything to say before I pronounce sentence? No. Well, I find you. Five cents. Hand it over. You know I haven't got it. Can't pay, huh? Well, then you can work it out. A rate of one cent a day. Your first job would be to shine the court's shoes. Shine your own shoes. Oh, he's gonna be like that, huh? Hold him, Slim. Yeah. No! Officer! Officer! On him shoes. I don't have anything to shine him with. You got a coat, ain't you? I get going. The next hours were unadulterated agony. It was unbelievable, the filthy, inhuman things they could think up for me to do. It was just frightful. With every move I made, I could feel the glittering, steely eyes of the silent man in the locked cage on me. Following me, weighing me. And finally, when they couldn't think of anything more, they forced me to stand at the tension, looking right in the Phillips's cage. They couldn't see his face, it was too close to mine. But he, he winked at me. And he nodded his head as though it were a signal. And then his two huge arms came through the bars and thrust me, reeling across the cell, and I fell and hit my head. And that's all I remember. It is bringing you, Mr. Ray Mulan, in chicken feed. Tonight's production in radio's outstanding, Thrill's Suspense. The liquid reserve X spells one of the major causes of battery failure, means exceedingly excellent performance and extremely long life. You'd say it's expedient to own an auto-light-stayful battery. Exactly. And for a few more auto-light-stayful extras, get this, extra protection with fiberglass retaining mats. Extra long life is compared to batteries without staple features. In fact, 70% longer average life as established by tests conducted according to life cycle standards of the Society of Automotive Engineers. Why, with an auto-light-stayful battery, you can tell the difference in your car. You're right with auto-light. Now, auto-light brings back to our Hollywood soundstage, Ray Mulan, in chicken feed. A tale well-calculated to keep you in suspense. I don't know what time it was. Two or three in the morning, I guess, when I felt a stealthy touch on my shoulder. I opened my eyes. I was still on the stone floor. And Phillips was bending over me, holding a revolver. My mouth opened for an involuntary cry, and he clapped a hand over it.  You want to wake him? Punks, get up quick and be quiet about it. I glanced quickly at Phillips' cell. It was open. So was the door to the corridor. He pushed me on and locked the door behind us. In his office, found and gagged securely to his desk chair, Sergeant Ross clad at us. The empty holster at his side told where Phillips had got his gun. Here. Which is the key to your car? This one. Okay, take it and let's move. Where's the car? Over there. You drive. The guy could spring that crock with a hairpin. But you nearly done a fine job of lousin' things up. What happened to you, gettin' throwin' the can in the middle of the day? Well, they picked me up on suspicion. Well, I wasn't supposed to be till midnight tonight. And all that phony kid stuff about the nickel. The nickel? Yeah, all that double talk when all you had to do was slip me the word that Jerry Nichols sent you. Served you right the way that mlush is treated you. Acting like I died in a world square. Nichols! My numbed brain slowly put the meaning of his words into shape. He thought... He thought I was an accomplice. Sent by a partner to help him break jail. Then all my screams about a nickel but nothing but a signal to him. A signal that I came from Jerry Nichols. Jerry, got the hideout set up? Yes. Where is it? The hideout? The hideout! We went to Jerry's place first, didn't we? Then what? Well, I'll take you to Jerry's. Then I guess you'll take over from there. How far is it to Jerry's? Can't be any more than about five miles, is it? Well, it's... Look behind you. What's the matter? There's a car following us. Dark lights. I don't see it. What's a big idea? You're trying to cross me? I couldn't help it. My foot slammed on the brake. That car, we've got to get out of here. Go ahead. Get it started. That's flooded. You make for the other side no tricks. Just to make sure I'll take this key. I'd made myself a chance and I took it. I slipped out of the car on the other side and ran. Ran across the fields until I could run no more. After an interminable two miles I found a road and after a while of trampling along the road a dark shape loomed up before me. A gas station. And through the glass I could make out the outline of a telephone. I tried the door. It was locked of course, but I found a tire line and sprang the latch. I'd run to the phone, almost thrown myself on it before I saw it was a pay phone. In a rage I shook the black box. I could hear the nickels inside, across a sheet of metal no thicker than the playing cart, yet as inaccessible as the moon. But there must be some money in this room. My eyes focused on a battered desk. There were some changes in it. And a couple of dollar bills. The kind of money a man leaves as a sub to possible burglars. Burglars. That meant me. Carefully I abstracted a single nickel. Get me San Francisco. Sutter 15994. It's Morris Jacobs. Tell him that this is his partner, Ralph Clark, and ask him to accept the charges. Thank you. Maybe it's light today, sir. Will you hold on? Shall I call you? I'll hold on, but hurry up. It's important. As I waited, a glint of light pulled my eyes away from the phone. Far down the road, headlights of a car juggled over the rise and aimed towards me. It was the first car to come by since I'd hit the road. It might be a stray, a farmer starting out before sunrise, but I couldn't take the chance. Hasty, I hung up the receiver, closed the cash drawer, snapped a lock on the door, then I clutched beneath the desk. He may be back on the bottle again. To my horror, I had the creek of bedsprings from the rear of the station. A light appeared under the door. I'd thought it was just a rear door to the outside. It opened, and two hairy barefoot legs under a fan and a light gun came through and made for the front. What are you, chilly, with the door open? Oh, you don't tell me. Well, how did he do that? You see, there was two of them. He had an accomplice. That he was a lawyer. He found their car abandoned on the road back at Paris's Hopper Hill, ran out of gas. So he can't be far away. Hey, there was a big reward for Phillips after he broke James Bennington, wasn't he? Yeah, a thousand dollars. Hey! You'll know him, don't you? Yeah! You was in the Bennington folk when he done that break. What was it? Uh, a drunken disorderly or something. Yeah, it had me a little too much and broke a window in the general store. We were his roommates for the night. I was pretty scared. How'd he do it, the break? Oh, I don't know. I was sleeping it off. A thousand dollars reward, huh? Man can do it a lot with a thousand dollars. Not that he couldn't. Don't you get that he ideas now? That Phillips is a killer and so's his partner most likely. Well, I ain't exactly helpless myself.  Now, you take my advice, John, and put that gun away. They show up here, you talk soft, let us do the captures. Oh, sure, sure. I'll play safe. Well, well, we'll be going. Just wanted to alert you, Jerry. Yes, thanks, sir. Thanks, sir. So long, boys. All right, you. Come out from under that desk. Come on out, I say. This gun's mighty nervous. Now, get your hands up and stand over there. Look, Mr. Walsh. I'll do the talking. Who are you? Look, you've got to believe me. I'm not a criminal. I'm a lawyer. Oh, you must be the other one, huh? Keep them hands up. But I got into this by accident. I don't know. He helped me escape. Where is Phillips? Well, I left him in the car, and that's another thing. You can get the reward. I know who he's going to meet, and they're going to a hideout. Oh, I see. Who is he going to meet? Well, somebody named Jerry Nichols. There you are. If you let me get to that phone, I can clear everything. No, you don't. Stay right where you are. I'll plug you. But that's my partner, my law partner in San Francisco. I only broke in here so I could phone him. He'll identify me. You don't believe me? Oh, I believe you all right. Then answer it yourself. You'll see. Not on your life, Mr. You think I'm out of my mind? But you've got to answer it, Jerry. You don't know what I went through to place that call. You just can't stand it, but... Jerry. You're Jerry Nichols. That's right. So, you see... Jerry! Jerry! Who's that? Turn up that light, you. It's Phillips. Stand over there by the window. I can see you. Go on. Come on in, Phillips. I ran out of gas and it punctured. It happened so fast that for a moment I had no reaction at all. None. I just watched it. I watched Phillips holding his chest with both hands. I watched that giant body twist convulsively on the floor, and then... I still watched Jerry bend over him, then straighten up. Then as he turned, grinning to me, the motion, the feeling came back and what I felt was seizing, overpowering rage, fury. Everything had been through this night. It was like a boiler that had to burst. Well, dead or alive, I just made me a thousand bucks.  What? You're worse than he is.  Maybe I'll get a reward for you, too. A small one. I could feel the bullet land in my side just below the belt and the avenues of pain spread out like the cracks in a hammered window glass. But somehow, strangely, it didn't stop me. I kept moving toward him. He backed away. He was surprised. He was aiming for another shot when we grabbed one. If I got the gun, he got me by the throat.  He stumbled.  I wouldn't let go and then as he fell back, was over the chairs on top of it. He wouldn't let go of that gun. As we thrashed her on the floor, I brought his hand up suddenly and smashed his own gun into his face. Then he lay still. I listened. I listened to his heart. He was all right. I got up gasping for breath. And then I realized that I was all right. Yet he'd shot me. He hit me. I should be lying there on the plank floor instead of that grotesque heap in the shapeless flannel light gun. I felt my side with a bullet that struck. Brought my hand away. There was no blood on it. Yet there should be blood. I touched the spot again. I fingered the contour of something's broken. Then I fingered the contour of something's small and hard and round. I pulled it out of my watch pocket, batted with a slug that struck. It bent almost double. A nickel! A nickel! The 20th part of a dollar all a man needed to buy a cup of coffee to make a phone call to buy a fine in a kangaroo court to save his life. And I'd had it all the time. I'd had it all the time. I'd had it all the time. Yeah. First, get the Lansing police station. Will you, operator? Lansing police. Yeah.  You're going to live. And I'm going to be in court with you. Yeah. But I wouldn't give a plug nickel for your chances. Presented by Autolight, tonight's star, Ray Melland, in chicken feed. Say, Mr. Melland, in a recent movie I saw you as a baseball pitcher. Yes, that's right. You as a pitcher and Paul Douglas as a catcher made a wonderful battery. That sounds like a lead in for me to say that Autolight makes a wonderful battery, too. You can say that again. All right, I will. Autolight makes a wonderful battery. Right, you are, Ray. It's the Autolight Stayful that needs water only three times a year in normal car use. Made by Autolight, makers of over 400 products for cars, trucks, airplanes, and boats in 28 Autolight plants from coast to coast. Autolight also makes complete electrical systems for many makes of America's finest cars. Batteries, spark plugs, generators starting motors, coils, distributors. All engineered to fit together perfectly, work together perfectly because they're a perfect team. So folks, don't accept electrical parts that are supposed to be as good. Ask for and insist on Autolight, original factory parts at your neighborhood service station, car dealer, garage, or repair shop. Remember, you're always right with Autolight. Next Thursday for suspense, Dorothy McGuire will be our star. The play is called Last Confession and it is, as we say... A tale well calculated to keep you in suspense. Tonight's suspense play was produced and edited by William Spear and directed by Norman MacDonald. Music for suspense is composed by Lucian Morawek and conducted by Lud Bluskin. Chicken Feed was a radio play by Lawrence Goldman. Ray Millan appeared through the courtesy of Paramount Pictures whose current release is Top of the Morning starring Bing Crosby and Blythe and Barry Fitzgerald. Don't forget, next Thursday same time, Autolight will present suspense starring Dorothy McGuire. All batteries, Autolight resistor spark plugs, Autolight electrical parts at your neighborhood Autolight dealers. Switch to Autolight. Good night. This is CBS, the Columbia Broadcasting System.


This here usually is heat build up from the defrost. I got the direct injection. Yeah, it's hitting on something.  This video is brought to you in part by TrueTech Tools. Quality tools, essential support. All right, so let's take a look, see what we got here. I was told that this one has a bad fan blade, so we brought it with us. At least these are beacons. That's a lot better than that last one I just worked on. And it looks like it's a beautiful negative five degrees in there. What they had is one of the fan blades was broke and now we have one that's stuck because I don't think it's properly defrosted. See if we can get this thing into a defrost and kind of go from there. Normally I'd recommend they block off the opening.  That way it pulls from all the coil, not just from this section. And obviously we got a problem there with that. So see if we can put this thing in a defrost. I don't have beacons memorized, but they're not bad. I kind of like them. We got the front off here. It shows we're right at a negative four. We can go into the monitor section to see what we've got going on. Hit monitor. There's super heat. Hit enter. We're at two degrees. It's a little on the lower side. So here's defrost temperature negative 16. That should be the sensor. So we'll go through some of this stuff here in a second. Let's go ahead and get this thing into a defrost. I want to run it into that. So set defrost in temperature, DFT. That is going to be under program review. I kind of want to know are we having a problem with its setup that maybe that's causing some more issues. Defrost, save time, then it's 30. That's pretty safe. DFT in temperature 60. Probably not a problem with that either. I think what we've got here is we're just barely even sloped it off and strained. We can go 65. Force defrost. Pump down. There we go. So much simpler than that other board I had yesterday. This here usually is heat build up from the defrost. I mean it's defrost terminations at 60, 65 and 30 minutes. That's pretty common. There we go. This will give us a chance to see whether or not our defrost heater is working. Also let us know if our drain heater is working and stuff. So we're going to go ahead and yank that out. I don't think that's even hitting on anything. Let's find out. Yeah, it's hitting on something. That's why it wasn't spinning. Luckily these motors are pretty good about being resilient to those sort of things. There's no ice in here other than that one little spot. I see why they didn't block it off because we have chambers right there and there to keep it isolated and we have no ice build up in here at all. So we're looking pretty pretty good. Just got to change that blade honestly to make sure some of these wires aren't rubbing into anything. Probably going to be fine. I don't see any ice in any of these other ones either. Must have been something left over from maybe a bad defrost before or something like that that maybe was fixed and somebody just didn't clean up the mess afterwards. Kind of hard to say honestly. All right, so we've got our door jam here, doorjam.com. I bought one and they gave me a couple extra. You got to be careful though when they're that tight. It can cut it. I mean it's not indestructible but it's usually pretty tough but you got to watch it. But doorjam.com guys these things are pretty awesome. Plus it tells them you know not to close take it away and remove it. That's the big thing. Let's go ahead and get this other one in there real quick because obviously defrost's not going to last for so long. We're at 45 already so it's going to be kicking out of defrost here real quick. Somebody lost the nut on that one. That's not good. Got a little bit of crackage there. And what I'm seeing it looks like the defrost is set correctly. We don't really have anything going on here. It feels like that defrost heater right there is working. I'm not going to put my hand dead on it but I think you know what here's that ice on the side again. It may have been running a little too long so maybe we need to lower the defrost. That way it shuts off a little sooner because like right now that coil is completely empty and what happens is you build up too much heat in there and that's going to cause the build up and so we may change that defrost termination a little lower. They got a cooler in front of it so that's going to condition the space before they get in here. It might be able to get away with less defrost. Once it goes in defrost the more money is saved because you're not using enough energy to do it because you know you've got to use electricity to bring the temperature up. You got to use energy to get the temperature back down. I think I'm going to go ahead and pop all these out and make sure they're all clean because actually otherwise I have a bad feeling we're going to get a repeat call on it and that's the last thing we want. The only thing you could do is go out there and hit that with hot water then you get to wipe it off really good. I'm judging from where the marks are where they had them before. They didn't have it very far into the shroud so I think that's starting to get a little rounded. See 60-63 it's almost up to 65 that I moved it to pretty quick. These things kick on here. See we got a little bit of ice right there on that one and a little bit there so we've really got to make this thing stop. Look here it's doing that. You can see there's way too much heat in there so we need to terminate faster. I'm going to lower that down a little bit that way it doesn't get so warm. I'm going to say that's probably a good majority of what's going on here. Watching it obviously is a huge deal and if we wouldn't have seen that we wouldn't have known what was really wrong with it and I would have changed it and I would have created more problems than I was fixing. Yeah and then that thing's going to wait. I need to see what the drip time is on it afterwards too. Man I'm going to just kill the power to this thing while it's pumped down. Okay we're going to be really careful in this nice white roof. Here is that freezer unit. Once again they love this design obviously. I was looking all over for the breaker downstairs and I wasn't going to find it in time before it just kicked back out so let's get down there and see if we can get that before we fall and kill ourselves on this beautiful roof. We got the power off. Let's see where that defrost temperature sensor's at but you can see where we have got way too much moisture buildup back here. This is ridiculously way too much heat. I think it's the reason why they set that other one in the coil. This one don't have one in the coil. I mean my goodness you can see all that freaking. That's way too hot. There it is. See it right there that green one? It's on the wall. That'd be a lot more useful if it wasn't there. Now here is that other sensor I was talking about. Let's see where it's at right there. So it's taken it quite a while to sense that heat. I mean they're trying to pick it up off of that aluminum wall but I'm just going to lower the temp a little bit. It was 60. I don't think it needs to be probably no more than 45 maybe. 55 is in the arm. We're going to change that once we get the power back on. Let's finish going ahead and yanking these fan blades and getting them de-iced completely because that is what's going on. Unless that temperature probe is off that one's pretty free and clear. That one got a little bit right there. We can knock that off. Oh yeah we're going to need to yank the fan blade out on that one. I like these Inglend 20812. I've got a lot of this stuff down in my description area where you go to the Amazon link. If it's not something you can get at two tech tools I have links for it and Amazon. Yep that's just from yeah because the pan is completely clean. No ice at all in there. Some of that wiped up. I always love people that make 16 trips. If there's one thing I can tell you new guys, get what you need on the first trip. Don't come back before 60 times. So much time wasted. You can see the employees down there making 50 trips and grabbing one box instead of two or three boxes. All right let's take a look at this setup again. Let's change that programming. Let's go into program review. A&E is your type which is electric defrost refrigerant type which is 404. BOT is box temperature negative five sounds about right. Superheat eight SLA which is whether it's master or slave. DDF demand on defrost enabled no. DFN number defrost four. DFF which is defrost sale safe time 30. DFT temperature which I tinkered it wasn't 60. Let's take it down to maybe 53 and hit enter. That's probably not going to make a huge difference but we could we could actually try let's try 50 and enter. There we go alarm high temperature five low temperature negative 15 ALT alarm 10 60 minutes for alarms FC whether Fahrenheit or Celsius. Now we can go into the monitor make sure our sensors are accurate so we'll hit clear hit monitor superheat expansion valve set point zero which means it's closed FCT suction temperature 29 so it's muster released our nuts were to bat now anyhow and defrost temperature 18 that's that sensor on the side DFE defrost elapsed time 20 minutes so 20 minutes is how long it took for the last time defrost temperature that's the temperature sensor self outdoor temperature tells it whether you know it's probably gonna have some low ambient issues AC voltage we are at 26 looking good there this one here doesn't monitor the temperature of the coil which I honestly I believe it would help if they did let's try this first if that don't work we can always come back like I said this is a newer set of stores that we haven't done a lot for so before I go in they're changing a bunch of things and they since they have their own main list guys I don't want to go change in a bunch of stuff see how that goes I don't think I like the pink for everything it don't work real great but it's something clear we're back out of it let's go up on the roof one more time and make sure that our side glass is full oh great that's nice didn't even feel that I can't that's kind of frozen into place you just don't even feel stuff and it's practically numb sure frost bites just make believe right there obviously is our freezer we got the direct injection to keep it cool big monster receiver okay there's your top there's some of your relays for the fans and stuff outdoor thermostat which probably shuts down one of the fans I bet there's your outdoor sensor which I'm always surprised they've got sort of time delay which they've already got cranked down almost to non-existent everything looks pretty normal I mean we can check all these different things but man I don't want to tear in a bunch of stuff I mean you got a little bit of marking there but I mainly wanted to see my side glass which even with these here the side glasses are right there you can barely see them okay they are solid sometimes you got to give it the old licking stick there we go full side glass green at that the other one is also green and full at that so we are we are at least full on the the go-go juice now I feel a little more confident that we can leave without having an obvious callback as always guys make sure you check out these other channels that I post up here in a second make sure you check out Ryan and Steve they both got great channels as far as what we did today we've got basically just an easy fan blade change but we decided to check a little bit deeper into it and make sure why was we having that ice on there to begin with which we found out that determination is a little higher than what you typically need that's going to change based on the environment that it's in the communities that it's in and with this one here they have a cooler in front of it you know it's not got as much humidity but it's still going to have some leave it to potential employees leaving doors open even in the cooler because it's so cold that they may leave it open and cause it to still get a lot of humidity in there but determination we lowered at 10 degrees from a 60 to 50 I was actually going to go the other direction it's actually going to make it worse if next thing I'm going to put on the paperwork that we should probably move it into the evaporator if this doesn't work and then we can go from there I'm going to fill in their facility manager to what's going on that way he knows what's going on communications is key to prevent potential callbacks as long as everyone knows what's going on and they're aware of it in advance before the problem happens that's the best way to deal with it in my opinion if you guys haven't subscribed please consider doing so until next time we'll catch you on the next one later