Cool Functional Tricks In Ruby

This is a talk I gave at Kiwi Ruby conference in Wellington, New Zealand last week. We’ll have a look at some of the lesser known functional programming approaches you can use in Ruby. Slides are available. Video will be coming soon.

Stateful Processes In Elixir

This pattern pops up everywhere in Elixir. It is abstracted out of the way by OTP, but having a good understanding of it makes a lot of things easier to reason about. It’s also the reason the BEAM VM Elixir runs on is able to achieve massive scalability that we can use in our everyday apps. Talk I gave at Elixir Melbourne June 2019 meet up.

RubyConf AU 2017 talk - Functional Programming For The Anxious Programmer

Programming involves dealing with an overwhelming amount of complexity. The human brain can only deal with so much information to process before anxiety kicks in and your ability to proceed suffers. Functional programming provides tools to manage the combinatorial explosion of state and logic. Here we’ll cover some practical uses of functional programming techniques in Ruby that can be directly applied to your everyday work. Talk I gave at RubyConf AU 2017.

Rack::Reloader not reloading? There's `to_app` for that

I burnt a bunch of time over the last few days trying to get the Rack::Reloader middleware to… you know… reload stuff. TL;DR - call to_app on your Rack::Builder block I had a Rack app that was being mounted in a parent Rails app. Not wanting to stop/start Rails whenever I tweaked that little Rack app, I figured I’d try to get code in the app auto loading after each request.

Ruby. Concurrency. Monoids

Ruby. Concurrency. Monoids is a talk I gave at Melbourne “Ruby or Rails” Meet up. I cover off what a monoid is (hint - not a monad), and how they can be used to compose immutable concurrent operations.

Improving Envato Marketplaces Search - Synonyms & Related Items

Here’s another video of me at one of our internal envato tech demos. From the forum thread discussing it: Here’s a peek into our agile development process. Once a fortnight we have an internal “demopalooza” to show off new features. These sessions are open to anyone at Envato to attend, so we try to keep them focused on “what is the value to users”, and avoid too much techie talk.

envato search update video

Here’s me in an update video by envato from October last year talking about some of the search engine work we’ve been doing on the team. We’re finishing off a big project to consolidate search on the envato marketplace sites from a frankenstein mix of Sphinx, Solr, and an ancient version of elasticsearch, onto a new platform built on an up to date elasticsearch infrastructure. Much nicer.

Using Stats to Not Break Search

At Envato (where I work) we’ve recently started a development blog called webuild.envato.com for everyone that helps build our various sites - developers, designers, product people, ops, whatever. I wrote one of the launch articles: “Using Stats to Not Break Search”. It’s about the statistical approach we used in our work moving from Solr to elasticsearch to test that search relevancy hadn’t been broken. How do you change around pretty much everything in your search backend, but still remain confident that nothing has broken?

Webmachine for Ruby talk

Webmachine is an Erlang framework for building well behaved REST applications that use HTTP properly. There is also a Ruby port of the framework. I did a talk at Melbourne Ruby meetup about it.

Baby shows why gamification is bullshit

I’ve always been a little bit dubious of the whole “gamification” thing. Ian Bogost’s piece on Gamification Is Bullshit talks about how gamification peddling consultants are pushing something of dubious worth. They’re doing this in order to make a buck from the enterprise suckers willing to buy it. This is true. But it’s also worth noting that the concept itself (as well as the marketing of it) is lacking in substance and basically just doesn’t work.