Ship drydock periods are just as important to fleet readiness as deployments are. Petty Officer Kirk Putnam tells us how USS John S. McCain has taken a huge step forward in its maintenance period. The commanding officer of McCain, Commander Chad Graham, said the crew of McCain conducted deep-level repair and preservation efforts. And by doing it themselves have already saved the Navy more than $400,000. This has been a big milestone for us to be able to get water under the keel, float the ship and see that a lot of the work that they did is holding. You know, it's one step closer to sailing again and that's what every single one of us wants to do is get back out to sea and support the operations in 7th Fleet. Commander Graham said the ship still has a few months of repairs left before they are deployment ready, but the hard work of his crew has already paid off. Petty Officer Kirk Putnam, Yukosuka Naval Base, Japan.


When I grow up, I want to be a rapper. When I'm older, I want to be a doctor. When I grow up, I want to be a policeman. When I grow up, I want to be an intro player. When I want to grow up, I want to be a doctor. When I grow up, I want to be a hairdresser. When I grow up, I want to be an intro player. When I grow up, I want to work with children. When I grow up, I want to be a tradie. When I'm older, I want to be a beautician. I want to work at a pit shop. When I'm older, I want to go out. I want to be a doctor. I want to be a vet, when I'm older.  When I grew up I want to be a dolphin trainer.


Craig, I know Chester's had some good fortune returning the punts and kicks. But he's also put the ball on the ground a few times, too. How much of that is a concern? How much does one way against the other, especially going into the playoffs? Yeah, for sure. Obviously, we trust Chester a lot of going up there and catching balls. And it's not like the ones that he's muffed. He's really had to run up and get a poor punt, which is what we try to teach him. We try to catch everything. But no, we've got plenty of confidence in Chester of going up there and catching the balls. He'll continue to work at it during practice. But it's hard running up sometimes 20 yards to go and catch a punt. And he just knows that he just needs to focus on a little bit more. And hopefully, when we do catch it, we can still get more positive yards off a bad kick. So yeah, like I said, we've got plenty of confidence in Chester catching the ball. I don't mind you just kind of stressed about how playoffs every play is important.  Yeah, I think you said it correctly, Jim. Every play matters to us. Every little detail, knowing the skill set of a guy that they're going to go and block, it's going to be very important to us to get that down. So we'll stress that each and every practice, each and every rep, that it matters. And I think our guys are locked in and focused. And they'll be ready to play. How much playoff experience help? You've got a long snapper who's got the, I guess, played more games than anybody in the playoffs. Brett has too, but Randy has not. How much you put into playoff experience, whether it helps you or not? Yeah, I mean, it does. It's exciting to have a guy like Morgan Cox who's played in a bunch of playoff games, who's won Super Bowls. In fact, he ended up bringing his ring in and just kind of showing it off a little bit. But I know Randy's extremely excited. He had talked about it weeks beforehand that this would be his first opportunity to be in a playoff game. And I know he's ready to go.  The whole big thing is for him is to keep that same level head that he's had all year long and just trust his technique and make some kicks. If Morgan could kind of say, hey, this is what we're striving for, or was it more just a quick move? No, it was just basically probably to show off a little bit. But it obviously is an exciting time for all of us. But it's also Morgan talking to us about, hey, it truly is one play at a time, one game at a time, and we can't look ahead at anything. We just got to focus at the task at hand and compete and do the best that we possibly can. Different, yeah, it is the playoffs compared, you go from pre-season to regular season, to regular season to post-season, just what's the intensity of the level like? What do you tell your guys, what to expect? Oh yeah, I mean, obviously, we're playing against the best of the best. I have a lot of respect for Darren Simmons there with the Cincinnati Bengals. He's doing it a long time and he's doing it at a high level. So we just got to continue to harp on our players that even though it is the playoffs, it is truly every important rep, it counts. We've got to be on the ball on everything that we end up doing. And just to have an even keel at all times, we can't get too high and too low. We just got to go out and do our jobs. And instilling your players that, given how high the stakes are to really be even more attention to detail, getting ready for a playoff game because we've seen so many of these games turn on a special teams play one way or the other. For sure, we end up showing them some clips from last week's wild card games where there's things that are happening that we really got to focus in and lock in of what we have to accomplish. But yeah, we're going to continue to stress that all the time on how important special teams in is at all times. If you know who they're going to have back there at return, they've tried a lot of different guys, has that presented a challenge for you? Yeah, I mean, we've focused in already with the guys on all the returners that they've had. Obviously, when Wilson went down with an injury early on, they've kind of had a mixed bag of returners back there. But 25 Evans, 11, Taylor, those guys could be back there. We just got to prepare for everyone and go down there and make plays in space this week.


This paper presents a novel method for integrating thin film lithium niobate, LINBO3, onto silicon nitride, Si3N4, photonic integrated circuits, PIX. This technique allows for the creation of fully integrated LINBO3 PIX with high precision and reproducibility. The authors demonstrate several applications of their platform, including adiabatic mode conversion, which can be used to connect passive Si3N4 circuits to active LINBO3 components. This work represents a significant step towards the wide-spread use of LINBO3 in photonic integrated circuits. This article was authored by Mikhail Cheriev, Ruining Wang, Anina Reed-Hauser, and others.


