Talks
Summarized using AI

Ruby 2 Jeopardy

by James Edward Gray II

The video titled "Ruby 2 Jeopardy" features a lighthearted and entertaining quiz game centered around the Ruby programming language, hosted by James Edward Gray II during the LoneStarRuby Conf 2013. The game showcases three skilled Ruby practitioners, OBD Gri, Dave Thomas, and Steve, as they compete to answer trivia questions related to Ruby's syntax, core methods, standard libraries, and Ruby on Rails. The format resembles the game show Jeopardy, which is humorously referred to as "Peril" to avoid copyright issues. The host outlines the categories of questions that include topics such as 'People in History of Ruby,' 'Syntax of Ruby,' 'Core Methods,' 'The Standard Library,' 'Rails,' and a surprise free-for-all category.

Key Points Discussed:

- Introduction of Contestants: Each contestant is introduced with humorous anecdotes highlighting their contributions to the Ruby community. OBD Gri is noted for his podcast work, Dave Thomas for his influential Ruby books, and Steve for his impact on teaching and open-source projects.

- Gameplay Format: The game follows a Jeopardy-style format where contestants select categories and point values to answer trivia. The host explains rules involving buzzers and the structure of answering in the form of a question.

- Categories and Questions: The quiz features a range of trivia questions about Ruby and Rails, with contestants successfully answering questions about syntax, methods, and Ruby’s standard library.

- Examples and Answers: Contestants frequently demonstrate their expertise with answers like "hash rocket" and "rails new" as they navigate through the categories.

- Tie and Conclusion: The game concludes with a tie score, leading to a light-hearted finale where everyone is applauded for their participation. The host shares a link to the game application for future use by others, encouraging further engagement with Ruby trivia.

Main Takeaways:

- The session emphasizes the fun and community aspects of programming with Ruby.

- It showcases how even competitive settings can foster a sense of camaraderie and learning among passionate developers.

- The interactive trivia format reinforces knowledge of Ruby and its ecosystem while engaging the audience in a playful manner.

- The video exemplifies a creative approach to learning and community involvement in technology.

