Hey guys, it's Nate, aka The Foot Accountant. Welcome back to the channel. Happy Sunday and also happy first day of the 2022 World Cup. It is finally here over this next month. It is going to be so exciting following all these games inside of this tournament. And especially inside of FIFA, what we want to talk about today is these Path of Glory cards and potentially investing in them as we expect nations to progress and as we maybe are hoping for these cards to get upgraded based on how their nation does, these cards go out of packs earlier than expected. So I want to take a look at potential buy times of these because I think we might in the next two days have two different opportunities to get invested in some of these cards. If that is something that you were interested in, some of these Path of Glories could be very investable, which could mean some coins later on on the line with price rises as we've already seen from the Path of Glory cards from Team 1 that are going out of packs. I want to talk about that today, but at the same time as we're maybe looking to invest in one corner of the market, we're seeing another side of the market keep dropping with panic selling and prices dropping because Black Friday is still at the end of this week and that is one of the biggest things that is kind of hurting on this market right now. It's an impending issue for a lot of gold cards, a lot of informs. Their prices are probably going to continue dropping throughout the next day and I want to talk about that in today's video and what in the world could we see for content today? Could we see a mini-release or maybe not? We'll talk through that today in this video as well. So if you're excited for it, hit the thumbs up, subscribe if you are new. Let's dive right in and talk about these Path to Glory cards from Team 2 that are in packs right now and talk about investing in these. Well, the reason why we're thinking about investing in these is of course the live aspect to these, right? There's plenty of players in here that are representing some nations that we think will go pretty far in the World Cup. We've already seen some players which represent some certain nations already rise up very well out of packs only in a couple days' time. Think about some of these Path to Glory's from Team 1. Bernardo Silva's up 100K from his cheapest point. De Jong is up a lot. Kula Bali, Karva Hall, Zakaria, Kim Min Jae, Jack Grealish. A lot of these players have risen a lot in price. Now, which ones are rising the most from this team? It could give us kind of an inside look on what cards could maybe rise the most from the current team that is in packs. Well, that's what I want to look at first is the cards that are rising the most from this team number one that has gone out of packs recently are the cards from nations that are expected to do pretty well, right? That's what we want to focus on in investing in this team too as well. Buying from those main nations like Portugal, like Brazil, like Spain, like Argentina, and those types of countries that are expected to do well because A, there'll be more people investing in those which will make the price rise higher and B, I mean, there's just a better chance of them to get upgraded. So in general, you would expect their price to go up higher as well. So I think that's one of the main reasons why a guy like this Bernardo Silva is up so much just because Portugal is expected to do well and he has a higher chance of getting upgrades in FIFA, right? That's the number one thing we want to look out for.  You think about some of the cards that are in team two when you look at the squad and you see a lot of meta-pacey players in here, right? Like Christian Pulisic, you see Lazano, which regardless of how these countries and how these players do at the World Cup, I mean, some of these guys are still going to be very meta and still very useful in the game regardless. You've got a Hulet Ganguretzka, you've got a Papogoma as insane dribbling stats that is very literally perfect for the current meta of this game being as explosive as it is. So you have to take that into account too when you look through a lot of these cards and that's probably helping guys like Bernardo Silva go up a little bit in price because he fits in very nicely to that explosive meta. Same thing with Vinny Jr. But I would just focus on the guys that are coming from those main nations that should do well or just popular players in general in FIFA, right?  Being a card that a lot of people knew his gold card was so insane in FIFA that probably, and I've actually used it, this card is really, really good, right? The 86 rated path to glory. So when we look at who to buy, that's kind of along the lines of what we're looking at. Now, when we talk about when to buy, there's a couple different windows that I'm looking at here. I mean, we are expecting these cards to rise up because they're alive. But again, the question is when, right? Because we've got a couple things to look at in the market right now as it is a lot of prices are continuing to drop because of the Black Friday panic and people are getting worried about what is to come with Black Friday. Now, today on Sunday, I would expect to see a little bit more pack supply. Sundays have been days in the past where you've seen some low prices on promo cards. Path of Glory team one was decently low last Sunday as well. Yesterday on Saturday, we had a lot of packs added to the store.  While I don't think we'll get another one of these untradable foundations packs today on Sunday, I do believe that EA will put out more of these promo packs since they expire today at Content Drop and that's just what EA do. During the weekends, they drop promo packs because they know they can make more money, more people are on the game opening these, trying to get the brand new promo cards that are in the game. So we could see a little bit of supply from that hitting the market today, but also what you have today is people finishing up their weekend league games and Sunday nights on the market are usually a pretty low time in general. So Sunday night is like the first buy opportunity in my opinion for a lot of these cards, especially if you're looking to buy them and hold onto them for a while. Now the other buy opportunity is we're gonna look at tomorrow on Monday because this one's really cheeky by the way. Of course on Monday, we are expecting to have the 89 max overall. Like we talked about in yesterday's video. Make sure you go check that out if you have not. The 89 max overall, Kiro, World Cup hero, Upgrade SBC and just like we've seen with the base icon upgrade, the one that we had last week. I think, did it expire? No, it's still here. The base icon upgrade that we had from last week was one of the lowest times for the Pat the Glory cards from team one because both of these SBCs that you had to do to get the base icon done gave out tradable pack supply. So you had the combination of maybe people selling some of those Pat the Glory's last week and the supply hitting the market from this SBC. Could that same scenario take place again tomorrow on Monday? I think it is very, very possible. So two kind of scenarios between today on Sunday in the evening into tomorrow with content for a lot of cards in this game, it might be a really good buy opportunity to snag some of these Pat the Glory cards. Now, if you're buying any of these cards, right? Let's say you want to go out and let's say you want to buy Christian Pulisic because you think the USA is going to rock out against Wales and you think they're going to ball out and yeah, no bias there. But let's see, let's say USA win 2-0 against Wales and that's a game that would be a statement game for this card and really, really improve their chances of getting out of the group, right? I think that would move this card's price up even tomorrow, right? That would be a card that I would expect to move up after the game. Now the game is not until after content. So that, of course, you have to think about things as well. Could there be a dip before the game and then rise afterwards if they win potentially, right? Could he also, if Wales win with his Pulisic card drop? Absolutely, because that would make their chances of getting out of the group a lot less with being down three points to Wales right off the bat. So that's the risk with these cards but also the potential reward, right? You kind of see how that scenario fits in and how these cards are even gonna move as soon as tomorrow. But I would really look to buy some of these cards. You know, if they've got a game that is tomorrow and Monday, like so, Kyle Walker or Pulisic, I think, yeah, you've got Cool to Bali and you've got the Young as well. These are the cards that I would look at first today because if you see a big price drop or honestly any sort of price drop on these cards today, it could create a pretty solid buy opportunity and a buy window for them to rise up into the pre-game hype. We've already seen some of the players that have games as soon as tomorrow, like Cool to Bali, like the Young, rising up faster and rising up first, I think just because people see that, oh my goodness, their game is coming really soon and that just means they have a potential to play and a potential to win and get closer to an upgrade. So when looking at these cards as well, you might need to prioritize some of those guys first but for the rest of them that play later on in the week, I think that Monday looks really, really good but I know there's a lot of FOMO, right? There's a lot of fear of missing out and buying a card and buying the card at the best price possible. Nate, when's the lowest gonna be? Well, I'm here to tell you this. Let's say, let's use Pulisic as our example again, right? Pulisic's graph has been between about 85K and 79K. The lowest that he's been was 79,000 coins. He was just back down there again like literally 25, 30 minutes ago and I was checking his price and now he's 82K again, right? You know, if you buy Pulisic at 79,000 coins or if you buy Pulisic at 82K and USA win and his price goes up to 95,000 coins, does that little difference matter that much? Not really, right?  On a more expensive card, right? Let's say you wanted to buy Leon Gretzka. I'm just doing at a price here, right? Right now he's 970, that's the lowest that he has been. Let's say his lowest point is 920,000 coins later on, maybe tomorrow and Monday, and let's say you bought it like 950. Well, if this card goes back up to 1.1 mil, are you gonna care about that 30,000 coin difference? Probably not, so just to take a little bit of the fear out of it and to take a little bit of the pressure out of it, I think any time between today and tomorrow, you find a price that you like, you see the card go down a little bit, pull the trigger if it's a card that you want for your team, you think they're gonna do well, then really have no abandon with it. Now, if you're gonna watch those games and watch during the World Cup and let's say like we've used it as an example in yesterday's video with a little bit of an investing opportunity, let's say Iran scored first against England, right? Let's just say they scored a one-off goal and England go down, then you're gonna see this Kyle Walker probably hit a new low because there's going to be a little bit of panic selling. Even though you'd expect them to win later on down the line, that could be a great flip opportunity too. There's gonna be a lot of fluctuation with these cards. So I think that between today and tomorrow is a great opportunity to be looking into this, looking at these cards and again, do a little bit of research, figure out which ones you think have the most potential rise based off of what team could go the furthest along the tournament or which card maybe is undervalued for the meta of the game as it sits right now. But I just think in general that with the World Cup games starting today, with the hype starting today and then tomorrow and as we go on throughout this week and these cards, as we have said, leaving packs early, I think the next two days are going to be a good opportunity to get in if you want to invest and if you want to gamble a little bit on these cards that are in packs. Now, speaking of these cards that are in packs, are we gonna get any more of these in packs today? Because usually on Sundays, we see a mini-release and last week we had a mini-release, right? We had the Kim Minjai, the Zakaria and the Canadian guy, right? So today we're thinking, okay, could that possibly happen again? I think there's a potential for it but I also think that there might not be a potential for it because of the exact same thing that we just talked about with only having these cards in packs for what is it, five days instead of seven? They're leaving packs on Wednesday. That means if EA put a mini-release today, those cards would only be in packs from today on Sunday until Wednesday. That's three days of supply. That's not a lot. And I think that maybe EA's, I think EA has covered every single nation so far with a live card via Objective SBC or in packs. So I think there's probably, I wouldn't expect to see a mini-release today unless we see some leaks. Now, I would give it like a 50-50 shot, I guess, on whether we get a mini-release today or not. I feel like we've got all the cards that we were supposed to get in the packs and in objectives and stuff. So I am not expecting a mini-release today. But again, I'll give it a 50-50 shot because it's EA and you never know. And they maybe want to sell a few more packs before the Path of Glory cards go out of packs. So we'll just have to see what goes on there. But that's something to keep a watch out for for today's content. There's no leaks regarding that. There's also no leaks regarding today's SBC. But if you remember, EA have also said that we should be getting these World Cup Hero cards via Objective and SBC. And I'm sure a lot of you guys remember because some of you have completed the SBC. But the Robbie Keane Foot Heroes World Cup SBC was dropped last Sunday. And this was a bit of a surprise. We had the leak heading into it. We do not have any leaks right now. Again, I will say that. But I just wonder if there could be another player SBC today, whether it is a World Cup Hero or whether if it is a brand new version of a Path to Glory. Of course, we had the Anaki Williams yesterday, which does not look that great of value. Although it is very pacy. You got a three-star week-foot upgrade instead of a four. Of course, he switched nationalities. And the price here, I think, for a lot of people just isn't the best. Of course, expecting him to not get that many upgrades. But it does expire in six days. And if you think about six days from now, that would be after Ghana's first game. So you might be able to do this SBC after you see maybe if Ghana were to draw against Portugal and get a point. Well, maybe there's some opportunity there, depending on how the other games go. So that's an SBC you can kind of sit and wait on if you really want to. But I think a lot of people are not very happy with that. If you go look at Footpin, it's got a lot of downboats. And I think for decent reason, there are some downboats there on that SBC. So content today on Sunday, I would expect to play SBC, but who knows in all honesty, the store pack should refresh. And then we'll see if we have anything else other than that. Again, we think that that World Cup Heroes pack is gonna be tomorrow on Monday. If it were to drop today, then that would be absolutely nuts. And you would see a lot of panic on the market. And honestly, if the World Cup Hero pack drops today, the max 89 rated, then today would, in my opinion, be the day to go out and buy a lot of cards because you'd probably see a combination of panic and supply that after rewards rise on Sunday night into Monday morning, like we usually see, then that will be the definite low point for that. But we'll kind of cover that when we see it. We'll be streaming today. So we'll be covering that content drop today, watching the market, of course, as always. Now, speaking of the market once again, as we talked about a couple of days ago, the Black Friday window of panic is probably opening and I would say that it is opening, right? I'm using the Mbappe as the example here. 1.08, 1.079 is Mbappe's current price. If you take a look at his graph and if you've been tracking this price at all, you know that it is dropping, right? Mbappe started the day yesterday at 1.13, slowly falling all day down to where he is. Now, I think that there is more drop on the way coming for some of these meta gold cards that are gonna get supplied a lot for Black Friday and probably for the Informs as well, right? We had a crazy Mbappe spike over the week on a Friday with this Informs card and the new meta changing and now he's kind of coming back down as one of the most popular cards that's probably gonna get in best of team of the week as we start to think about cards that are gonna be in that same thing with Neymar, right? Neymar was 1.16, now he's 1.11. So you're seeing the market start to drop off, especially on the golds, especially on those Informs but also where I'm seeing a lot of price drop right now are on some of these World Cup hero cards. Look at Landon, Donovan, 259. Now, I think some of these World Cup hero cards, as we've been saying since yesterday, were a bit overvalued anyway. I think these guys didn't get supplied enough on Friday compared to the first team of the World Cup heroes that started very cheap last week. I think, wow, Captavia is 2.29. That's crazy. Crazy what a drop he's had today. You know, it makes sense on one hand, but it also is kind of crazy to see how much these guys are dropping. I think what this drop really is, it's a combination of panic for that Max 89 Hero SPC and it's just, especially for the cards that are impacts, again, these World Cup heroes are, sorry, impacts the first time, but the World Cup heroes from team two just finally getting some supply and getting sold off a little bit from Weekend League. That's why you're seeing these prices drop a good amount. In my opinion, Joe Cole is 300,000 coins. Goodness me. That was a 350,000 coin card yesterday at content. Really didn't move that much and it's just kept dropping since then. So keep an eye on these cards. They are very rare, so they might be flippable in terms of a trade. That Joe Cole card is one that I know and I've watched him be pretty rare on the market, but he hasn't had as many fluctuations as I would have liked him to have. So it's not been a card that I've really been successful in trading with that much yet. You know, like even Brolin was like 600K all day yesterday and right now I believe I just saw him at like 530. Like that's great. 520 even, is he going even lower right now? 531, like that's crazy to see the dropoff that you're seeing right there on that sort of card. So speaking about that SBC once again really fast, just to take a quick look at fodder, you know, we've got fodder cards just continuing to kind of hold their price and go up as people anticipate this SBC and maybe stock some cards in the club every single day that we get closer to it. Honestly, what I would say guys is put one or two of these in the club if you need them, get the fodder that you would potentially need to get a Max 89 Hero SBC done, couple 88s, couple 89s and then fill your club with maybe some 85s, 84s. You know, I think around two to 250 it's going to be the price for this SBC. It might be a little expensive depending on the packs back though it'll be a gamble a lot of people want to do. Again, we talked about that in yesterday's video if you want more analysis there but yeah fodder is just kind of holding its own even with that little bit of supply that we saw it's just kind of holding its own and sitting there and people are just waiting for that SBC to drop and then we'll see what happens based off of the price. But the last thing I want to talk about is just back to my first point about investing in some of these cards World Cup Path of Glories. Their price is looking okay on a drop today or tomorrow for a buy time with the market dropping for Black Friday some of you guys might be like Nate, aren't you worried about these guys' prices dropping even more? Well, yes and no. No, because take a look at guys like Anthony wants to watch. Yeah, he was 360. He got panic sold with the first panic selling heading into the World Cup content. But then look where he's at now, back to 370. Like he is the highest that he has ever been. Of course, this card is still live and still gets upgraded when Brazil win a game in the World Cup. He will get a plus two and that's why there's hype. But you take a look at some of these other OTW cards like Rutiger, 550K. This guy has only been going upwards his whole time and he's been out in the game, right? It's all because they are still live and they still have hype for upgrades. That's why I like these cards and that would be the last point that I'll leave you with is I like these World Cup Path of Glories because they're alive and the minute that they don't become live yes, that hurts them a lot and that means that they can drop off in value. But until you get to that point you're looking at cards that have a lot of hype because they're alive and these games are starting today and it's the best because the World Cup is finally back and it's finally here and we're all super duper excited to watch the games starting today on Sunday and of course follow that along with some content in FIFA. I mean, last thing here in the video is content today. Hopefully some sort of like welcome to the World Cup or the World Cup is here, SBC and FIFA. That'd be great EA sports. Kind of acknowledge that. I know we have the showdown for the game tomorrow. Maybe some more showdown leaks coming as well. I think that these would drop pretty consistently during the World Cup as well. Hopefully the next games we have they choose a little bit better player selection but still nonetheless those showdown SBCs should be pretty good. And I lied, I got one more thing. Last thing is all the trades from yesterday. We made a really good amount of coins yesterday. Had some times to trade. I bought this Carlos Alberto at 650. I bought all these Gomez at 420. He actually ended up going higher but I sold him for the quick flip. It took the coins. I bought this Alawarian at 640, made like 12K there. And then I had some tax losses. I bought some Captavias at like 245. Sold him at 249 with Joe Cole as well. Bought him at 340, sold him at 350. Bought some Crosco in the 130, still the 147. Bought a Pulisic at a 79K. Bought it 80 or sold at 87. And I bought a bunch of Lozano at 179 to 181 and sold most of them for like 194 to 197. So some really good flips. Really good time flipping on the market. Yesterday made a lot of coins back. Still building that coin total up and up and up. And hopefully we can continue to make coins this week with some of these path to glory. But if you enjoyed this video today, smash a thumbs up on a comment down below if you have any questions. And of course, subscribe if you're new. Happy first day of the World Cup. It's been Nathan Ford account. I'll catch you guys later. Peace out.