This is true there, the complexion is not great, look at all those bubble puff marks. But you know with a flood coast, whatever, maybe a trend, maybe a thing, it can be. All right, there's straight up what's like delivery to me, like a tiger, delivery. Okay, in theory, it should be better. Oh, okay is it still better? Okay, cool. So, I don't know if you guys heard me, but this wrecked web looks like filigree to me. Just these little bits, like this one looks like filigree, tiger-y, filigree. And I don't know if you guys heard me before, but it is absolutely absurd how thin those lines got and stayed. I'm really interested in doing this on like a Labradorite or a countertop, but that will be for another day. I'm going to try that down with Ron Deasy at RK3. Till then, we'll just be doing experiments scaling up, making sure we can recreate the accident, because it's not really a technique till you can recreate it, right? I think so. So, I went ahead and mixed up the same resin we used the other day, stone coat, art coat. It's amazing, looks like this. And let's pour some out into a cup. Actually, I'm going to do two of them just in case. Hey guys, hello, hi, Hawaia. I hope you guys are having an amazing 2022 thus far. Did you pick a New Year's resolution? Can you tell what your New Year's resolution was or is it like birthday wish? Can you tell someone that it won't come true? Let me know. Hello, Jessica. Fantastic. All right. So, in order to try to recreate the same outcome, I'm going to use many of the same initial ingredients. Betty got snow. I'm jealous. I'm going to use the Prism Pour in the same shade, Black Iris. I'm not really concerned about setting it off, so I'm kind of still loading it up. Essentially, I'm trying to set it off. So, it's all good in the hood. And we did notice the other day, because the not still translucent. I didn't add enough yet. I got a comment saying that if I added alcohol, it might thin it out. It did not thin it out. It actually made it a little bit gummier. So, maybe I'll split this test into two and we'll just see which makes it more gummy or more stretchy. Yep, starting to happen again. See that lump just fall off? Ugh, didn't that sound horrible? It's so thick, it's breaking my little mixy ear uppers. Okay, doing more art. That is an awesome New Year's Resolution. Well, eScience is what is on the menu today, TG. Marshmallow fluff. All right, that's about the consistency we had the other day when it was recommended to add some something. Some alcohol. So, I'm going to add a little splishy splash of 91% isopropyl into that one. Oh, it's not helping yet, if it is at all. I also want to add in a little bit of a black acrylic paint. Hello, Sherry. Sylvia, to make it a black color. Hopefully, I can deepen the shade without changing whatever made it work to begin with, but I don't think it is. I think it's still going to be amazingly goopy and we need some in there as well. So, I started with ooh, some Prism Pore by Color Art. I'm adding in some Deep Sea from Mix Media Girl. Both are acrylic paints. Both I don't recommend putting in resin, unless you're trying to get a thicker consistency like this. This is not pour-with-able, right? But from what I'm trying to use it for, it may be just the perfect thing, I think. It was already starting to do it. I have recreated the accident, which means that now I can start testing if I can do that with other acrylic-based paints or if I need to stick to the brands that I'm using right now. And once that test is done, I can go on to do bigger pieces. It looks like straight-up slime. I've essentially, I think, made slime. So, those that are in the slime videos, suck. I'm going to set this aside. I'm going to mix some something, some Milky Way or Shooting Star, into my clear resin. I know I've made too much clear for this piece, but I want to clear coat some of the acrylic pours we did the other day anyways. Hey guys, thank you for coming in and seeing what I'm up to. What I'm up to is basically being innovative. If we're new here, hi. Hello. I'm Erica. And I'm with Artist Till Death.  Usually at 6 p.m. central, except for on Tuesdays. We usually at 2 p.m. central. And we have our co-star. He's napping on his director's chair. I will give him a close-up in a little bit. Look how beautifully sparkly and subtle this Milky Way is. Love it. I guess it would help if I put a flash on. Are you adding heat today? I plan on adding heat. Okay. So, let me make sure I don't have any black paint on my fingers. So, yeah. If you're new here, hi. Please subscribe so that you can help my channel grow. And so you can be of the first people to see my e-science innovations as it were. Make sure you hit the bell so that you get notified sometimes when... Where are we? YouTube likes to sometimes not give notifications. Look at there. Could be a finish all on its own. I would make that a countertop. Would you? I have to be a moment of truth and I am nervous. I'm just popping the bubbles now. I don't want to add too much heat because that's going to thin out my resin and then everything will move. So, we don't want to add too much heat. We want this to be as put in place as possible. It looks like black tar and or slime just straight up. Okay. Moment of truth. I'm so nervous. Why am I nervous? I think it's going to work. Okay. So, let's get some out. I'm just going to wrap it around my hands a little bit. Listen. This is a little bit fun. Okay. I'm not going to lie. This is so fun to me for no reason. Do you guys remember when you were little, you could get like this stuff at like magic shops or at the book fairs and it was like magic smoke and you would rub it in between your fingers and you would go like that and it would like puff smoke. Maybe that's before your time but I remember that. Okay. Here we go. I think it's going to work. I'm trying to... Okay. I need to lift it. This is not easy to wipe off. Wiping tar off your hands is not easy. Check. Okay. I need to lift it so that I can wrap my hands fully around the piece. Yeah. Okay. Now, let's get gooey again. Let's get sticky. It's Woodcraft. Could very well be. I'm just manipulating it into my fingers till it stretches in a way that I think would look awesome and then I'm wrapping it all the way down and around the piece so that it doesn't come back up because if I don't make it attach to the piece, it'll come back up kind of like this one has a curl in it and this one because I moved my hands before it really stuck to the side. I'm going to turn it a little bit. You guys, I think we have come up with a straight up game changer and it wouldn't have been possible without y'all. It's oddly satisfying to watch. It's oddly satisfying to do. Is this what the slime craze is about? Just awesome fun stretching of slime. You don't even need that much. I got to remember to turn it so that it's not all the same every time. So my plan with this piece is to do a whole bunch of this and then probably do the power wash to it so that there's some like peek-a-boo of the awesome. What do you guys think? Could you do one of those nail art pictures this way? So which nail art picture? You're so patient with it. I feel like you kind of have to be a little bit patient with it so that you can stretch it the way that you want it to be. But honestly, you don't really have to hurry because I'm working with a very extended working time resin and it's not even hot yet. I just can't even with those thin lines. My next project is going to definitely be a labradorite because my whole problem last time I did it was I couldn't get the lines to look how I wanted to. Joe, it cures up relatively nice. It will need a flood coat because it's so thick the air bubbles can't really pop on their own. You could heat it but then you risk your lines moving because you're thinning out your resin. So I think the best way to rectify that is to just do a flood coat. String art. I will check that out, Sue.  Like the last ones? Not fully fill it but you know a lot of fill. Right, Jenny? I love some labradorite. I've done it once that it actually looked like what I wanted it to look like but my problem with it, my entire problem with it was that the black lines I couldn't get them thin enough. I couldn't control them in a feasible way aside from like just drawing them on which if you're going to do a countertop that's just not feasible really. I could literally just do this all day. I think you could do a whole countertop. I really do and I already showed Rhonda this technique over RK3 and we're going to give it a shot sometime really really soon. Probably the next time I go down there we'll give this look a real shot on a larger scale. I feel like it needs a few more thicker lines. What do you guys think? Or I think it may actually yes be like Lay's potato chips and you cannot do just a few. Yeah I think I may try it on spray paint with no like flood the pan coat but I wanted to give this a real shot first just to see if I could recreate the results. So a lot of times I'm just stretching it over and pulling it up and over on different areas because it's sticking to the substrate so I can just stretch it and then stretch it and then stretch it and then stretch it. You guys it is still going. Super fine line. Okay it finally broke. Ooh that's a great idea Sue. Putting another layer on top of the different color and it'll look like webs behind webs.  Have you ever seen um Dragon's breath or Dragon's beard can be made? It looks just like that. Thanks Gail. Thanks Lisa. I don't want to do too many of these. I say as I keep going and going and going it's so bizarre I could just keep stringing it. Hey Tim. Okay enough of that. I'm gonna ruin my heat gun if I touch it with this. Okay that was not easy. I'm gonna do just a little bit of heat to try to pop what bubbles I can. That's dangerous. I don't recommend trying to pop these bubbles because by the time they do pop you're gonna thin your resin out so much that all your lines are gonna move. So let's just let them be for now and then um we'll just have to flood this yeah yeah. I'm gonna take this to the dust free zone I'll be right back. Be looking at this. I'm trying not to tilt it at you. Let's coat a couple of the acrylic coasters that we did the other day which is not quite as exciting but it's not fully boring either. I mean a little bit. It's a little bit boring. Alrighty sorry about the delay. So these turned out pretty flipping cool. I'm excited to see what they look like with this. Oh trying it on a tumbler is not a bad idea. I can't wait to see how that worked. So I did these the other day with the Prismpore acrylic paint and with some of Marcy's pour paints as well. I will say that the Prismpore paint seemed to work better for me when they were in conjunction with the Prismpore. Everybody has different things that they like in their resin you know that should be. I think they turned out pretty cool. There is a little bit of texture in some of them where the paint was just a bit thick. However that's not fully abnormal with acrylic pours. It's just the nature of pouring a bunch of thick paint and paints drying at a different speed. So if yours end up doing that don't stress out fully normal. I will say that I didn't expect all these colors to look fun together but they totally do. Are you coming down for the February class? Tyrande? What's the date February what? Really like how these chevron scales turned out because of our I guess paper smush puddle smush. I don't know how to I don't know how to word that but it looks like chevron but as scales and I don't know if you guys know this but as a mermaid I'm down for all things. Ocean F.  Sometimes depending on how thick you pour it takes weeks to fully dry and if you use any kind of silicone in your acrylic you got to do a lot more to it before you can add resin because it'll fish eye and give you a whole bunch of dimples and it just won't be fun. I am not an acrylic pour expert but I kind of fancy myself as knowledgeable on resin but if you guys ever have a question I'm happy to answer with all of the information that I do have. It's kind of hard to see all the awesome in these coasters with the Milky Way on them because I have so many lights in my filming space but just know they look kind of like that but with all the sparkle and adding just a little bit of heat to make sure I pop any bubbles that may be in the resin from initially mixing that's fun. So after having these completely dry I'm going to have to give okay let me let me preface this by saying if I were to just be grading this on acrylic pour ability for the prism pours they dry nicely their shimmer is unmatched and the colors are awesome but the fact that they're translucent or transparent and you have to add so much you have to add so much pigment to them that's going to cost you a banana and the fact that they're all shimmers there's no flat colors and I don't like anything that's all shimmer so you have to have another line you can't just use exclusively the prism pours that's going to cost a banana and the fact that you can't just use them in resin I think I feel like I want to say she sent them to me to put in resin and I don't think that she had intended that to happen because the statement was made that you can easily pour with the prism pour in resin and I don't think that you can so that's going to cost a banana however because we made a new technique out of it I'll give a banana back so I think in total maybe six and a half bananas for the prism pour because I only give you guys my honest opinions and honest reviews I would never recommend something that I wouldn't personally use and I tell all the companies that before they send me anything to review be cool with the fact that I'm not going to lie for you I'm going to tell people exactly what I think hi Saskia from Belgium Swamper I did already do the resin stretching surprisingly it doesn't take that long to do um but it worked it worked again it worked great and now that I've been able to recreate the results I'm going to take it to Rhonda so that we can do like a countertop like a massive scale one oh a seedy tower so you can let things cure for a couple weeks or a week before stealing with resin that's smart I have um a bun pan rack that I'll use for smaller pieces kind of just put them in there keep them out of the way and dust free because bun pan racks come with that handy dandy what's it called that sleeve that goes over it you know what I mean words are hard Rhonda's the ninth through the 12th we will be back we'll be back the ninth through the 12th so I could see us coming down there for that is it a pro class or beginner class pro class sweet I'll go ahead and message her today make sure it's cool I'm sure it's cool but just to make sure it's cool it's amazing how more brilliant colors look when you put resin on them maybe the last one that I have resin for and another thing the cells didn't really stay but to be fair I did mix some water in them to make them fluid enough to pour with so that may have messed with some of the science hey Carrie and Oz happy new year to you too love it when all of my australia friends hop in hopefully the world will open back up and we can come back for another tour in australia we're supposed to have been back twice already but pandemic waste not want not y'all okay as soon as I get this down I will give you guys a flyover of all the posters that we flooded because they look super cool sometimes when there's so much sparkle I can't tell if I've gotten everything or if there's a dry spot I can't be the only one for those that missed the beginning of this I was stretching resin which is using this concoction to kind of create a slime or marshmallow fluff with the resin so that you can stretch it over your piece and create a cool little web that will stay since since I have this I'm gonna go grab I'm gonna go grab I'm gonna try it on something without any resin on it so I'm gonna grab nope I'm gonna grab a coaster spray paint it real quick and say what me what about it what about it well I want to make sure I could recreate it and I did really hate that I had to take off so many pairs of gloves feel super wasteful but it's really impossible to not get everything everywhere here when doing resin stretching or webbing keep going over to make a bowl let me do this first and then we'll see about doing that because that sounds really cool too yeah Milky Way is by resin art okay work up a good little grip I'm telling you that could be finished all on its on what do you guys think it's so retro hi Dolores then the big of the Hampton then the bigs how are you doing I hope you had an awesome new year also also I love that like translucent look love that I'm trying to get another like thank you vamp remind you of graffiti without being graffiti be can look at my this sorry if I yelled in y'all's ear thanks wild art I think it's super cool um Angela it is uh from a paint beat it would be awesome to see you too Sylvia I'm sure we'll be there isn't that fun so pumped about this I'm gonna set this aside so that you can cure you want to try it well Sue was like you should just keep it going and make a bowl I don't know if it'll I mean it's plastic I don't know whoa maybe with different colors maybe I'll just keep this here just do a whole bunch of different colors and build it up what do you think feel like I'm doing like a candy floss it got me all right so we'll just do a hope we got a bubble oops we'll do a whole bunch of colors on this but we'll base it in black so the colors really pop and layering colors in a bowl like this will be really cool because the inside colors will be like colors peek a booing through the black the outside will have a black peek a booing through the color okay now I'm gonna move this before I get it everywhere I've done with these and I'll show you how those coasters look I mean the white version sounds really cool of this so here's how these coasters look in a different light because with all the lights directly overhead you can't you can't really see the all those lights it's kind of taking away from the awesome of the colors but you can see all the colors from the side angle anyways thank you guys for coming in and seeing what we're up to today Bowie thanks you each and every one and so I hope you had a happy new year didn't you good boy yeah yeah you know what so you guys I hope you have an awesome Monday hope you're still sticking strong to your new year's resolutions but if you don't it's okay don't feel bad come back and see what we're up to tomorrow we'll be live at 2 p.m central where we'll do some other fun art stuff you guys are amazing thank you for coming in and seeing what we're up to please subscribe share a video leave me a comment let me know what color you think we should do next time we stretch resin and do some resin wedding I'll see you guys manana you guys are amazing we love you and be kind to one another you never know what someone's going through I don't know if you guys heard him but he said we do the test so you don't have to Bowie who is that was that your dad I know you should go tell him it's dark over there go see who is that I know it you're amazing we'll see you tomorrow bye


