Programming (or writing or making art) is knowledge wealth building. Practicing your craft is compounding interest, and the best practice is to have a side project.

Working on an application from inception to deployment teaches you so much more than you would learn at work. Your work projects are too big for you to master every part of the application. When the application is small, you can take the time to master every part from the authentication to the deployment.

Keep Ruby Weird is a celebration of side projects that delight. None of these talks will make you a millionaire, but you’ll learn something. Maybe that something will help you on a future project. Maybe it will encourage you to start your own absurd side project.

Opening Keynote - Yukihiro ‘Matz’ Matsumoto

2018 is the last Keep Ruby Weird, and they managed to get a talk from Matz. Did they have excess budget and need to spend every penny? Did they troll us by having a very normal conference talk at their weirdo conference? Who cares? You get to watch a talk from the creator of Ruby!

Matz talks about how method hash arguments work in Ruby today and considers how they will work in the future. Nothing is set in stone, and they’re still taking comments/suggestions. If you want to learn about some weird edge cases for method hash arguments, this talk is for you.

Distributed Fizz Buzz: Passing the Microservices Interview

Skip it! This talk is an advertisement for the actual talk, which is a three day course on microservices.

The Teenage Mutant Ninja Turtles Guide to Color Theory - Louisa Barrett

Louisa explains the basics of color theory via Ninja Turtles. If you use colors but don’t know anything about color groups, what emotions are associated with which colors, how to get color groups from the color wheel, and what properties make up a color then this talk is for you.

It’s a very introductory talk, but I still learned something. I had no idea how the properties of color worked.

Game Show (Intermission)

Skip it! The Game Show was fun in person, but it was filler. It’s not going to be as fun online.

Using psql to \watch Star Wars And other silly things! - Will Leinweber

Will uses the ascii version of Star Wars to explain the Postgresql \watch command. The \watch command is like a tail for your query. It reruns the query at some specified interval and displays the output. Combine \watch with a Postgresql function and a counter, and you’re watching Star Wars!

Then comes the step up. Will uses ffmpeg to render Star Wars as emoji characters. He even hooks up his Mac’s webcam to ffmpeg to render live video of himself as emoji. It’s an utterly delightful moment.

If you like Will’s talk, check out his talk from Keep Ruby Weird 2015. They’re both must sees.

Cats, The Musical! Algorithmic Song Meow-ification - Beth Haubert

Beth sets out to write an application that takes a song as input and returns the same melody but sung by cat meows.

Extracting the melody from a song automatically is really hard, and she doesn’t get that part working. Instead she outsources the task to an online melody extractor. Even that extractor is terrible.

This is a good talk to watch Beth encounter setbacks and work around them. There are compromises and work arounds, but she gets it working. The payoff? A cat rendition of the Game of Thrones theme.

Using Ruby to build a modern Memex! - Andrew Louis

Andrew obsessively catalogues every detail about his life. To categorize that information, he creates a Memex. The Memex was a thought experiment from the 1940’s by Vannevar Bush. He wanted to organize data by associations. For Andrew, that means being able to look up every podcast he listened to on a road trip three years ago.

I want this. I want a personalized search engine for my life.

The most impressive part is he’s using Ruby on Rails and Postgresql. I expected him to be using a Graph Database, which is almost a Memex. Graph Databases are super super new, meaning they’re all still pre-1.0 and unreliable. This is a friendly reminder that Rails and Postgresql are still incredibly powerful.

Andrew wants to share his Memex but doesn’t know how. He’s unsure about opensourcing it. He never mentions it, but users of opensource have entitlement issues. There is an emotional cost to fielding support and feature requests. The DigitalOcean Marketplace would be perfect for his Memex. He could build a 1-click, only need to support one version of the OS, Rails, and Postgresql, and share it with people without outsourcing it.

Transcendental Programming in Ruby - Yusuke Endoh

Yusuke is an MRI contributor who’s side project is quines. A quine is program that prints its own sourcecode. If you can speak Japanese, Yusuke wrote a book about them.

Quines are simple to write in Ruby. This example is from the wikipedia article on Quines. Represent your program as a string and eval that string.

eval s="print 'eval s=';p s"

Simple, right? Nope, nope, nope. Yusuke shows off some absurd quines.

This talk was on the weirder side of Keep Ruby Weird. Definitely check it out.

Closing Keynote - Avdi Grimm

Avdi Grimm, of Ruby Tapas fame, starts his keynote as a discussion about the roots of Object Oriented Programming and how the world misunderstood objects and methods in OOP. Alan Kay’s original description of OOP is more similar to the Actor model and Functional Programming than it is to modern OOP. Avdi iterates all of the problems with object messaging and how it’s broken.

Avdi realizes that the same problems with OOP messaging apply to his life. He’s so laser focused on accomplishing a checklist of goals, that he postpones happiness and doesn’t enjoy the journey.

The second half of his keynote is about being present and enjoying the moment. That focusing on the a goal at the expense of your day to day life isn’t healthy.

Be content that your goals will take a decade to achieve. Savor the journey, especially with your family.

Oh, and take more selfies.