Talks

RubyConf AU 2017

00:00:00 I actually feel like Aaron probably doesn't need an introduction. Oh, sorry, I'm really lazy today, so without further ado, Aaron Patterson.
00:00:08 Today I'm going to talk about defragging Ruby. I also want to say that I got the preview slides up here and I'm laughing at my own jokes. I just want to say thank you very much for having me here; it's really exciting to be at RubyConf.
00:00:23 So how was the party last night, everyone? I thought it was very enjoyable. It was with Tim Tams and I really like to laugh. My name is Aaron Patterson; I look different on the internet. This is what I look like online. I invented the Friday hug. Yes, I invented hugs on Fridays, but I'm not going to do that when I'm leaving. That’s for a friend to do later today.
00:01:01 I'm on the Ruby core team, I'm also on the Rails core team, I'm a RubyGems committer, and I work for a company called GitHub. You may have heard of them; they host Git repositories on the internet, and they kindly pay me to do stuff, which is good. I come from the United States, specifically from Seattle. I started up there and then flew all the way down here, so it was quite a journey.
00:01:32 But I wish that the airline company had watched the talk yesterday about the Game Boy because I think it would have been a lot more efficient if we had just flown straight up and over. That path might look like it's a little bit longer, but due to map projections, it's actually a shorter distance. This is actually the path that Christopher Columbus took in 1492 when he found Australia. I came up with that last night; I thought it sounded funny.
00:02:12 Before I came to Australia, I decided to learn about Australia's rich culture and heritage by watching all seasons of Summer Heights High. I really enjoyed the show, but I think that Jame stole her looks from me and that she's a total bogan. Anyway, my name is Tender Love on the Internet. I thought it was very exciting to see Shauna's presentation yesterday. Was her mom here in the audience?
00:03:00 I want to tell you a little story about when my parents came to see me in the audience. I'm kind of the black sheep in my family; I'm the first of my family to drop out of college, which makes me feel really bad. I have two younger sisters. Both of my parents are engineers, and one of my sisters is a dentist while the other is a chemical engineer. And I'm the dropout.
00:03:33 Anyway, I've been doing programming for a long time, and since my parents are both engineers, it's not weird to them that I make my money by sitting in front of a computer all day. I'm sorry, I'm speaking way too fast for the stenographer here. I'll slow down and try to say something in emojis because it would be cool if there’s a red heart on there.
00:04:06 It's not weird for them that I sit in front of a computer to make my money all day, and I tell them what I do. But there's one thing I've never told them, and I don't like I haven't told them that this is my name or that people know me by this name. Since I dropped out of school, I'm paranoid that my parents don't actually believe that I make money in a respectable profession.
00:04:30 I'm afraid that they think I'm just somehow faking it, like selling drugs or something like that. I'm pretending that I'm a programmer. Anyway, there was a conference in my hometown, Salt Lake City, and I live in Seattle now. There was a conference in my hometown, and I decided it would be good for my parents to come see me give a presentation and actually see what I do.
00:05:09 So the conference organizer invited me to speak, and I said yes, I’ll happily speak as long as you give me two free tickets for my parents. He was like, absolutely, of course, we would do that. So I went to the conference with my parents, and I met the organizer. I said, 'Hey, these are my parents,' and the organizer, Mike, said, 'Oh, nice to meet you! We’ve reserved three seats for you in the front of the auditorium. I'll take you there now.'
00:06:07 I made it through, and we've never talked about that since. Anyway, I love cats because I think they are the best! This is one of my cat's names: SeaTac Airport Facebook YouTube is her full name, but we just call her 'Taxi'. This is my other cat; he's more famous: Gorbachev Huff Huff Thunderhorse. This is him trying to hide, which I think is hilarious.
00:06:36 So, SeaTac likes to sit on my desk all day, and she’s also a huge fan of boxes, which I think is adorable. I also like her a lot because she makes this face; it's the same face I make when I’m programming. Anyway, I have stickers of my cats, so if you like these cats, I will give you a sticker of them.
00:07:03 Before we get into the main details of this talk, I want to share something with you that I built. First, I'm going to show you a graph of the output of this thing—this is the graph. I'm going to explain the contraption that produced this graph to you, and you'll understand what this graph means at the end.
00:08:07 So, I have the contraption mounted like this: at the top is the motion detector, and down at the bottom is the scale. At the top is where the Raspberry Pi with the motion detector is, and down there at the bottom is the scale. I’ve mounted the cat's litter box on top of the scale. When the cat goes into the litter box, the motion sensor detects it, and then we start recording data onto the Raspberry Pi.
00:08:38 When the cat leaves, we stop recording data. So if you look at this graph, this is essentially what that graph represents: here is where the cat enters the litter box, and that's where the cat leaves. The difference between those two lines is the amount of weight left over, which is approximately 100 grams.