and I am a software developer at VitalSource Technologies. The primary office I work out of is in Raleigh, North Carolina, but we've got offices here and there. We're owned by Ingram Content Group, and they're headquartered in Laverne, Tennessee. Today, what I'm going to be doing is talking about a history of a suite of our applications organized around Common Core, and this core dates back to the very early days of Ruby on Rails. I'm going to start out by doing a little bit of stage setting. This here on this chart is a rolled up aggregation of seven different repositories that we have dating from August of 2005 all the way to this past week, showing the number of commits per week. It's not broken up by a repository, this is just like an aggregate number of commits. It presents a substantial but fundamentally incomplete view of what one segment of what our company does. Overall, as you look from the left side to the right side, you see that there's a general trend line that goes ever so slightly up into the right. Then you look just past this area around 2015 into 2016, and you see a giant spike there on the right side of the graph. We're going to take a deeper look at that a little bit later in the talk, but the nice thing is that with these seven repositories we have a lot of history starting from diversion, going all the way through our transition to get. I'm going to start with a little bit of a prologue here. VitalSource does a number of things around ebook publishing. We allow publishers to send us books to build. They can set prices, determine availability, different things along that nature, and then we will sell them on to end users, particularly students in learning applications. My start with this began in, actually I had this wrong, this should be October 2015. We're in the middle of an upgrade from Rails 2.3 and Ruby 187, and I was gaining experience across the app suite by working on this project. One of the pieces that we needed to do was upgrade a lot of JavaScript. Reason being is that the app used a lot of prototype, which was going away in favor of jQuery. We had a lot of the old RJS style linked to remote and linked to remote JS calls and a few other underscore remote methods that we were using. You have these magical pieces that weren't really JavaScript. It was these magical Ruby incantations that became JavaScript in the browser. This led to us upgrading that non-Ruby flavored JavaScript, basically consolidating on one version of jQuery and so on. As part of this process, I come across some very early code, and I run git blame, and that leads to a discovery. Part of what I see is some code from the original maintainer or the original committer on the project that I'm working on. That leads me to go to Twitter and say, hey, I've looked at some very old code today, and this was originally started by Dan Benjamin, who you may know from podcasting fame, and he actually wrote back in. It was a bit astonishing that this code that he had written back in 2005 and had worked on for a little while and substantially the same as when he had written it. I got a bit curious about the history of this. Looking at the code across several of our connected code bases and preparing for this talk and earlier, I've talked to several members of the development team, past and present, and talked to members of the business team who were basically present for the inception and the continuing behavior or the growth of these applications. That's what we're going to talk about today. We're going to talk about team growth and changes at a high level in practices, interactions between the business and between it with developers, code growth a little bit, and then how that code has changed. We're going to go into some code examples, not many, but we'll get to see a little bit. We're going to see how developers in the business interact, and then we'll spend some time looking at reflections and available lessons, and then we'll also talk about some tools that folks can use to actually come at some of these understandings and lessons that they can draw out of their own code bases. As I was putting this together, there were two quotes that came up, one of which was just kind of an offhanded comment, and that was, in the absence of logic, there's history. Then the second one came up a couple of times from two different people, and it seemed like a good idea at the time. In a 12-year-old code base, there's going to be a lot of lessons learned. There's going to be a lot of changes to best practices, what the best practices are going to evolve. You're not going to start out having all of these in hand to start with, but the nice thing is is that this code has been around for 12 years because it had actually been successful for the business, and the business has been successful. That's why we still get to work with it. I'm going to go through the history in four acts. First one is with the appearance of Rails, and David touched on some of this this morning in his opening keynote, but this was the original announcement to the Ruby Lang mailing list about Rails 0.5.0, and that this thing that he had been talking about was actually out there and people could look at it. Now remember, this is before RubyGems was a thing, this is before GitHub was a thing, this was just throwing a library out there and seeing who would kind of grab on to it and go with it. So this is July of 2004. Over at VitalSource Technologies, there's been a series of kind of cobbled together automation steps around building and assembling e-books. It was basically a lot of Java in place, but there was a sense that it was a very limited process and the folks who were working on that were kind of basically overwhelmed with its limitations. And there was also a desire to have a very visual process and so something like Rails coming along actually made it feasible to build a robust web application. So Rails comes in and Dan had actually been experimenting with Rails and he found that he liked working with that more than working with a combination of a PHP front-end and a Java back-end. And so he and another developer, Damon Clink Sales, basically started building. They started building this at the Apple Worldline Developer Conference. I believe this would have been 2005. And they skipped most of the sessions to actually start writing this new Rails application. With Dan focused on writing a front-end piece and Damon focused on writing the back-end piece. Now, looking back at this, there's a lot that we count on in Rails today that was not there. Ajax was new. Prototype and jQuery did not exist. And the Rust conventions that we're so familiar with were not actually part of Rails yet. And what people were used to with APIs were very much around having XML-RPC style or SOAP style or, you know, if you kind of combine flavors and if you look at the original Rails code base that's spun up with this, you actually get a whistle file that comes up in your Routes file, which I found really interesting. The other things that we didn't have at that time is Capistrano wasn't around. So there was, you know, deployments did not have the well-worn path. And so there's a lot of these things that we think of as fully baked into Rails or how Rails applications get shipped now that, you know, had to get figured out. But they got it figured out. And so this is the first commit message. I apologize for the readability. This ended up a bit smaller than I thought. But this is about 400 files from that first pass at the app that got committed back in August of 2005. And what the changelog has is that this was using Rails 0.11.1 from March 27th of 2005. One of the controllers that got committed here was a library controller. We still have one of these in our app today. But as you can see here, that it's still somewhat recognizable as Ruby code and somewhat recognizable as Rails code, but it looks very different than how we might ordinarily write a Rails controller today. So that's the start of Phoenix, which kind of was renamed into Connect in time, and then has more recently become an application called Manage. But there's another application, and that's P2 Services, which is essentially a services layer, and that came along in January 2006. Around this time frame, Rails hits 1.0 in December 2005. Rails 1.1, which brought in RJS and being able to write the magic Ruby incantations that would give you JavaScript for Ajax and the remotes, came around in 2006. 1.2 brought in REST, and the REST conventions that we're more familiar with today started there. Hit 2.0 in 2007 and 2.3 in 2009. I'm skipping over a few releases here. Act 2. Growing the business, the code, and the frustrations that come along with it. Rails marches forward. Heroku gets founded. GitHub gets founded. Passenger comes out, which helps out the deployment story versus... See, if I remember at the time, there was a lot of mongrel in use at the time. And Rails is kind of riding high. It's like, oh, hey, if you're building an app, you're building it in Rails. It was kind of the default thing. Over at VitalSource, the growth of these applications was actually starting to outgrow how the development organization worked. And so there's a tension between building out features versus time taken to go research business problems and answer customer questions and that sort of thing. And all of this ended up being driven, being very business driven and very interrupt driven. And so some of the developers who were present at the time were kind of frustrating to actually get work done. Developers had managers at the time, but their direct interaction with their managers was fairly minimal. The applications grew. And developers typically had areas and tasks of specialization. So it's kind of a nicer way of saying folks got siloed, but folks kind of developed areas of the code that they were comfortable with and areas of the code started developing their style. So you can, you look through different parts of the application and tell, you know, this developer was involved in writing this substantially or wrote the whole thing. The number of applications grew. So Phoenix, that original kind of front-end application and the database layer started in 2005. There were VST models and P2 services, VST models was a way of saying, hey, we're going to take our models and we're going to share them between this code base and the services layer in a third repository. In time, the migrations moved out into their own application called Goose. And then we had a couple of reporting applications for basically providing business data back and that was reporter and Uber reporter. Then a third version of our API layer because P2 services involved two different versions came out in 2010. There's a limitation along the way and that is that the suite of applications along with others that were running Rails were all going to basically be locked together in terms of versions. So everything was going to be running Ruby 187 and Rails 2.3. And the idea there was we only want to have machines that look one way and so if we need to repurpose machines we can shift them to any other application and there's nothing to shift about them. Any application can run on any machine. This started to become a limiting factor because Rails hit 3.0 in 2010. This I'm sure folks who were in doing Rails development back then remember this was the big community merge with Merb. There were also a lot of active record changes around that time. Ruby itself hits 1.9.3 and we're starting to try and get out of the perceived performance hit of Ruby 187. Ruby Enterprise Edition was out around this time too which was kind of a performance-optimized version of 187 that the folks behind Fusion Passengers sold. Rails 3.2 Ruby 2.0 Rails 4 and Rails 4.2 all followed. At the company it's now about 2013 and a new CTO has arrived and not long after there's a new development director as well. And here we start seeing some process and the team is starting to get out of the mindset of shipping everything as soon as possible and more thinking about having very like batched work building things to be more testable. There's much further to go with this and really trying to have the technical management provide kind of an umbrella for development to basically shield them from incoming requests that are important questions to answer but maybe it's like are you happier having folks answer questions or do you need features shipped and trying to figure out a good balance of that. And then we had product managers come in as well so to basically take input from the business about how to shape feature work and that sort of thing, bugs that needed to get addressed, questions that needed answering rather than taking that input directly from the business itself. And so work continued but the upgrades did not. So in time the requirement to have kind of that lockstep that I talked about where everything is going to be on Ruby 187 and Rails 2.3 that got lifted. But as consensus was building to for an upgrade to say hey, you know, we really need to catch up with where the community is at VitalSource bought its primary competitor in 2014. The competitor was Corsmart. They had roughly the equivalent size business as VitalSource did and VitalSource then had to engage in the work of basically absorbing and digesting and changing all the applications to take on this new business. I took about 18 months from 2014 to mid-2015 and that was everything from migrating users you know, picking up new publishing agreements identifying functionality that existed in one place but not in the other and making sure that it was present for what was going to be what was going to exist going forward and then beginning work on a new combined storefront with features that Corsmart had but VitalSource did not and of course Rails and Ruby kept moving and so now these 7, 5 to 10 year old applications, you know, we're still stuck at Ruby 187 and 2.3 and now had an 18 month hit on them being able to deploy. We come to Act 3 where we actually get to the big upgrade. It's Fall 2005 and most of the work of integrating Corsmart has been completed and a plan was made to get the applications upgraded and part of that was our CTO Al, basically he's really an operations fellow at heart once you had to focus on minimal downtime we're no downtime deployments, that sort of thing really avoiding operational impacts on the business where we can and at that time it was getting very hard to get continued support for Ruby 187 and Rails 2.3 you could, there were some corners where you could still get security support for them but by and large that it ended. So the upgrade process got at start and it was mostly a parallel effort across each the applications and it was basically we took it as a step wise progression from Rails 3.0 from 2.3 when that was done we went to 3.1, when that was done we went to 3.2 and to 4.0 and to 4.1 and to 4.2 we did a similar step wise process through Ruby largely interspersed with the versions of Ruby that would corresponded with the version of Rails at the time and that took I think about 7 months to get through everything and get it shipped, tested and out and stable. Some of the challenges that came along with that were mixing urgent work and upgrade work. We had a problem keeping divergent code bases shipable where if we have the bulk of the work on these upgrades happening there was further back changes that would have bug fixes applied and then we had to basically bring those bug fixes forward or we would have fixed bugs in the version and then might have the back port something and just trying to keep all of that balanced out was fairly challenging and further to the fact that these 7 applications all shared a database and so we had to basically coordinate all the cross application dependencies such that the applications could go out in the right order such that they would all continue to function when they shipped on the new code bases or on the upgraded code so some notable challenges with that. There were a lot of things about upgrading rails that kind of forced their hand at 3.0 where there was functionality that came in before 1 that got deprecated at 2 and finally removed in 3. We had to move off of RJ templates to native JavaScript. We had to transition fully to TRB. We incorporated the asset pipeline at long last and then there was a lot of restructuring of active record queries because there had been a lot of work that had gone in with active record in that amount of time and we finally got to take advantage of that. The teams also shifted so what had basically been kind of a few silos here and there there was an API and platform team that focused on backend stuff they had had a changeover in personnel and then that team then grew with some additional hiring and then for the front end applications like Kinect there were additional hires brought in and then there was additional technical management and product management brought in to help those applications as well. And then using some of the lessons learned that we'll talk about in a little bit a new application was started and it basically took database coupling versus API layers and we actually were able to say okay, we're going to not go down that same path. And so when that new product started in early 2016 it basically instead of hooking into the same database it's had the hard requirement of we're going to use an API layer instead and whatever data it needed locally it would save locally but anything that was in the core database Linux had to go over an API and would not actually directly touch the database. And because how Rails is being used has also evolved in that amount of time it's Rails on the server side but it's delivered as a single page using React on the client side and that's been a model for more of our apps that we're using going forward and it seems to be working really well for us. Let's just start getting into some technical culture shifts here and the beginnings of some increased code review culture more collaborative work which is really good. So we come to Act 4 and that is growing the code with a guided tactical approach. The review culture gets stronger earlier and here we come out of we shift our code reviews earlier we don't have a single person to review or responsible for the final sign off and so we're not waiting for that sign off to happen and potentially throwing work back. We start a version 4 of our API layer and here we're taking JSON as the first preference with XML supported for external APIs but as the second choice JSON in our opinion is far more pleasant to work with than some of the large XML pieces that we've been working with. We start returning meaningful error messages with our APIs and we're basically able to take the experience of the earlier versions and integrations and incorporate that into that design. We're doing more opportunistic refactoring now so lots of logic extractions into classes a lot of like oh hey let's set up controllers in this different way we we went very controller heavy with our code early on and so now it's probably closer to what folks would expect more of now and that's more use of surface objects use cases for some of the newer applications and then really trying to only have the controllers handle your interaction with the business object instead of directly trying to do everything as they had been doing before. As part of that we're also moving towards basically treating the API as how you're going to interact with the core data in the central database so I think in time what we're looking to do is kind of get away from having shared models between code bases we're going to get away from having shared migrations that have to run in one repository and then you have to take the copy of the database schema over to the other repositories to get that in sync and then basically anything takes place over an API transaction and then as folks have been using the UI pieces more we're also increasing the amount of work that we do for API and integration work both internally and externally the other nice thing about getting to this point is that each team has the ownership of when they upgrade to new versions of Rails and Ruby and so it's possible for them to update to 2.4 and 5.0 so basically when they feel that they're ready to and want to take that work on the team that I'm working on currently we're probably going to take this work on in the next month or two and then finally we're going to take on a UX refresh of the core application because it hasn't changed a whole lot since 2005 when it was initially written we're going to be increasing our automated test coverage basically filling pieces in development culture is shifting towards green make sure there's tests right code that is easier to test and when we're writing new features let's actually lead with having the automated testing done when that feature ships instead of trying to fill it in later and process wise we're refining we've gone from most teams have gone from Scrum to Kanban and each team kind of gets to iterate on its own practices and how they handle their business in terms of taking new work in from the business where they retrospect putting new processes or taking processes away that sort of thing and in time we're moving some of these apps towards a well-earned retirement our early service layer is due to be replaced with our v4 layer with more up-to-date authentication mechanisms and more restful APIs our two reporting applications that were written against this code base are being replaced with a more capable ETL based reporting application that's being written by another development team and you know essentially we're taking the opportunity to say you know it's okay to let these go we don't have to keep these applications going in order to have the value for the other things that we're still working on so some tools and methods that I think are generally applicable to teams that are working with code bases that are older than say six months or two years or what have you code climate if you use it has a churning complexity graph and so what it can be really neat to look at with this is basically find out what you have kind of in the upper right-hand corner find out and then figure out how you want to dig into okay why are we changing this a lot and why is the code quality suspect for the changes that we have to make and you know accordingly what kind of changes can we make to pull that complexity and churn scored down you know can we extract logic can we you know break apart some complexity into more easily testable things things that don't have to change as much github as code frequency graphs this is for the Phoenix application and if you look kind of on the far right around 2015 on the right-hand side you'll see kind of some spikes there that was where we were doing our upgrade work you'll remember if you go back I'll have it up on the screen again but the commits kind of like we had a big spike in commits but overall the code added and subtracted a whole lot where at least nearly as much as what we had back in if you look 2009 so if you're looking back through your code base you can look at oh what happened around this time frame that necessitated so many changes going on in the code base that's kind of an area to dig into and look at more thoroughly here's another one from p2 services where basically we see a bunch of spikes at different points and so those are also things that we could dig into github also can show you the complete history for individual files so if you go into a tree view for any commit hash you pick out a file that you want to look at and then there's a nice history button and I'll give you a nice graphical look at everything that has happened on that file in that repository and that can be you'll see the commit message and drive into context with the other hashes and see what's going on there I also think it's very helpful to look at project release history so we're using Rails, we use a number of gems we have our own project release history these are all things that we can draw from to basically kind of figure out what's happened in a project and figure out how those changes in our dependencies influences the direction of our project we also have git log and I use this to assemble the commit chart that I put up next but you basically have an incredibly rich tool to just both kind of like dig into your commits by committer you can get a range of commits after a certain date, before a certain date show me the last 100 commits show me commits that touch this file on the command line and it's all incredibly fast but the nice thing is that you can also do some data exports with this and so that's how I actually got to this here and that's you can basically format and export from git log which I'll show you here where you basically define the format that you want to use and then I do a little bit of a clean up after the fact and then I end up with commit lines that look like this as a pipe to the limited file and then I wrote a small Rails application to basically pull all that in and then I can throw that to a library called chart kick which actually spits out this graphic right here where you can actually see what the commits are over time and you can also do grouping by week, by month by thing and then depending on how you import that data you can do some other nifty slicing and dicing with it as well git itself is a very wonderful tool I wanted to get into this for this presentation but I couldn't quite get to it git is a time machine so I could go back to any point in time in these projects and basically start over from how those projects looked at a given point in time so if I want to go back to 2010 and see what those projects look like I could in theory spin those up and my thought there is if you can get a virtual machine using a version of Linux from back then or a Docker container with the right version of Linux you can get the right version of Ruby installed, the right version of Rails installed and then kind of set that code base up as it would have existed at that time and kind of be able to look at things and say oh okay I can put myself back in context for what happened back then that could be valuable to you if you want to say hey where did this happen why did we do it this way and then kind of the bigger piece I should say as big a piece of this for me was talking with folks who had been involved in this from the very beginning or over the life cycle of these applications both from a development standpoint and from a business standpoint they're not always going to be available you may not have access to every participant I got good responses from most of the people I contacted though and that was very helpful where you can talk to folks to get context for why certain business decisions were made why certain code is structured the way that it is that can all be very helpful I do find it very helpful to kind of approach this in a I'm curious manner not an accusatory fashion I tried to phrase my questions with kindness like hey can you tell me about what happened around this can you tell me about what it was like working on this project back when everything was brand new and some of the feedback that I got around this was pretty interesting and two pieces I got from one of our developers Tommy Stokes was that we all learn as we go and get better with time so don't look at code from six years ago as an evaluation of how a developer is now and then you can also look at the code and think that if this could have been implemented in a better fashion or it could have been tested better there's probably a really good reason why it wasn't at the time and that could be because of business requirements and deadlines it could be because of a developer's own experience it could just be general tactical limitation and so some lessons that are available with this and just a thing about lessons available often times we hear like lessons learned but I saw something recently where they said lessons available just because you weren't necessarily guaranteed to learn just that that lesson was available to you so here getting to MVP was critical because there was overwork and we needed better automation tooling and shifting gears to allow external access to the application is something that was kind of a big change for the teams and one that is still kind of rippling out and then the upgrade itself took a long time and that stalled innovation there's always more that we can do in terms of refactoring business logic particularly moving towards a single responsibility principle shared migrations and models have not served as well like for all of us trying to move things intelligently through the application that causes test breakage the apps are overly coupled for how they really could be but there's a joy in writing Rails versus other software development for Dan Benjamin when he started the project it was preferable to writing a hybrid PHP and Java solution and for one of our other developers Rails was the first moment she felt she enjoyed software development if we'd understood where we would be now in terms of allowing external access to the number of customers we would have how much stuff would be coming in we would have looked at structuring our data and our applications a bit differently at the API layer making the errors more clear and descriptive having good documentation not treating every response as a 200 okay regardless of what happens with it is a big one for us we have to keep that in some areas because that's what the expectation is but that's not one we want to keep and I think one of the most important things I'm left with is expect that my present and my prior colleagues did the best work that they could given their knowledge and understanding and circumstances at the time and so I approached this with love and kindness to try and really put myself in the shoes that they were in when this happened trying to understand this contextually and understanding that everybody learns as a project goes on, best practices evolve and new perspectives are going to come in and add distinctness as people come and go on a team but Rails has served us very well for the last 12 years and will continue to do so for these applications and it's been surprising that everything has been as stable as it has been we are changing the UX this is how it looked back when Dan started this project back in 2005 and we are recently kind of giving it a UX facelift and so soon it will look like this and this caused audible gasps when this was a demoed last week people were astonished that it was like oh wow it's changing finally and the other thing that was interesting and I've got just a little bit of time left so I need to wrap up but the business took a big risk Rails was not at 1.0 yet and so they had a business critical need and they took a leap of faith in going with Rails when it would have been very easy to say no so it's kind of with the mix of astonishment that it's gone on so long and it has more potential to fulfill so I have some thank yous to run through really quick but I got some invaluable research assistance with some interviews the software that I used to build this presentation was on Rails 5 and so on and I'm online at base 10 and these slides will be available at walscorp.us slash presentations probably sometime in the next week or so and you'll see stuff when the conference releases slides as well thank you so much I appreciate you all being here and enjoy the rest of your conference