Oh, good morning, everyone. How's everyone doing? Having a good time? All right. My name is Michael Hartle. And I am the author of the Ruby on Rails tutorial. And how many people here have read somewhere all of the Rails tutorial? All right, we got a packed house. Awesome. Thanks for that. I'll send your check later to compensate you for filling it out here. So I'm here to talk about 10 years of Rails tutorials. So what that means is we're going to look at the development of Rails itself through the lens of introductory tutorials. So the story begins when I was in graduate school at Caltech in Pasadena, California. So when I was at Caltech, I taught the physics core curriculum for five years and had a lot of success as a teacher. But I decided while I was there, I got interested in entrepreneurship. So as preparation for becoming an entrepreneur, I decided to learn how to make web applications. I figured that would be a useful skill to know. Little did I suspect at the time that my first successful company, after two failed startups, would be making a company to teach people web development. But those were primitive days, though. So I actually dug up a picture of what web application development looked like. At that time, it was like the early 2000s. This picture here. So what you do is you spread some HTML on your text editor and you press it into the web browser and then send it back to the user. But seriously, it was really quite primitive. But my first web development language was PHP. And stuff like this, you would just echo out strings to the browser as HTML. It was, you put in RossQL. It was really early, early days. So I learned PHP, built a couple of projects with that. And then I was looking for something a little more structured. And so I found this thing again. This is what things look like back then. This is something called Zope. I'm guessing that very few people here have heard of this. This is a framework written in Python, which is a lovely language, similar to Ruby in many ways. And Zope was good for making things like a content management system. But by this time, I was working on my own startup. And I needed to build general purpose web applications. And so I really felt like there was something missing. Everything out there was working at the wrong level of abstraction. So PHP, at the time, there weren't any real frameworks. There was just the output strings. There was something like Zope, which was great if you were making a content management system, but otherwise, you know, kind of stuck. And it really seemed, it was obvious, that there needed to be some way of making database backed web applications that rendered HTML to the user to care of all the annoying details, things like sessions and cookies and redirects and that sort of stuff. So at the time, there really wasn't pretty much available. So I built my own kind of half baked web framework in Python on top of Zope. And it worked for the startup I was doing. The company didn't work, but that's not because the technology failed. But because of this, because I had gone through the process of making my own web framework, which, like I said, totally half baked, not suitable for public consumption, I was in a position to appreciate all of the problems that Rails was solving. So when Rails came out, when this 15 minute blog, original little movie came out, I was ready for it. I understood the problems that it was solving. I understood how difficult it was to put everything together, and I immediately appreciated that this was something special. Really was a revelation at the time. Now, it's easy to forget this. You look at some of the things that Rails does, and you think, yeah, that's just obvious, right? Everyone does that. No, that's not obvious. A lot of the things that look obvious were done by Rails first, or was the first to popularize it. It looks obvious only because Rails was so successful in getting those design patterns out to the world. So at that point, it was pretty obvious that Rails was a good horse to bet on. My first company had failed, so I was kind of had some free time to learn a new web framework. So I took a course given by this man, Dave Thomas, and Mike Clark. So I had read a programming Ruby, which Dave wrote, and I took this course. It was really super compressed. Three days, you can't really learn web development in three days or even three weeks, maybe three months, but it gave a nice overview. And so after that, I was ready to read, at the time, it was the only Rails book, which was Agile Web Development with Rails, by Dave Thomas and David Heinemeyer Hansen. So in preparing this talk, I needed a copy of this book, and so I didn't have one lying around. I actually had a second edition, but this is the first edition, and I'd like to thank Dave Thomas for being gracious enough to answer my email and send me a PDF copy of this book. The PDF, though, did not have the cover, so I wanted to track down a cover, so I rolled into Amazon, where you can still buy a first edition, presumably as a collector's item. It's not very useful for the current state of Rails, but there is something else I wanna draw your attention to. It's amazing and a little creepy. You purchased this item on December 5th, 2005. Amazon never forgets. So I read the only book available at the time, and then a couple years later, with a friend of mine from Caltech, I wrote my first Rails tutorial book, which maybe a couple of people in here have even heard of. It's called Rails Space. This was a building a social networking website in Ruby on Rails. To give you a sense of how long ago this was, Rails Space is a reference to MySpace. That was still a really a thing at that time. Now, this subtitle makes it sound like it's about building social networks, but this really was just a Ruby on Rails tutorial that used a social network as the sample application. And in fact, the publisher at the time wanted to call this book Ruby on Rails tutorial, but I thought, no, that's just such a boring, generic name for a Rails tutorial, like why would you do that? So it turned out I saved that title for myself later on. So what we're gonna talk about in this first section of the talk is just how ahead of the curve Rails was. Like I said before, it's the kind of thing that's easy to forget just how ahead of its time that Rails was because Rails has pushed the whole industry as it's gone along. So starting right at the beginning, right with the new project, Rails new project name. Okay, it wasn't actually this, it was this. You just typed Rails project name. It's changed a little bit. But this was a big deal that you typed a command to the command line and automatically generated a full project skeleton. Like this was not normal. This was not something that people did. But it was amazing because you had this standard set of directories and files. It meant you had a place to start. And it also meant that if you looked at a project that someone else made, you had a way into it. You were familiar with the basic way it was put together. So of course Rails solved a bunch of the standard problems of web development that was not a standard thing to do at all. It just put it all together. One of the things it could do is it could talk to the database. So this is what a data center looked like in the early 2000s, I think. This might be the 1940s eniac, but I'm not sure. Things have come a long way since then in any case. So you'd start off and you would create a table. This is a foreshadowing here. But you could talk to the database. You could inherit at the time from Active Record Base. And in Ruby, you could interact with the database. You could persist data. You could pull it out. You could validate data. This is from Railspace. This is from like 2007. So already Rails was doing amazing things. Of course, you eventually need to put something out to the world, so you want to have your awesome website on the internet. And you might even want to say your Kramer number broken image to visit our site. But that's a dynamically generated broken image. Right? That's being pulled from a database somewhere. So Rails let you do this. It let you do things like at user.screenname. Again, you can see how dated this is. This is back when AOL Instant Messenger was still a thing. So screen names were still a thing. I guess people still use it, but not as much as they did back then. So this is being pulled from a database and propagating all the way to the view and is being generated dynamically by embedded Ruby. So having a full-strength programming language inside the views, that was really unusual. So you could also render parcels is the kind of thing that Rails was really a pioneer in being able to reuse pieces of HTML. You could also generate forms. This was amazing. This looks a little dated, but it's pretty close. And again, you could use something like a screen name in the text field to submit it, but if this were editing a user, this would be pulled from the database. It would be dynamically populated. So this was huge to have this all this structured way of building up forms right from the beginning. Of course, you need something in between. You need something to talk to the database, to coordinate with the views. You need a controller in the middle. So this is what a controller looked like in Rails space. Again, like around circa 2007, Rails 1.2. User controller, not quite the same as we would say today. That's also a little foreshadowing. But look, you could register a user with an action. You could redirect. So this was amazing. And you can see how I've gone through these three steps. We had the database interacting with the model. We had the HTML being dynamically rendered as a view. And here we've got the controller. So right from the start, Rails had the model view controller architecture for organizing web applications. This was huge to know where to put stuff. This was brand new for most people who encountered this. So people would just write these horrible scripts with everything kind of mashed together. This gave us a nice way to structure web applications. So once you've made your app, though, you want to put it out there, right?  And this was rough. The end of Rails space, my co-author and I just punted because deployment was too hard. We said, all right, well, you know, you can make a production database. And then you can run it locally with mongrel Rails. I remember that, but most of you probably don't. This is running on port 8,000. That's local. It was too hard to deploy an app. So we said, all right, well, the best we can do is run your app locally in production. So it is a production environment, but if you really want to put it out there, you can do this, whatever that is. Really confusing. So this is a little loose thread that we'll be tying up later on in the talk. So it was amazing, but it was still a little raw in some ways. So at this point, I'd like to build a bridge from the early, early days and go through to where we are today, and then we'll compare and contrast the old and new ways of doing things. So for these examples, most of them will be drawn from my own series of books, starting with Rails space and then going through the Ruby on Rails tutorial. Originally, as Ruby on Rails three tutorial, it's been through four editions. Now, there'll be a couple of examples from agile web development with Rails as well. And specifically, we're going to look at the evolution of testing in the Rails tutorial or starting in Rails space. So this is what a test for login success looked like in 2007 or so. It's actually not that different, as we'll see. Now, I have to emphasize, again, this was a revelation. In my first company, I had spent so much time debugging forms by hand, making a change, like, all right, now I've got to test all these different code paths. It was just a nightmare. I was like, oh, there's something broken production. Great, let me fix it and deploy again. Being able to write a test that would just go through all of the things that you needed to test before deploying, that was incredible. Right at the beginning, we had a way of populating test database, in this case, with fixtures. These are a couple of references to some Caltech figures I had mentioned before my co-author was also a Caltech alumnus, so Robert Millican, Arthur Amos Noise, couple of the main people who got Caltech going back in the day. But it was great, we could populate a database, run tests, then the Rails tutorial came along and I started kind of mixing and matching. One of the things that I used was something called Factory Girl, presumably named for a movie of the same name. So by the time the first edition of the Rails tutorial rolled around, I had a factory user. I mean, you remember exactly what this did under the hood, but you could define a user and sort of populate it in the test. I've also got here a described block. I'm sure many of you recognize this as RSpec. So this was a change from my first foray into the Rails tutorial world. For the second edition, I added Cucumber, which was a way of writing these sort of plain text tests. And I think the dream was that maybe you could get the business people who understood the business requirements to write these tests, and then as a developer you on the back end could do stuff like this. I don't know if it ever really worked out. It's really hard, they're pretty tightly coupled. I think fastening them apart is quite difficult. And so at this point, having gone through these different ways of testing, I realized from the downsides that they didn't always work as advertised. They tended to break when Rails upgraded to a new version. And having a third party dependency made things quite brittle. And so I realized that I'd kind of gotten into this mode where I was just going with what was fashionable. Like people were excited about Cucumber, so let's make a Cucumber section in the Rails tutorial. So for the third and fourth editions, I went back to basics. I said, you know what? All of these fancy testing techniques are nice and they have their place. But at the end of the day, what's really important is to have something more than nothing. Having a test suite is such a huge win. I'm gonna focus on the things that everyone needs to know. So I went back to the default stack. This is Railspace 2007 or so, and here's the latest edition, the most up-to-date version. This could actually be updated even a little more. There are some things here that are showing their age just a little bit, but you get the idea. And I also focused at this point on making integration tests. I felt like, and that was sort of a trend that people over the years realized that web applications are tightly coupled enough that it's a good idea just to test everything at once. So I kind of went back to basics even to the point of going back and using fixtures. The main difference is instead of Caltech references, now there's a reference to the TV show Archer. Yeah, do you want Rails integration tests? Because this is how you get Rails integration tests. So now that we've seen where Rails has landed today in terms of just the testing, I wanna go back and forth and show you how Rails has always been pushing the envelope and staying up-to-date with the latest practices and web development and often pushing them forward. So what we're gonna do is look at some examples of kind of an old-timey way of doing things and then like the sleek new Lamborghini way. So I showed this slide before. This is from agile web development with Rails. Rails 1.0. This isn't Ruby though, what language is this? This, yeah, so this is raw SQL. Some people say SQL, either way, but SQL is the right way. So this is raw SQL and so that's what you had to do back in the early days. You would create a MySQL database and you would run this and so this was, it wasn't great, like the models were amazing. Being able to use ActiveRecord was amazing but this was not great. And yet, very quickly, Rails added this amazing innovation. Migration is a standardized way of changing the database to migrating it up, migrating it back and you could write these in pure Ruby. So as early as Rails 1.2, you could just do something like this. So this is already a Lamborghini. This is like 2007, amazing, you could already do this. So this is what it would look like today more or less. It's changed, it's polished up a little bit but the core was there. And so instead of having to fiddle with a database yourself, you could just do rake db migrate. This has changed a little bit. It's Rails db migrate now, but pretty close. So something else Rails did that was, again, pushing things forward was the asset pipeline. So the picture of me, by the way, on a snow machine in Fairbanks, Alaska, that is the trans-Alaska pipeline running down the road there. So the asset pipeline gave us a way to move the things like images, JavaScript, style sheets out of what was called the public directory back in the day, back in the old-timey way of doing things and then we could bundle things up in the app assets directory. And this was really painful for me because this change happened pretty soon after Rails 3.0. This is Rails 3.1. Just like a minor version bump. And it changed all of the directory structure and I had to kind of scramble to update the tutorial with a new chapter and then a second edition came out in fairly short order. So this hit the Ruby on Rails 3.0 tutorial and kind of made parts of it obsolete right away, but you know how things go. You just got to deal with it.  This was new, this was not something that people did. This was Rails pushing things forward, bundling everything together in a way that made things really convenient and moved the whole industry forward. So there's something else that Rails has been able to keep up with and this is a real benefit of using a framework is security. Security is incredibly hard and if you use a framework that lots of people are using, you can be assured that it will have figured out a lot of these little edge cases that you're never gonna run into on your own until it's too late. So I wanna give you some examples of how Rails actually wasn't as secure as it could have been and how it has kept up with the best practices by making things secure by default. So for example, this is the original register action from Railspace, user.newparams of user. Does this make anyone nervous? I'm so happy for you if this doesn't make you nervous. So what's happening here is we're passing the parameters from the browser or from the user client directly into the model. The problem with this is that if you have, say, an admin flag on the user model where setting it equal to one makes the user an administrator, you could actually pass that flag. You couldn't do it through the web but you could use a command line client like curl and issue a request and turn a user into an admin. This was a vulnerability known as mass assignment and it affected a huge number of the early Rails apps. So nowadays what you would do is you would define a method called user params. So it's a private method down here at the bottom and then you would permit certain attributes. So here name, email, password and password confirmation. In particular, note that admin is not on that list. So if someone runs a curl request that tries to set the admin flag to one, it will raise an error. Another example of this is, again, from Railspace 2007 or so, if you wanted to put in the user's screen name or their full name, you had to escape it out explicitly. This H is HTML escape. So it's only one letter. Come on, how hard is it to type one letter but this is really dangerous because it meant if you forgot to do this and someone put, their name is, this is like a little Bobby Tables in the XKTD, if your name were a malicious JavaScript, you would expose yourself to an attack called cross-site scripting. So in later versions of Rails, they added, well, there's no H there. That's because it's escaped by default. So it's safe by default. If you want to allow maybe some HTML tags, you can sanitize it. This has a white list of tags. Or you can, if you're really feeling lucky, you can make it raw username but now that you're really getting what you deserve, you actually have to type raw to say, really just put this in literally what the user typed in. Probably a bad idea. So this brings me finally to the, maybe the biggest change and which was rest. I'm guessing many of you don't even remember this. So here's a baby anteater showing us how to rest. So rest stands for representational state transfer and it lies with the foundation of the web. And this is the kind of thing that was not well understood in web development, how to use this. So from the perspective of Rails, what this boiled down to was a set of seven standard actions. Index, show, new, edit, create, update, and destroy. So this is a real source of pain for me.  We were able to work in a chapter that covered rest but most of the book was not restful, as we say. So this hurt and this is the way it goes. So let me show you the way this was. You may have noticed this, I'm sure some of you picked up on this. This is the register action. What's that? The old timey way. Here's an even older timey way. This is from agile web development with Rails, first edition, the login controller. What even is that? Well rest taught us a way to think of our applications in terms of resources that were created, or updated, read, or destroyed. And it's amazing how many different things in web development can be structured this way. It gets just a framework for developing a data model. Even for something like this that isn't usually backed by the database, you can say, well, what are we creating when someone logs in? Well, we're creating a session. So the current way to do this would be to say, let's have a sessions controller and then create that session. That's how you log in. So going back to the register example, this is now you do things. What are you doing when you're registering a user? You're creating a user. So you can see this is the user controller but we're thinking of these as users, it's a user's resource. The user's controller now, we have a create action. So it's the same as the session's controller in terms of the name. So we have this sort of consistency that gives us a way to anchor our development. Now if you look at the latest version of this in the end of the current edition of the Ruby Unreal tutorial, it's actually a Formula One, not even a Lamborghini. You've got something like this. User.SendActivationEmail. There's actually activations for users. So how can you do, this is an introductory tutorial and you're sending email? How is that even possible? Well part of it is that Rails gives you a way of composing emails and an interface to send them but in order to actually send the email, you need some sort of third party service. In this case, the Rails tutorial uses SendGrid but this is an example of something that's happened in the world of web development as we've seen a real maturation of the ecosystem including sending things like email. And this is the kind of thing that sometimes just happens as just a part of the natural development of technology but in fact in many cases, Rails has actually helped make this happen. It's not a separate evolution. The ecosystem has actually been driven forward and been affected by Rails. So for example, this is the end of Rails space. I showed this before in the context of how difficult it is to deploy things. Look at our recommendation for version control. Subversion or darks for version control. Why not Git? Git barely existed. It actually did technically exist but I hadn't heard of it and I paid more attention to version control than almost anybody and I didn't know about Git at this time. Git was not a thing but it became a thing and part of the reason it became a thing was because of GitHub. GitHub helped catalyze that. That process of driving Git adoption. So what is GitHub written in? Right, it's written in Rails. So to be able to make a site like GitHub with just a few people at the start couldn't have been done in 2000. You would have needed a team of a dozen people but with the productivity boost given by Rails GitHub could get off the ground. It was actually a side project for the founders. They had something else going on and it then started to take off. I said, yeah, maybe we should work on this side project. Another example that I like to use for my own projects is GitLab. The Rails tutorial actually recommends Bitbucket at this point because you can make private repositories for free which is a good practice because then you're not exposing credentials accidentally. Web apps really should be in private repos. GitLab actually gives you public and private repos for free. So this was originally developed as something you would just install on your own server, sort of a GitHub style application. Now they have that and they have a hosted version as well. Again, GitLab is written in Rails. And so the kind of application this is requires a really mature ecosystem around it and Rails has been a key part of that. And so finally I'd like to show you this here. This slide from the end of Rails space where we just punted on deployment. Well, this was a major pain point but the people in the Rails community pushed it forward. Companies like Engine Yard and Heroku. I watched this whole evolution. I actually went through the Y Combinator program in 2008 with the Heroku founders. They were the star of our class. So when I first met them, they had this IDE. It was kind of like Cloud9 now that part of Amazon Web Services but it was too early for that, it turned out. And so they realized that the major pain point that was out there was deployment and so they decided to make a command line client where you had to push with Git which was, that was completely unhinged in 2008 to require people to use Git. It was so new. GitHub had just gone out of private beta at that point. But because of this ecosystem, again, Heroku written in Rails by Rails developers pushing things forward to the point where before we just punted at the end of a full book and said this is too hard. Now it's literally in the first chapter of the Ruby on Rails tutorial. You don't even do anything before, like at the end of the first chapter, Heroku create, Git put Heroku. So now at this point, not only is it easy to get your work out in front of an audience but everyone can be a rock star. So we've seen where we've gone and where we are. Let's think about where we're going looking forward. Well, Rails has shown over and over again. It's ability to incorporate new ideas and to push things forward. So we can see just at this conference, some of the other talks that are going on, there's some exciting stuff happening in the JavaScript world, for example, and you can use React with Rails. You can use like Rails API, have a Rails backend, the controller and the model and then your front end can be in React. You can also use Rails with Vue.js or with Webpack. So Rails continues to play this central role where if you wanna do authentication, authorization, handle all of the nitty gritty details in the middle as your application progresses, if you wanna swap out the front end, say, or if you wanna use a different way of packaging up your assets, you can. So because of this demonstrated ability over and over again to be able to incorporate new ideas, push things forward, I think that the future of Rails is bright. And so with any luck, maybe we won't be talking about just 10 years of Rails tutorials, maybe 10 more years. Thanks. Thank you very much.


undergraduate program of sociology under Uchukumar Bhuya School of Social Sciences Krishnakanta Haniko State Open University. This is a three-year or a six-semester program. However, the maximum duration within which this program may be completed is eight years. This program consists of a total of 14 courses or 14 papers. Each course is of four credits. These courses intend to introduce to our learners the discipline of sociology, sociological theories, the basic concepts associated with the discipline, research methods, amongst others. It also lays particular emphasis on the Indian society and the sociology of Northeast India. The university develops self-learning materials or SLMs for all its courses which are provided to the learners during the time of admission. These SLMs are available in two languages, English and Akhomya. Additionally, our learners may also avail the benefit of audio-visual mode of instructions. In order to successfully complete this program, the learners, in addition to appearing for the semester and examinations, also have to prepare and submit assignments for all the courses. The guidelines and instructions for preparation and submission of assignments are provided by the university. If you want to know further about this program and its courses, you may check the university website. Thank you.