00:00:18.199
Uh, hello everybody!
00:00:23.880
Okay, I'm really very happy to be here. I really want to get one of those framework laptops because I feel if you're doing framework development, it should be on a framework laptop.
00:00:37.600
Hello everyone, welcome to my talk. Happy Friday, everyone! Ah, we made it! Yes, it's always Friday somewhere, but today it is actually Friday.
00:00:50.360
Did any of you stand in line for lunch today? Yeah? All right! That was definitely a solid queue!
00:01:05.400
I hope today I'll be able to give a solid keynote with some solid jokes, and I really hope that this is not a solid waste of your time.
00:01:13.680
Yes, this is a poop joke; I'll do anything for laughs on stage.
00:01:27.079
I really enjoyed David's keynote on the first day, though one part of it kind of bothered me. He was talking about how he's against Paws, or no Paws.
00:01:32.759
I can't agree with that because I enjoy making Easter eggs, and I don't know what he has against Easter eggs!
00:01:39.920
So to get rid of this, I can't deal with it. If I love dying Easter eggs and you tell me no PAW, I say hard pass! I'm so sorry.
00:01:54.840
Also, in his presentation this year, he was talking about Linux on the desktop.
00:02:09.800
I love Linux on the desktop; that was a huge theme this year. So this year is definitely going to be the year of Linux on the desktop.
00:02:32.560
I was very happy to see this, but I really have to say that Rails World 2024 is the year that hell froze over.
00:02:45.440
So, who in here, raise your hand if you're using TextMate? We got three—okay, wow! Impressive! That question was for you, Jean. Jean is the last person on the core team that's using TextMate.
00:03:03.280
Alright, David keeps going on about how Rails is the one-person framework, but I think that he could have a much more concise way of marketing this.
00:03:17.280
So what I want to do today is I want to do my impression of David doing an impression of Steve Ballmer.
00:03:34.480
Developer!
00:03:45.760
I gotta say thank you to Justin for that joke. I don't know if you caught his talk or not, but this is the last talk that he's going to be giving, so if you can catch up with him after the conference, that would be really great.
00:03:57.680
But he gave me that joke, so I had to use it. My name is Aaron Patterson; I'm also known online as Tender Love.
00:04:10.120
I'm very excited to be here today. I'm from Seattle, and I'm really excited to be here in Toronto. It gives me a great opportunity to visit our neighbors to the south in Canada, which is technically true.
00:04:20.959
I'm a senior staff engineer at a very tiny startup called Shopify. I want to say thanks to them for employing me, as well as how supportive they are of the Ruby and Rails community.
00:04:33.880
I wouldn't be here on stage today if it weren't for them, so I really want to say thank you.
00:04:46.360
I also want to say thank you to the Rails World staff and the organizers, especially Amanda, for putting up with my very poor communication skills.
00:04:58.240
I want you all to know about my live stream. I'm doing a live stream called 'Tender Love's Cool Stuff'. I have a YouTube channel, so please, please subscribe to it.
00:05:12.759
I'm on my road to 100,000 subscribers and yeah, I'm on the way!
00:05:25.080
Actually, I made a mistake on this calculation. I realized I had to update the slides but I kept this one in.
00:05:38.759
The true number is I actually have 97,000. It's because I accidentally multiplied by 10 because I'm a 10x developer!
00:05:53.080
So I learned yesterday that I really only need a thousand dedicated fans. So maybe I should switch to a website where only my fans can come say hi to me.
00:06:10.440
Anyway, here's the link so you can go to my YouTube page.
00:06:22.120
I don't really have a title for the talk this year, but I'm going to be speaking about some technical stuff and then I'll wrap it up at the end of the presentation.
00:06:31.360
I think this is usually my presentation style, and I think it's worked out okay so far, so I'm going to stick with it.
00:06:43.840
However, this year I'm afraid that the section might be getting a little bit larger than the technical stuff, so we'll see how this goes.
00:06:56.520
I love Ruby on Rails! I've been a Rails developer since 2008.
00:07:08.800
I think building with Rails is the best tool for building web applications available today, bar none. It's better than any other framework out there.
00:07:22.639
Rails is very good at enabling entrepreneurs to get off the ground and get their product to market quickly.
00:07:35.000
The problem is that I'm not particularly good at marketing products, nor am I good at making them.
00:07:51.000
I know David was talking a lot about going from Hello World to IPO, and I think I've got Hello World down pretty well. But I don't think that even Kamal is going to get me to IPO.
00:08:02.160
Let me give you a few examples of what I mean. I'm going to show you a few products that I've developed over the years and then talk about why they're failures.
00:08:10.880
The first one I want to talk about is a product I developed called The Analog Terminal Bell.
00:08:24.720
This is a USB Bell. You plug it into your computer, and anytime the bell in your terminal rings, the bell rings.
00:08:30.720
Instead of getting that weak virtual Bell, you get a strong physical bell telling you that you messed up your git command.
00:08:44.240
You can go to analogterminalbell.com for more information there. There's a demo video if you click that link.
00:08:58.360
I didn't want to put it up on screen because it is very loud. This is a 100% bootstrap product; I took zero VC funding.
00:09:10.320
The R&D cost me about $100—that was just the cost for parts including a custom PCB.
00:09:22.000
Notably this price does not include the 3D printer that I had to buy and assemble, nor does it include my time.
00:09:31.000
Unfortunately, zero units sold, so I have to consider this product a failure.
00:09:46.519
My next product is special. It's called Initial V. This is a real product, by the way.
00:09:58.160
Here's a picture of it. This is a Bluetooth stick shift for Vim.
00:10:07.040
I'm definitely doing Hello World, but you can see all right, this is a video. You can watch the video; I'll explain what's going on here.
00:10:14.280
This shift lets you move around in Vim. If you double press up, that will go into insert mode, and you can type.
00:10:27.680
Pressing Park will press Escape, and pressing Park again will save the file. You can also put it into visual mode.
00:10:37.080
You can control Vim with this stick. I don't know if I highlighted this very much in the video, but when you change modes in Vim, it communicates back to the stick shift handle.
00:10:50.720
It changes the light on the stick shift handle so you can see what mode you're in.
00:11:02.920
This is a chart of all the things that it will do. It's not that important. It is wireless and Bluetooth.
00:11:16.960
However, it requires a 12V power supply, meaning you need to plug it into the wall.
00:11:27.600
So, it's Bluetooth but requires being plugged in at the same time.
00:11:56.840
It cost about $400, just the cost of parts including PCBs. This does not include building a Reflow oven.
00:12:10.520
My Reflow oven is built out of a toaster oven. What this basically does is you get your PCB, put all your parts on it, stick it in the oven, and it solders everything.
00:12:22.720
I used components that were so small that I couldn’t do it by hand. It doesn’t include my time.
00:12:35.000
Unfortunately, zero units sold, so I must consider it a failure.
00:12:47.240
If you think about this product a little, I mean we’re combining cars and Vim.
00:12:58.960
I have like a very unique idea for one particular customer. I'm charging a million dollars for it; I just need to sell one.
00:13:09.720
Alright, the next project, my last one, is called Comini.
00:13:19.800
It's because it's incredibly convenient, and it's also a combination lock for a computer.
00:13:30.480
I know all of you have encountered this: you're going in to use your computer, but you're wearing boxing gloves for some reason.
00:13:43.740
So you can't type; wouldn't it be nice if you had a combination lock that you could just turn to unlock your computer?
00:13:54.360
I started building one. This is my dev kit today. It's not totally done.
00:14:06.800
But basically, what it does is you enter the combination correctly.
00:14:15.360
Then it enters your password for you. You do have to hardcode your password into the thing; that's fine. Working through the bugs.
00:14:31.360
This is R&D right here. Anyway, it’s very convenient.
00:14:45.320
Unfortunately, zero pre-orders, so I'm really worried that this one is going to be a failure.
00:15:01.080
So why did all of these projects fail? Thank you! Why did all these products fail?
00:15:12.740
Well, poor marketing is one reason. Not actually being wireless; I think one of the biggest contributing factors is that I'm not actually selling them.
00:15:26.880
That might be one issue. Also, none of them were built on Rails.
00:15:36.960
I want to communicate that I'm not a particularly good entrepreneur; I'm more of an aspirational entrepreneur.
00:15:50.080
Not very good at it yet, though I think I'm making progress, and I think through practice I'll get better.
00:15:57.760
Unlike entrepreneurship, I'm actually pretty good at being an engineer; that's a thing I can do.
00:16:10.640
This is one of the reasons that makes me so happy to work on Rails itself.
00:16:19.800
I can use my skills to help folks who don't have the same skills I do.
00:16:24.960
I can help entrepreneurs improve and get their businesses up and running, and I'm really grateful that I can do this on a day-to-day basis.
00:16:37.680
Truth is, though, working on Rails isn't always that fun. There are some aspects I don't particularly like.
00:16:49.520
Specifically, I don't like doing security releases.
00:16:55.040
But speaking of Rails releases, does anyone know when the first release of Rails was?
00:17:02.880
Anyone? No? 845? No, it's actually according to Wikipedia.
00:17:11.760
If we go take a look at Wikipedia, the very first release date was December 2005.
00:17:21.520
However, if you go to the very top of it, it says it was actually released in 2004, 20 years ago.
00:17:33.600
So, where did they get this date? If you go over into the description... let’s scroll down.
00:17:45.760
There's a quote here that says according to Wikipedia, 'Hansen first released Rails as open source in July 2004.'