Welcome to Toffy TV. We are here at Finch Farm to speak to Seamus Coleman. We are going to talk to him about how the season has gone and a few other questions as well. So make sure you keep watching. This video is sponsored by One Football. One Football is the app you go to for other later scores that and transfer rumours all in the one place to download the app. Click the link in the description. Seamus, welcome to Toffy TV. Thanks very much. Thanks very much for doing this interview. How satisfied are you with the season and your own performances? I think the season has been in thirds really. We started off quite well and then we had a very disappointing period. As everyone knows about the cup and that and then we finished strong. So it's very hard to say how satisfied we are going on the last ten games. It's been great but overall obviously the cup run is still something that stings badly. The positivity of the last couple of months has been good. Me personally I think my form goes along a bit with what I explained. I started off alright. I had a sticky spell that I had to come through which I always believed that I would. It's not been ten years of highs for me. There's been times my debut was against Benfica. I started off with a low and then a week later it was Tottenham. That's how football goes. You have good periods and bad periods but you can't doubt what you do and what you believe in. You've got to keep coming in with the same attitude and the same work rate. Eventually always things will turn and thankfully for me the last couple of months along with the team it's been much better. Are you fully recovered now from your injury? Do you feel? I feel fine. I feel fully recovered physically as good as I've been before. All the stats show what the sports scientists nowadays we get all our stats and all that show that I'm covering more ground than I had done previous to my injury and my speeds are up there as well. Obviously it takes a while to come back to that match sharpness that just being confident with what you do on the ball and what not. I feel fully recovered and I'm looking forward to kicking on and seeing where I go from here. In terms of the season you just mentioned you're in third. But how important do you think that 17 day break was after Wofford? Cos we've seen to come back really strong and yourself in particular since that. Yeah we did and I don't think there's any magic formula to why it's paid off. The manager gave us a few days off. I think some lads needed to go away and do a bit of searching themselves and realise what's been going wrong. It was a tough period for fans and players alike. I know fans get very disappointed by how the team are doing and get really wound up by it. I'd like to think that we don't just finish a game and go home and make a cup of tea and forget about what's going on. It hurts for a few days and I think that's the way it should be. No, that 17 day break was massive and we came back and I think we were all under a bit of pressure at that period. We all had a lot of answers. We had to give a lot of answers for the way we've been playing. Thankfully we picked up that result against Cardiff and then I think going into that game at Goodison, the fans of Crowd probably could have been a bit frustrated with how things had been going, but I think they took a decision as well to try and make Goodison a fortress again. I think the fans and the players really came together from then on in and Goodison especially has been electric and it's been what I remember Goodison to be. I do know that the fans feed off what the players are doing on the pitch and they obviously need to see positive stuff on the pitch, but they've really came with us and I think that's been a massive turning point as well. It was since the dark, it wasn't the lad, the young lad, the originals who decided to try and do something with the atmosphere and that day it was unbelievable. Unsurprisingly the team responded to that and we've been fantastic to leave since the Liverpool game. What's it like as a player when, at Goodison in particular, the atmosphere is electric? Does it give you that extra base of energy? It definitely does, it really does. It sets you up. Obviously we've got to give them something to shout about initially, but it just gives you that extra half-yard and it might give you that extra bit of confidence to go in for a tackle because sometimes a tackle is all good as it needs to get the place going and it really does and you feel like you're going to win the game and not only for us, it puts the other team in the back foot. You know the fans are cheering whether it's a corner kick or a throw at the opposition after a chair and they're getting up behind it and it's only natural that that feeds on to the players and it's been a massive plus and it's something going forward we need to keep doing. Do you like the sharing? I do, I really do. I'm not sure what everyone's opinion on it is but it was before the Liverpool game I don't think any of us knew what was going to happen just went in the tunnel and then you hear it and I think it's been great and I think it's given the fans a lift and us going out in the pitch too, it's been great. Now that the season's ending, given that the way we're playing. Yeah definitely, I was just saying that last week you probably don't want the season to end and I think with Seventh was achievable again and that's the little things that we need to brush up on was going to Fulham and even going to Palace and maybe getting all three points in them games that's where going in the next season you can't really be slipping up so we've done well enough to get that back in our hands and now we let it slip again We need to brush up on them performances going forward but it's been good. The team spirit seems to be really good at the club now and there's real togetherness with the fans on it but in terms of the team spirit how do you get it to the level it's been at cos as a fan over the past few years I don't know what the dressing room's like but it hasn't seemed to be as good as it is now so what do you put that down to? The manager in Marcel when I've said I touched him this early in the season and I've seen the players whether it was by luck or whatever but they really signed good people which is important that's something when I've been here for so long it's something that's important to see when you see people coming to the club obviously we want good players and we want them to be match winners but sometimes when things aren't going well you need people to roll up their sleeves and be team players and even when things weren't going well this season and people were frustrated we still had a good changing room to the people we signed and I think that's why the team spirit has been so good just the togetherness of the group You're the last of David Moyes era that's playing regularly now and what's that like him? You've seen quite a few managers Yeah well David Moyes for such a long time and then the way football's going you're seeing managers come and go all the time but yeah it's making me feel old obviously being the last of the David Moyes signs but speaking on David Moyes I think a lot of the way he grounded me here he dealt with things he's had a massive impact on the rest of my career and how I see things standards are very important time keeping and all the rest and that's something that I've took forward in my career so I've a lot to thank him for so I'm glad that I got to be part of his management time and I've took that forward into all the managers I've had since A dwi'n fysg ei fysg gwaith yng Nghymru? Ped wonswng i'w asgyf i'w like game of thrones and the avengers and stuff like that no do you know what I tried to get in the game of thrones I always said I wouldn't because of dragons and all this nonsense she's my weak dragons I gave it a go to the disappointment of James McCarty because he says he's never watched it but he's the same don't watch it because fully dragons but I have to say most of the change room we're talking about it and say it's unbelievable so I think I might have to give it another go but at the minute it's not my cup of tea but to get away from football I've got two little girls that I go home and they entertain me or keep me busy for the day so as I've always said family then football that's my life summed up I'm fine Lee Troch and the avengers you're aware of the Paul Rudd story of wearing your truck in your village what was that like to hear? it was mad it was a crazy time in the town they were on a stag do I think in Kili Vegge one of the stag party in Y Medad told them to come down and I think he was wearing my shirt he can't be wearing that around here only one fella can wear that around but it was a great story I've seen it on YouTube not so long ago but that was great Mad story James thank you very much you're very welcome


