RubyConf_au According to a Noob - Day 1 Part 1

Posted on 09 February 2017

Today I had the amazing opportunity to go to RubyConf_au thanks to a ticket donated by Lookahead Search. I’m home after day 1 and feeling so inspired - with so many things that I want to read more about. So before it starts again tomorrow - here is my recollections pieced together from some hastily scrawled notes and tweets.

Actually, speaking of Twitter, @mistydemeo livetweeted the talks really well! But onto some of my impressions from the talks!

Welcome to Country

Elder Ron Jones welcomed the audience to country and told us some interesting stories about the history of his family and the history of areas around Melbourne. There were several things he told us about that I didn’t previously know - so I’m very lucky to have heard him speak.

Reinvesting in Ruby

First up was Tim Riley of Icelab talking about “Re-Investing in Ruby”. His talk was the first in a theme I was noticing throughout the day - that Rails has shaped so much of how Ruby apps are written but it’s getting to the point that developers are coming up against some of the limitations of Rails. I haven’t been doing this for long enough, or touched big enough projects to have come across those limitations myself - but it is illuminating to hear how people are approaching them.

Tim spoke about how one of the strengths of Ruby is that we can adopt useful ideas in other languages and ecosystems into Ruby - we don’t have to be stuck in our current ways.

Functional programming is only something I’ve just started looking into - and while I do enjoy OOP - it’s something that I’d like to study in the upcoming weeks. Tim went on to talk about the dry-rb project - which is a hybrid of functional and OOP. It focuses on functions as values and immutability. He then went on to build an example app with dry-rb which convinced me that it’s something I’d like to look into in the coming weeks.

So you want to become a software engineer

The next talk by Shana Moore was of particular interest to me - seeing as I am an aspiring developer. Shana’s talk was about her transition from administration assistant to software developer - and she provided 6 tips from her journey.

The first was to get involved with the community. She pointed out that it’s easy to feel like one doesnt’ know “enough” to get involved - and how easy it is to feel like a fraud. But the community is welcoming and it’s worth getting out there.

Related, her next tip was to seek out support. She mentioned the code newbies twitter chat which I’m definitely going to keep an eye out for.

Tip number three is to not give up - and I feel this so much. It’s easy to fall into despondency when my code isn’t making sense and I’m feeling stupid. Shana compared how you would talk to your best friend who’s attempting something different and challenging. You’d encourage a friend, and you should encourage yourself too.

Build Projects! It can definitely feel overwhelming with the options of tools and languages available - but just pick one and try it. But there’s no better way to learn than by building.

This actually reminds me of a piece of advice that my TA gave me at GA - for every two hours you spend reading about a new technology spend one hour writing code. I’m very prone to just reading a lot of documentation and not really grokking it (and he used to be too) so I’m going to keep this in mind going forward.

Number five was to be yourself and to not be afraid to stand out. Shana talks about stumbling on coding challenges during interviews but still taking them home and working on them. She also did a youtube video on her progress on one. The feedback she got from potential employers was overwhelmingly positive.

And finally - pay it forward. Share your story, volunteer, teach, mentor and get involved in the community. Not only will it lead to more opportunities for career growth, but it will also help those following in your footsteps.

I spoke to Toby from Lookahead after her talk, and we talked about how it was good to see that Shana’s advice is very similar to the advice he gives to juniors. He calls it the three P’s - Presence (in the community), passion and projects - but now he’s going to add a fourth. Persistence.

Ruby, HTTP/2 and you

The next talk was about HTTP2 and Ruby with Hiro Asari.

It started off with a history of HTTP which was a good primer on the talk and to understand how HTTP2 differs. HTTP2 is based off an experimental protocol from Google from 2009.

HTTP2 uses binary headers which are compact and time saving. It also allows multiple full duplex connections. Hiro also points out that the based on certain rules - the server can push resources to the client that were not explicitly requested. This can save time and potentially provide a performance boost - but applied badly could be wasteful.

Many browsers already support HTTP2. However, cURL often doesn’t support HTTP2 by default, and Hiro discussed how to implement it.

Hiro then went into some best practices with HTTP2 - something else I’ve marked for future reading!

He also pointed to two gems worth looking into - a pure ruby implementation of HTTP/2 by igrigorik and the wrapper for the nghttp library

Building a Gameboy emulator in Ruby

The next talk was a lot of fun, about building a gameboy emulator in Ruby by Colby Swandale. I didn’t take many notes during his talk, but it was really interesting to be reminded of how Nintendo got so much out of hte gameboy’s processing power and memory.

It was also interesting to be reminded of the idea of repeating tiles. I remember being so transported by those games when I was a kid - I never really noticed the repeating tiles.

It’s a super interesting project and I’ll be looking at the source code in more detail.

I had very good intentions of getting this all written up while it was fresh in my mind, but I think I might go to bed and write a recap of the rest of the speakers later. There’s a lot of interesting talks on tomorrow that I want to be awake for!