00:00:17.080 I found Sandy Metz's keynote inspirational and moving. This session will not be that. So, if that's what you're looking for, you're in the wrong spot. We are aiming for wacky fun here.
00:00:32.960 We are going to play a game. I don't want to call it Jeopardy; I don't know if we can do that, so we'll call it Peril. We're going to play with some Ruby trivia.
00:00:53.320 Before we do that, I have to thank my contestants. I basically emailed them, and they said no. I bugged them until I talked them into saying yes and got them to come up here to let me make fun of them on stage, which is so cool.
00:01:07.479 So, help me welcome them. Our first contestant has one thing all Rubyists wish they had: great hair. But no, seriously, more often than we see his hair, we hear his voice as a regular panelist on the Ruby Rogues podcast, as the producer of The Amazing Ruby Toas screencast series, and as the author of many books that help us write confident code.
00:01:22.159 Please welcome OBD Gri. My second contestant wrote the book that changed all our lives, Programming Elixir. You just don't know it yet. Before he did that, he also wrote a book you may have heard of called Programming Ruby. And before that, he wrote a book known as The Pragmatic Programmer. As a signatory of the Agile Manifesto, there's little doubt how much influence Dave has had on our day-to-day development.
00:01:54.920 Please welcome Dave Thomas. My third contestant is a born teacher, and I know we all learn things from him every day in philosophy. When he's not teaching us that, he is usually saving open-source projects, continuing a wise legacy, or triaging Rails issues, among a million other things. I'm pretty confident he does not sleep. Please welcome Steve.
00:02:26.720 The first category is 'People in History of Ruby.' The second is 'Syntax of Ruby,' so things like operators and keywords are fair game. The third is 'Core Methods,' which includes anything in Ruby that you can use without requiring a statement. Any version of Ruby is fair game, up to and including Ruby 2. Then we have 'The Standard Library,' which is anything that ships with Ruby that you can access with a require statement.
00:03:01.680 Next is 'Rails,' which covers any version of Rails up to and including Rails 4, the newly released version. Finally, we have a free-for-all category, and I'm not going to tell you what's in there—just choose it and find out. That's my advice.
00:03:30.320 Here's our game board. So, we have 200, 400, 600, 800, and 1000. I guess we usually choose randomly who goes first, right? Someone write a random number generator quick. Your programmers—come on!
00:03:44.930 What seems to be random? Dave Thomas, we'll slide you in first. I'm not here to answer questions—I'm here for advice on hair care products. You came to the wrong place? Yeah, I guess so. What do I have to do here? I have to start with a category, and at the top, is that right?
00:04:04.220 Any spot on the board except for Jeopardy? That's right. Is it this stupid thing where you have to ask a question as the answer? Yes. I'll give you the answer; you give me the question.
00:04:44.969 Okay, so you are off to an excellent start. Can you explain the RO St? Wait, I have an assistant. I had to bring in an assistant. Do you see my children's toy? I'm a dad, so I solve problems with children's toy ways. This is our buzzer, and Dana is helping me out with that. Dana, give us the rules of Jeopardy.
00:06:04.240 Okay, so basically, you call out the category and the points you want. For example, if I were playing and wanted to play Off Topic, I would say: Off Topic for 200, which means 200 rubies. No, it's 200 Ruby symbols.
00:06:43.680 Okay, so 200 rubies. Then James will read the answer, and all contestants must push their buttons. Whoever hits it first will light up, and the other two will be disabled. That person who has their light on gets to ask the question that corresponds to the answer.
00:07:09.400 If you get it correct, you get that many points, and you get to ask again. If you get it wrong, someone else can repeat until somebody gets the answer or until James takes pity on you and gives it to you. Whoever has the most points wins. Is it cool?
00:07:41.840 All right, let's start gently. I'll take Syntax for 200.
00:08:05.279 The answer is the company named after this operator will be pleased to hear that the rumors of its death in Ruby 1.9 are exaggerated. Steve, what is a hash rocket? That's it. Where does the hash go? Okay, Steve, your choice.
00:08:38.879 I'm intrigued, so I'm going to take Off Topic for 600. Wow, if you're going to do the weird thing, you might as well completely go for it. This is the technique of personally cooking food so that it can be finished later. His lesson treats now. Dave, what isn't freezing?
00:09:38.720 No, not it. Why not? Not? I mean, she read the rules. I understand the rules.
00:09:53.320 Steve, what is par baking or par cooking? We'll take it.
00:10:05.400 Yes, what is par cooking? Steve, again.
00:10:47.200 Let's do Rails for 200 rubies. This is the only command you don't need to prefix with bundle exec. Steve, what is rails new? I think we'll take it.
00:11:27.960 What is rails in Rails 4? Any other command other than rails new has to be bin Rails whatever the command is. Okay, that's a fair point.
00:11:52.240 That's the reason why I said clarification. See, we're all learning things here, including me. Okay, so we will take that. Steve, your choice.
00:12:12.720 I should just push the advantage and go with Rails for 400.
00:12:27.640 If you had a JavaScript event trigger in your application that is misbehaving after the 4, this new feature might be to blame.
00:12:46.240 Steve, what is Turbolinks?
00:13:18.720 Oh, how did he know that? Steve, your choice again. Let's just keep doing it for 600.
00:14:02.920 The routing feature can restrict matches to requests on a specified subdomain or using a given protocol.
00:14:42.640 Steve, what is constraints? Yes, that's it!
00:15:53.680 All right, finishing off with 800. Just keep going. This no longer documented automation will reverse then reapply the last set of database schema changes. Dave Thomas, what is db:migrate:redo?
00:17:20.320 There we go, it's db:migrate:redo. Now, Dave, your choice would you like to do Rails for 1,000? You sure? Because I don't know the thing about it.
00:19:45.120 Yeah, I'm going to get it out of the way. Rails for 1,000. Let me know when it's over.
00:20:47.760 This rarely seen flag to the association macros gives Rails the hint to reuse an in-memory Ruby instance. Oh, see, we took this out and you said any version now I'm like, what is it?
00:22:55.799 Who guesses going once? OBD, what is inverse?
00:23:49.520 There we go, what is inverse? So, inverse of is not out?
00:25:02.640 I thought we were talking about the map.
00:25:06.160 So, don't worry, inverse of is not going away.
00:25:07.679 That's awesome. Steve gave everybody a yes.
00:26:07.480 Your choice. I'll take Standard Library for 200.
00:27:32.490 This library gives Ruby's cryptic global variables much more readable names. What is English?
00:28:16.960 Steve, your choice. Let's do Ruby Standard Library for 400.
00:28:43.360 This library can be used to generate random byte strings of hexadecimal characters, UUIDs, and more.
00:29:09.920 What is SecureRandom?
00:29:36.640 Yes, that’s correct!
00:29:53.640 Right, he said he didn't know anything about the Standard Library; remember I watched Ruby Toas a lot.
00:30:14.480 All right, Steve, does that mean I get half points? Let's do Core Methods for 200.
00:30:49.760 This mixin isn't as popular as Enumerable, but it adds several methods for ordering objects. Dave Thomas, what is Comparable?
00:31:36.240 Yes, it's Comparable, that's right!
00:31:48.240 Dave, your choice. Oh gosh, um, next one down, whatever that is, 400 Core Methods.
00:32:42.480 This iterator was added as an alternative to inject when the same object is always returned from the block. Dave, what is each_with_object?
00:33:26.720 That's right.
00:34:24.160 Core Methods for 600. This method flips some common iterators from greedy to conservative, allowing for the construction of infinite data pipelines. Dave Thomas, what is lazy?
00:35:55.440 Yes, that’s the one.
00:36:09.920 Dave, please come back! That's hilarious; we lost Dave Thomas.
00:37:17.280 We'll add an Elixir category. Dave, we miss you!
00:38:00.080 Do we have anyone who duck types as Dave Thomas? Ah, he went after refreshments!
00:39:10.000 It's definitely debatable if two does allow that. I think it does, but it wasn't the answer I had in mind. For a second, I was afraid you were going to say you were thinking of enum 4, which is an alias that would have been really mean.
00:40:36.520 All right, Steve, your choice. We haven't done any people in history, so let's do that for 200.
00:41:59.440 These were the first two books published about Ruby in English. Dave, I would guess Programming Ruby and The Ruby Way right?
00:43:16.800 That's correct. Programming Ruby and The Ruby Way!
00:43:30.720 You know, this one's interesting because I could not remember which of these actually published first and I did my best effort because I had a suspicion it was The Ruby Way, but maybe I remember that wrong.
00:44:50.440 And I tried to find out, and the internet just does not agree on which one hit first. They were really close, like I think Programming Ruby was published first.
00:45:36.160 Okay, they hit very close to each other in 2001.
00:47:34.240 Whatever you choose next, keep going down there, please. Okay, people in history for 400.
00:48:42.080 August 19th, 2009. Steve, don't T.T. that. That was Dave! So now I have to guess the phrasing you picked. What is Why Day?
00:50:33.440 We'll take that. What is the day Why the Lucky Stiff withdrew from the Ruby community?
00:51:43.800 Yeah, same thing. Why? And there's that.
00:52:56.360 All right, Steve, your choice. Let's do Off Topic for 200.
00:54:05.840 Rising to the challenge 8 dictates that there can be no interference with the internal development of aliens.
00:55:38.480 OB, what is the Prime Directive?
00:56:44.760 That's it! Now what do you mean, that's on topic? All right, your choice.
00:57:49.240 Oh yeah, points for... Up, sorry! Syntax for 400.
00:58:21.680 This operator was added to support method-like parameters but has data in Ruby even after block parameters were enhanced.
00:59:24.080 Dave, what is the stabby proc?
00:59:32.240 Yes, the stabby operator, stabby land, stabby proc—yes!
01:00:47.040 Dave, your choice. Oh great! Let's keep going down the syntax.
01:01:26.520 This abuse of another operator is generally relegated to scripting hacks that involve quick and dirty filtering of data.
01:01:59.920 Dave, are you talking about the flip-flop operator?
01:02:32.640 Well, filtering of data, it's not very nice.
01:03:20.240 Okay, Dave your choice again: why bother?
01:04:00.280 I'll go for syntax again, 800.
01:04:36.160 These expressions have an implicit 2s tacked on their results.
01:05:46.160 Steve, what is string interpolation?
01:06:18.560 That's correct! What is interpolation?
01:07:33.360 Steve, your choice. Uh, let's do Off Topic for 400.
01:08:26.760 Though their motto is 'Live Music Capital of the World', this city hosts a yearly Ruby conference. Steve, what is Nashville?
01:08:44.920 No! Totally worth it!
01:09:24.480 Anybody else want to take a stab? Dave, what's New Orleans?
01:09:42.920 OBD, you've got a shot if you'd like to take it. Yes, Austin!
01:10:50.480 Yes, yes, you are right! Yes, you're right! There was a question mark at the end!
01:12:11.079 OBD, your choice again.
01:14:06.960 Let's go for some abuse: People in History for 600.
01:14:38.720 He holds the all-time record for Rails commits ahead of David Hein, Hansen, Aaron Patterson, and more. Steve, who is Jeremy Keer?
01:15:28.520 That's correct!
01:16:09.240 Jeremy Keer, and Steve, your choice again.
01:16:42.080 Let's do Standard Library for 600.
01:17:32.800 This library gives user-level access to Ruby's parser.
01:17:37.680 What is Ripper? Yes, it is!
01:18:37.360 Let's stick with Standard Library for 800.
01:19:32.640 It got considerably easier to get the size of the terminal Ruby is running in when this standard library was added.
01:20:09.280 What is Console IO? Yes, what is IO console?
01:20:43.280 All right, bring it all the way up to 1000.
01:21:37.920 Not it's primary purpose. This library gives us a great L banker for launching a web server. Oh, man, nobody knows about this one.
01:22:57.080 The examples always use Python. What is gserver?
01:23:47.440 Dave, you want to take a shot?
01:24:29.680 No, I don't remember. No. I don't think this one's even documented in Programming Ruby.
01:25:42.560 I mean, the library is decorated, but this use of it is not documented.
01:26:38.760 What is... This is the one that primarily gives Windows commands.
01:27:30.880 The examples always use Python.
01:28:47.680 What is the programming library?
01:29:58.480 No, I'm thinking of something else.
01:30:24.200 What is abductive reasoning?
01:30:42.220 Thank you all for your efforts! Let's take something from each of you and see who knows what!
01:31:37.960 Let's finish off everyone right now. All right. Last question! Off Topic for 800.
01:32:47.360 This parenting practice aims to send the message that all feelings are okay, even the worst ones.
01:33:54.800 Dave, what is spoiling? I'm tempted to give him that, but no, it's not spoiling.
01:34:29.440 Any other ideas? I have a bunch of vague thoughts, but none of them are cohesive.
01:35:40.160 What is emotion coaching?
01:36:52.640 Another Star Trek reference—yes! So the final explanation, we ended up with a tie at 4,400.
01:37:24.720 Can we give the contestants a round of applause?
01:38:36.820 Um, but this program, it's a Rails port application and it's on GitHub under my name, J2, it's Peril.
01:39:12.680 If you want to check it out, play around with it, use it at other conferences—go for it! You're free to do it.
01:39:44.440 I'll put the game file of this game there up next time there's working internet.
01:40:26.000 All right, thanks, everybody. That's it. Bye!
Explore all talks recorded at LoneStarRuby Conf 2013
+21