So this is our tensor screencast. It's quite a nice round number, isn't it? Now we're gonna get into something a bit more about collision rates building on a little bit of things We know previously about speed So we know that the speed of the log obviously imparts a bit of energy to something to get to the activation energy Go by the activation barrier and so on But it also has an effect on the number of collisions that could possibly happen and for this We really need to focus down on what a molecule sees and then where's it moving? So that means going to collision cross-section Messing around with our speeds a little bit to have relative speeds and then figure out something called the collision rate So that collision right? It's helpful so Just once again we are building on things so once we define collision cross-section and Relative speeds for instance the collision rate comes from putting these two things together because Obviously the size of a molecule will depend will influence the number of collisions the speed that the molecules moving will influence the number of collisions So we obviously get that on the previous two. So keep that in mind whilst we're going through some of this First of all, let's talk about collision cross-section So collision cross-section is effectively defined as an area of a sphere or circle and you might be thinking That's a bit weird molecules aren't spherical are they? You'd be right. They absolutely are but they do tumble around a lot So a molecule like this could actually tumble in all sorts of different areas in different orientations And as it tumbles through and moves to a solvent or move through a gas Its orientation will change So kind of on average A collision could be considered spherical because that orientation the molecule is utterly random So on average this doesn't let's don't say that our cross-section is exactly literally like I've drawn here that says It must be a sphere that encompasses the entire molecule. It just means that it can kind of average down to a sphere But to kind of get the link across I'm gonna just draw the molecule in there So if this thing tumbling around It's sort of average look as it smeared out would be roughly spherical So here's a sphere and it obviously has things like a radius. It obviously has a diameter It has a circumference and so on So if we're dealing with this kind of thing you might expect pie to start appearing and so on So let's have a look at what collision cross-section does So here's our molecule It is surrounded by this sphere that we are modeling it as so it doesn't matter what the molecule is We're just gonna pretend it's a sphere and when it goes forward Through a load of other molecules that could collide with it hits them There you go. It hits three flies off. It has missed Three of them and it has hit three of them So as you can see the ones that are really halfway into this kind of This tube here. It's sort of means that the molecules sweeping out Sort of it tubes it or cylindrical shaped area As it passes through these gases. So anything inside that is hit or things aren't So this comes across to our definition called collision diameter So this is obviously the collision diameter and we give it D As a label and that is equal to the two colliding objects as radius is added together or R1 plus R2 That's probably an overly formal way of dealing with it It gets us this diameter and then we want to get the collision cross-section which is defined by sigma so once again we We do run out of Greek letters very very quickly almost as fast as we run out of Latin letters So collision cross-section in this case is also sigma in addition to everything else the sigma signifies So this pi D squared is an area and it is this area. It is slightly outside The radius of this so it's not defined as the radius of one molecule It's defined as the radius of two of them added together. So if we had another molecule here You know its center is outside of that dotted red line It is That distance between them is greater than D the collision diameter So this is how we define it. It's got to be this R1 plus R2 kind of thing going on So let's just Really quickly review that was a very quick one wasn't it? Collision diameter defined by adding the average radius of molecules together The cross-section is from squaring the collision diameter and multiplying by pi So that's just getting a circle. So it is a circle It is an area And then the number of collisions is going to depend on this cross-section and the speed of the molecule And this is what we're going to get on to next So let's have a look at relative speeds Relative speed is what we're interested in this case We've defined kind of root mean squared speed and some other speeds here. We're just interested in relative So we got C. That's our average root mean squared speed I'm kind of the average speed independent of direction here and We want a relative speed of collision because actually if two molecules are kind of coming very closely to each other You know one's going slowly the other ones just coming to gently that relative speed is kind of small If they're coming head-to-head with each other, it's much much faster So here in this case, we clearly have to see this is coming forward at speed C This is coming forward at speed C. They're gonna hit this if You know They're almost not going to touch each other. At least if they do it be very glancing and we can also work it out By sort of a collision thing here. So this is just straight forward pythagoras theorem. If that's See there That's a square root of the other side sums together so It's all right to kind of leave it there for now We're just interested in kind of a sort of a relative speed and we calculate it using more like this equation So I would eight Boltzmann constant temperature pi mu Okay, so where does that mu come from? You may have come across it before But one is just spend some time on that and this mu is the reduced mass So this pops up all the time in physics especially in spectroscopy and when you're interacting two bodies together reduced mass is really really useful But it means Effectively, you and you need to use one number for the mass of something you have two objects interacting with each other You can have a reduced mass. You can just combine them together And you can also kind of give them a center of mass as well So even though this diagram here is like two things rotating around each other You can treat it as one thing and then you can solve it perfectly. So reduced mass is really useful And it's this equation ma by mb ma plus mb Now if you often forget which way around that goes one is multiplied one as I Added you might get confused and think that maybe it's this at some point Again followed Mb you might think it's that way around but think of the units here reduce mass as a mass So it can't be this because we have a mass squared At the top and this well they add so that must be mass So they are now canceling out mass. It doesn't matter what these units are We just need to know that the dimensions cancelled down So do not get bogged down with it thinking always the equation this way up the other way Work out the units. I'm honestly Like so much of physical chemistry if you just look at the units If you all the consequences of the whole reduce mass concept if the masses are very similar Reduce masses about half of what each of the individual values is you I mean you can work this out imagine 20 times 20 divided by 40 What is that 400 by 40 equal to 10 so and then imagine something like a Thousand times one on the top divide by a thousand plus one You can kind of see that that's like a thousand over thousand It's equal to one roughly equal to So the reduced mass is When there's a big discrepancy in masses is Roughly approximate to the smaller unit That approximation will come really useful when you do a bit more physics because think of the atom for a moment a single electron is about 2000 times smaller than the mass of The nucleus or the nucleus is about 2000 times heavier So you can use the reduced mass of a proton and electron or we can use the roof just the mass of the electron They approximate to very similar things So we've used mass gets used a lot in physics. It's really really useful. So do get used to this equation It's what we obviously want for the relative speeds and it pops up so often That is really worth gauge grips with if you haven't already So let's just review that bit Like in the menu of reason we are interested in the relative speeds of molecules and because they can combine together or pencil Pointing together. It's obviously a tire than the relatively just the normal speed if they're kind of glancing Their collision speed is slightly less. We're interested in more the relative speeds of each of the molecules And we calculate that using a reduced mass of the two things together So we have Object a object be colliding with each other We can from their reduced mass and a few other bits of calculation get their Relative speeds. So that's one of the other measures of speed that we are interested in in this case Now collision rate per second. We'll go back to this diagram We have one two three. Well, that's three collisions in a couple of seconds. So What you probably tell us if it moved faster than the rate per second would increase and if it wasn't So here I'm gonna speed it up. Here's the relative collision speed going up There you go much faster you've hopefully the sound recorded the clicks as well there But if we increase the density go back down to the same original relative speed You can hear it go There we go much higher collision speed so all collision frequency, sorry, so we have got two factors that come into this Relative speeds and the density in addition to the cross section so We've looked a little bit of this so far. We figure out what the cross section is We also had a look at what relative speed was and we can work out density based on Partial pressures and a little bit of the ideal gas equation. So what we get is a much bigger Much bigger equation here, but it is still just the three things multiplied together Don't be bogged down by the fact that this looks really huge This is just working out our effort speed. This is just working out the collision diameter And this is working out partial pressures. So this is starting to become something closer to a Microscopic justification for why things go to a certain rate If there's more of them physically more of them that density increases the rate goes up If they're moving faster that increases the rate goes up and if their cross sectional collision area goes up The number of collisions also increases So we do have a few more things to bolt on to this sterics in particular Now let's just go back over this and review All those three points again. So we did collision cross section. That is if we have a molecule here, then it's actual cross sectional area is a little bit outside it and it's based on the radius of whatever else it's I'll redraw that one and make it actually look like it's the right size for that. There we go That is B its center has to cross this line So the area is a little bit outside the mean diameters of each and the relative speeds So that's C rel is what we're interested in because Head-on collisions are going to be slightly faster than glancing ones We really want to kind of get an average of that speed Not one of the root mean squared speeds of all the molecules involved and our collision rate therefore depends on that cross section The relative speed and obviously the density which comes from partial pressure. So multiplying all those factors together gets us our Collision rate constant our collision rate at least So that's it for this one do a little bit more on this in the next screen cast There's a little bit more detail we need to do including mean free path and a few others But we're nearly at the end of this whole microscopic kinetic theory of gases section