00:00:12.200
It's time to play! Through these celebrities, what do they know? Do they know things? That's fine.
00:00:29.630
Thank you! What a great crowd! We don't get this kind of proud Institute every day. This is amazing!
00:00:36.739
So, what a wonderful day out here in Austin, Texas! Today, we're here to answer the age-old question: Ruby celebrities, what do they know?
00:00:50.450
Our next celebrity is the internet spider, Kylie Stradley.
00:00:57.540
Next, we have Matthew Draper, who came from Australia, so everything is upside down for him. He also occasionally works on Rails!
00:01:09.130
Well, hi everyone! Thank you for joining us today. Unfortunately, we don't have time for idle chit-chat because we have entered the small talk round.
00:01:16.110
Now, unless you're a Smalltalk nerd, you might not know this, but Smalltalk, as we saw in this morning's keynote, is one of the earliest object-oriented languages and inspired many languages that came after it, including Ruby.
00:01:26.270
That's why we have this Smalltalk round here. So, shall we get started? You know the rules: six seconds on the clock! Matz, how are you doing?
00:01:41.360
Wake up, Matz! When did you get in last night? Last night? Yes, that's a great answer!
00:01:50.450
Did you fly all the way here from Japan? Yes.
00:01:56.210
So, is this your first time in Austin? No! 10 points!
00:02:04.270
Sorry Matz, it says here that you love... well, that's it for the small talk round! Audience, give a big round of applause for our celebrities!
00:02:12.650
Thank you, Matz! You did a great job. Three celebrities, if I'm counting correctly! For now, let's take a break.
00:02:20.870
After the break, we'll answer the age-old question: Ruby celebrities, what do they know? Do they know things?
00:02:33.480
As you know, the Ruby core team has a tradition of releasing the next version of Ruby on Christmas Day, December 25th. Do you also know which of the following blockbuster movies was released in the United States on Christmas Day, December 25th? Was it A: Home Alone, B: The Nightmare Before Christmas, C: Catch Me If You Can, or D: Solo: A Star Wars Story?
00:02:47.550
So now, let's start with you, Matz. What do you think? Have you seen any of these movies? Yeah? Which one is your favorite? Oh, Home Alone! Do you think it came out on Christmas Day? Catch Me If You Can? Okay. Let's put down the boards now. Kylie, what do you think? Do you think it's Catch Me If You Can?
00:03:20.270
Obviously, I certainly was too young to have watched any of these movies except the last one, because I remember watching Solo. I like you, Godfrey. I'm also too young, so I've only seen the Solo movie. The Solo movie came out this year, right? Yes? That's kind of small. So I guess your choices are limited to the two movies that you haven't seen or Catch Me If You Can.
00:03:40.170
I've regretted this before, but on this one, I trust Matt. Okay, well, let's hear it from Matthew. Also, do you like movies? I do! Yeah, if I put my head upside down, then I think I've seen Solo. Because I'm too old, I think it came out on Christmas.
00:04:00.000
Okay, so now celebrities, I need you to work as a team and come up with a final answer for me. You're two-to-one on Catch Me If You Can right now, but you have, let's say, ten seconds to change your mind.
00:04:27.950
That was ten seconds. What is your final answer, celebrities? I'm going to defer to Matt. Okay, well, Matt, what is it going to be? No idea? It was unfortunately not one of these, but it might be an answer for a future question. Go for now: A, B, C, or D? C! Okay, C: Catch Me If You Can! That's your final answer. Let's see. Your next question is going to be from the ecosystem category.
00:05:41.000
As Ruby users, we certainly have a lot of gems to choose from, right? Like, we have a fantastic culture of sharing and reusing code. So whatever you need to do, there's probably a gem out there for it. And if there isn't one, you should probably write one and publish it to RubyGems. Now, with so many gems available to us, there are always new gems to be discovered. Released in 2011, what does the Vacation gem promise to do? Is it A: Deploy compiled and deploy a Jekyll site, B: Make it easier for you to write CLI (command line interface) tools, C: Parses output from your test harnesses, or D: Forces your server to take an annual vacation for two weeks?
00:06:16.210
Kylie, what do you think? Have you used this gem before? No? Okay, yeah, that's probably before your time, right? 2011? Sure. Sorry, B? Why not B? Okay, let's put it on the screen. So, Matthew, what do you think? I like B too. Yeah, you like B?
00:06:56.270
We tried to find a pretty obscure gem so you wouldn't know the answer. Otherwise, what's the point? Matt, which of these do you think it's going to be? Do you think C was out in 2011? Oh, C was definitely there in 2011!
00:07:06.360
Yeah, I have a really good memory about that. I pick C! I think C! You picked C! Okay, so again, we have a split between B and C. So, celebrities, you have ten seconds to come up with a final answer.
00:08:17.840
We pick B! Okay, you picked B! Let's see... well, it turns out S3 was a thing in 2011! I believe the gem's description states that the point of the gem is you can deploy your site to S3 and then you can take a vacation! Yeah, that's the Vacation gem.
00:08:29.090
Does anyone have a favorite? No? No Rails? Well, fair enough!
00:08:42.300
So, with two questions down, we have picked the categories: Slot Machine and we pick your final category. This time, it is going to be the Standard Library.
00:09:02.090
As you know, Ruby ships with a vast standard library, making it super easy to accomplish basically any everyday task, right?
00:09:12.780
However, even then, there are still things that you can't do with Ruby out of the box. From the standard library, which of the following components does not come standard with the Ruby standard library?
00:09:24.140
Was it A: A prime number generator, B: A module for reading and writing ZIP files, C: A class for parsing and generating RSS feeds for the iTunes format, or D: A web server? We will start with Matthew this time.
00:09:45.140
At first glance, I think they all roll in the standard library. Do you use iTunes? Because I don't, and I don't really know! When was iTunes just written on here? Okay, so you think they all do? I'll go with B.
00:10:02.990
Let's early? What do you think? I mean, there's a lot I don't understand about Ruby, but I really wouldn't understand why working with iTunes RSS feeds would be in the standard library. This could be my own shortcoming, but that's my guess for that. Let's ask Matz.
00:10:27.490
Matz, as in? Yeah, I know the end. I see. Okay, so before we finalize an answer, what's up with Ruby and iTunes RSS feed? It's an application of that, yeah, standard RSS XML. I see! So there's the standard for the iTunes flavor of RSS for podcasts. Ruby being Ruby has everything that you would possibly need. Even out of the box has a class for parsing and generating items RSS piece.
00:10:56.420
So now you know, if you're publishing a podcast or anything, just go to the Ruby standard library. So it sounds like you're pretty confident about B, right? Is everyone happy with that? Reading and writing ZIP files? Yeah?
00:11:10.750
Alright, that sounds like confidence to me! The correct answer is C! The Ruby standard library does come with a class for reading and writing GZIP files, but not ZIP files. They both use the deflate algorithm or at least have slightly different packaging around them. Ruby only supports GZIP out of the box; but no problem, as we said, there's always a gem for it! So if you need it, you can just install a gem!
00:11:54.610
That was a great round! Let's take another break. When we come back from the commercials, welcome back to the Show! Now we finally answer the joke question: Ruby celebrities, what do they know? Do they know things?
00:12:29.480
Alright celebrities, it's time for the survey round! For this round, we have surveyed 100 Ruby developers and we asked them, 'What is the number one feature they want to see in Ruby 3.0?' We've tallied the answers and we have the top eight answers on the board. So here are the most wanted Ruby 3 features in the non-scientific poll! I'm excited about this one!
00:12:57.830
So the rules are very simple: You basically have to guess one of the top answers that put on the board, and if you're right, it will show up. If you get it wrong three times between the team, then you unfortunately lose this round. Are we good to go? Yeah? Alright, let's start with Matz! Matz, what do you think is one of the most wanted Ruby 3 features?
00:13:43.310
A JIT compiler! Okay, let's see! Great answer! Great answer for performance! So we grouped a few things together: Performance and speed! There were also answers that just simply suggested JVM.
00:13:57.290
Okay, so that was a great answer! Thank you, Matz! Let's move on to you, Kylie! Now, before you have to say that your personal most wanted Ruby 3 feature, it's just a lot of pressure!
00:14:12.000
And that was great work! Out of the hospital votes, twenty-something of them were blank and I took the liberty to interpret that as meaning they don't want anything in Ruby 3.0 because it would be so great!
00:14:23.840
So they want stability, as discussed this morning. So, stability! Pretty votes! Now, Matthew, what would be your guess for a Ruby 3 feature?
00:14:41.070
Frozen strings by default! Is it on there? There we go! We have immutable data structures! So, some of the answers are immutable strings, but I think one of the categories was titled moans!
00:15:00.550
Okay, so back to you, Matz! Do you want to take another guess? Your guess is probably as good as mine, but my guess is concurrency! Let's see!
00:15:14.270
There we go! Nine votes for concurrency! Great answer! Now, I think for concurrency, we have a bundle of answers; we grouped in here, including async IO, async await, and also one entry was idle—an option to disable the global interpreter lock.
00:15:32.210
Okay, so let's move on to Kylie! Do you have a guess? This crowd might want from—actually, it's not just this crowd because I traveled all the way to Russia to collect early election results for this one, um and so half of like maybe 20 of the answers were from conferences in Russia.
00:15:55.340
Do you have any guesses, or would you like to pass? Strict typing! Let's see! Yes! You're correct! Yeah, collecting votes or ice includes, I believe, everything from soft typing and everything in between!
00:16:17.220
Alright, celebrities, you're doing great so far! Yeah, let's keep going! Matthew, what snake is going to get harder from here? Rails in the standard library?
00:16:31.200
Yeah, however, I believe I do have one entry! So you have to have at least two entries to go on the board—that's the rules—but I believe I have one entry here that says Active Records!
00:16:41.030
Okay, so back to Matz! Do you have another guess? Tumblr as a part of Bundler! Let's see!
00:16:58.000
Yes! Developer tooling! So this is a pretty broad one, so that includes Bundler. Also, a lot of people want a standard for matter similar to Go fmt or Rust fmt! Someone said compilers, and what's a try? Someone said better AST introspections!
00:17:15.850
And one gentleman over there said, 'Let's see, macros!' Whatever that means! And also someone said better tote organization! My favorite one is better errors.
00:17:29.320
I don't think they mean the gem better errors, but I think some newer language has error codes or links in the error message that you can click through to the documentation for those errors.
00:17:50.350
So, when a beginner sees an error, instead of telling them, 'Define method foo on new class,' they would say, 'Oh, this is probably what you're trying to do, and here's more information!' I thought that was pretty quick. Maybe you think about it, no pressure, though!
00:18:10.000
It's only, you know, it's only 11% extrapolated from the Ruby user base. So we have two items on the board. This is going to be incredibly difficult!
00:18:25.900
Kylie, do you have any ideas at this point? You can probably work together as a team. If any of you have any ideas to help, it's down to the last two mystery items.
00:18:39.180
They're supposed to be like an actual Ruby celebrity, and then I was like, here's the thing: we surveyed 100 Ruby celebrities!
00:18:55.920
So that's a 30% response rate—30% of you said no idea, which is obviously a different category from 'blank.' Wow, why are you working on it, as a team? I can tell you some of the answers that are pretty popular but barely made it on the board.
00:19:14.360
So, there are a couple of them that I grouped in the category called regrets! So more appropriately, fixing some of the regrets. I think one of the answers is 'strict mode' in Ruby where we disallow some of the unexpected things like allowing you to reassign constants.
00:19:34.300
Something like that. I believe that's probably inspired by JavaScript, and I personally like that one also! But speaking of regrets, there's also an answer called 'bucket' in this category called free tacos!
00:19:50.500
I believe also there was another one that was 'it's too hard to come up with something this early in the morning,' which I think is probably also part of the regret category.
00:20:10.280
Okay, celebrities, we are down to the last two answers! It might be...
00:20:26.560
... okay! That was the last one!
00:20:36.920
Yeah, the last two are pretty broad categories! So if you just take a shot in the dark, it could be just landing on something related. What about Matz and Matthew? Do you have any personal favorites that you think you would love to see but might not be on the board?
00:21:57.000
Becky? What about that? Our current arguments? Let's see! Neos in taxes! So that was a pretty broad one that included, I think some people wanted pattern matching, dotted operator, hash literal syntax.
00:22:14.530
I think the idea is, if you have a variable called food and if you say curly braces food, it should mean calling in two races. Like it, I think that's called an object literal syntax in JavaScript. That's probably why it came from!
00:22:38.870
There was also one that was titled 'first-class functions.' I figured that was mostly syntactic things since we have pretty good—so whoever wants to take the last one or I can give it away as freedom!
00:23:00.270
No one? What about the audience? What do you think? You've participated in this before! Just once, you all should shout out your answers together! One! Two! Three! Go!
00:23:19.240
That was it for the survey round, and now we finally game off tonight! This one is going to be more fun! This is going to be the loop of fortune!
00:23:46.750
So the idea is that you would go like in turns, so it's like a loop! Great! So we have picked a piece of Ruby code snippets from somewhere on the interwebs, and we have turned it into a board for you. Today, your category is Ruby on Rails!
00:24:00.090
So this is your board now! Matz, I heard you're not a Rails user, right? No? You don't use Rails. Are you confident about this? No? Okay, well, we're gonna go with it anyway!
00:24:21.200
This time, it's going to be easier because all you have to do is pick one of the consonants! So there are—who knows? We'll edit that part out, but you can guess a letter! But you can also guess a number—so 0 to 9—or you can buy a vowel! Or you can also buy a symbol! So if you want to buy a ':', you know, and we take cash or credit cards! So have your preferred payments in case you want to buy some vowels!
00:25:16.380
So I'm gonna go with D! I see what you did there at the end! So you might be right about that. Matthew, what do you think? I'm gonna follow a similar strategy and say 'F!'
00:25:32.800
Let's see! Okay, we have three of them! That was pretty good. Now we have I don't know, like a third of the board! What are you thinking? You're on the Rails core team, right? Yeah, um, well, that looks like a method definition!
00:26:05.530
Looks like a method definition! That's pretty good! Yes! Why don't we go back to Kylie? Kylie, you can pick a letter!
00:26:25.000
Let's go for 'N!' Okay, let's see 'N!' Is it gonna be 'N' or is it gonna be 'M?' It could be either, right? It could be!
00:26:38.640
Matthew, do you want to spend some money to buy a vowel to figure out which one it is? Like, do you know if it's gonna be 'N' or 'M?' That's the controversy right here! If you want, I can cut you a deal: $250 for a 'Y!'
00:26:52.300
It's too easy! So I go 'Y!' Yes, haha, we have three 'S's on the board! I hope that's helpful! So back to you, Kylie! Now, what could it be?
00:27:13.210
What English word ends with two 'S's? Any guesses? Grass! Grass is a pretty good guess! So maybe 'G!' Let's just try 'C!'
00:27:27.180
Okay, let's see! Hey, we have one 'C!' Okay, so back to you, Matthew. What is it gonna be?
00:27:41.680
Yeah, you're gonna—so I guess it can't be grass anymore, but it could be, umm... Cross? Yeah, it could be 'CROSS!'
00:27:54.230
So if you want to guess at all, it's $49.99 use price, is that Australian? No? Never mind.
00:28:14.700
I think I'll go with a 'no.' Well, okay! Let's see an 'L!' Okay, we have two 'L's! So at this point, we're back to Kylie! Looks like we didn't make much progress on the top right there! Maybe it's just a like 'CL' something 'SS' and then a now?
00:28:30.900
If you want to guess a vowel—oh! But it's your guess, so whatever you want! Even, here's the thing: I guess I can't really give away the vowel because it's in two days, but how's that?
00:28:46.120
You can either buy a consonant or I can give you a symbol for free if you have a symbol in mind!
00:29:07.480
What about 'T?' Let's see! So we have two 'T's over there! So what could that be?
00:29:20.360
So that’s—that’s probably a word, right? I guess they're all words, it's not a word!
00:29:34.560
So now, Matz, my offer is still good! I see some patterns—wow, I guess I would not take it!
00:29:54.950
We have one 'A.' Wow, we have two 'A's! So, so what is it gonna be? Kylie, what's your guess? They really want you to go for 'A!'
00:30:09.530
Art! Sorry!
00:30:29.730
Alright, let's see! Okay, we have re 'R's that was a thousand, so that’s like probably something to do with pirates!
00:30:43.750
So Matthew, it's back to you! Remember, you can always solve the puzzle if you know it, Kylie! I'm gonna take a guess and say—wow, 'A!' Okay! Let's see! One! Wow, that was a complete shot in the dark!
00:31:05.520
We have '41' on the board! What is it gonna be? So kindly, Austin or at this point, it doesn't matter anymore, nothing matters anymore!
00:31:19.940
A consonant? No! It's simple! Up to you!
00:31:36.840
What's an 'O?' Okay, the rule of thumb! We have two 'O's on board!
00:31:52.450
So back to Matz! I think we're getting close! The most frequent letter in English is 'E!'
00:32:07.170
Okay! So we have class or def! 42? And then so last two 'N's! What is it gonna be?
00:32:27.100
If anyone is gonna solve it or are we gonna pick it in a letter or speed—Kylie, it's your call!
00:32:43.420
It looks like Matthew is gonna solve the puzzle! I love it! It’s 'class' or 'def' or '42' or 'self' or 'square' bracket '42' or 'square' bracket 'end!'
00:32:56.930
Let's see! This is a method! We picked up from the Rails source code, as you can see! It’s a monkey patch for the array class!
00:33:11.800
It's a convenience method for accessing the forty-second element in an array! I believe the story is that one day DHH started adding a few accessory methods on the array like second, third, second!
00:33:26.300
And then someone was really pissed off about that! What? We're gonna have '42?!' And DHH was like, 'Okay, you're gonna have '42!' It's in the Rails!
00:33:39.100
So you think this feature is gonna make it into Ruby at some point? No? Okay, everyone please give a big round of applause either somebody say there's a great job today!
00:34:06.500
We answered the age-old question: Ruby celebrities: do they know? Thanks, audience! What do you think? Thank you very much! See you next time!