---
title: "Exploring Big-O Notation with Ruby"
publication: "Ruby Weekly"
issue: 487
published_at: "2020-02-06"
canonical_url: "https://rubyweekly.com/issues/487"
---

This week's Ruby news, views, and libraries.       

#487 — February 6, 2020 

[Read on the Web](https://rubyweekly.com/issues/487)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/sjnjmkinqyguga1khwzn.jpg)](https://corecursive.com/045-david-heinemeier-hansson-software-contrarian/)   

▶[An Interview with David Heinemeier Hansson, the Software Contrarian](https://corecursive.com/045-david-heinemeier-hansson-software-contrarian/) — The creator of Rails talks about his relationship with Ruby, and why single page apps, microservices, and standups are not for him. _63 minutes._ 

CoRecursive Podcast podcast   

[Exploring Big-O Notation with Ruby](https://www.honeybadger.io/blog/big-o-notation-ruby/) — ‘Big O’ notation is used to express algorithmic complexity and it’s a handy concept to know as a developer (and not only for job interviews). 

Honeybadger Developer Blog   [![\](https://copm.s3.amazonaws.com/43abf35c.png)](https://www.honeybadger.io/tour/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) 

[Because Reading Error Logs Is Not a Hobby](https://www.honeybadger.io/tour/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — What would you do with more time in your day? Honeybadger combines uptime, check-in, and error monitoring so you can spend less time debugging and more time doing what you actually love. Reclaim your time by [clicking here](https://www.honeybadger.io/tour/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby). 

Honeybadger sponsor   

[Error Handling with Monads in Ruby](http://nywkap.com/programming/either-monads-ruby.html) — Lots of history here, but monads are a nice way to handle tracking the success or failure of calls in your app. 

Vitaly Pushkar   

[The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) — Not Ruby specific, but too good to miss, IMHO. Three PhD students at MIT have put together a set of resources and [lectures](https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J) covering ancillary, but still important, topics that aren’t always covered in formal CS education, mostly around using and organizing your tools, version control, debugging, etc. 

MIT  

💻 Jobs  

[Ruby on Rails Engineer at Buildkite (Remote)](https://buildkite.com/careers/ruby-on-rails-engineer?utm_source=rubyweekly) — We’re looking for an Engineer that can influence all corners of our product and help shape a tool that thousands of devs use every day. 

Buildkite   

[Senior Software Engineer (Remote/Montreal)](https://angel.co/company/stamped-ai/jobs) — Stamped is reshaping the future of accounting by automating clerical work with tech and machine learning. Rails, Python, JS and React. 

Stamped Technologies   

[Find a Dev Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-rubyweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77583) — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers. 

Vettery  

📘 Articles & Tutorials  

[How to Pass Arguments to Methods in Ruby and How It Affects Their Arity](https://blog.saeloun.com/2020/01/27/how-to-pass-arguments-to-methods-in-ruby-and-how-it-affects-the-arity.html) — I bet you know about all the different kinds of method arguments: required, optional, variable, keyword, block…but do you know how each affects the arity of a method? 

Saeloun Blog   

[Deploying a Rails 6 App with Dokku](https://kukicola.io/posts/deploying-rails-6-application-with-dokku) — [Dokku](http://dokku.viewdocs.io/dokku/) is a PaaS implementation you can deploy on your own servers. Imagine Heroku, but under you own control. 

Karol Bąk   

[Backward-Compatible Database Migrations](https://withatwist.dev/backward-compatible-database-migrations.html) — A mixture of story and tip that you might find useful if database migrations on live apps have ever given you the blues. 

Tute Costa   

▶[How to Ask For The Job, with Brian Mariani](http://5by5.tv/rubyonrails/306) — A follow up to a previously popular [interview](http://5by5.tv/rubyonrails/287) with the founder of a Ruby and Rails focused recruiting firm, this time talking about how to approach salary negotiations, finding a job as a Rubyist, and what the whole recruitment process is like. 

Ruby on Rails Podcast podcast   

[Handling and Customizing Ruby 2.7 Deprecation Warnings](https://kukicola.io/posts/handling-ruby-27-deprecations-warnings) — Two weeks ago we linked to [ruby-warning](https://github.com/jeremyevans/ruby-warning) which makes this process easier to work with. 

Kukicola   

[JetBrains RubyMine: A Cross-platform Ruby & Rails IDE](https://www.jetbrains.com/ruby/promo/?utm_source=cooperpress&utm_medium=cpc&utm_campaign=rubymine-sp) — Go to any object with one click. Refactor with one shortcut. Apt GUI for tests and debugging. 

JetBrains sponsor   

[What Kinds of Rails Tests I Write and What Kinds I Don't](https://www.codewithjason.com/kinds-rails-tests-write-kinds-dont/) — Model and acceptance, good. Request and view, bad? 

Jason Swett   

[Lambdas Are Better Than Procs](https://dev.to/keithrbennett/lambdas-are-better-than-procs-52a1) — Put differently, lambdas are more like methods and, as such, easier to handle. 

Keith Bennett   

[Pay No Attention: Behind the Magic of Ruby DSLs](https://spin.atomicobject.com/2020/01/07/understanding-ruby-dsls/) — Another dev discovers `method_missing`, one of the sharper knives in Ruby’s metaprogramming drawer. 

Atomic Object   

[Dockerizing a Rails Application](https://semaphoreci.com/community/tutorials/dockerizing-a-ruby-on-rails-application) 

Nick Janetakis   

[Gemifying Your Style Guide to DRY Your CSS](https://www.fastruby.io/blog/gems/dry/ruby/gemifying-your-styleguide.html) 

Cleiviane Costa  

🛠 Code and Tools  

[ruby_detective: Investigating Your Ruby Code Dependencies](https://github.com/victor-am/ruby_detective) — A gem that parses your code, finds its dependencies and outputs an interactive .html file that you can use to explore the dependency network of the code. 

Victor Marques   

[tty-exit: Human-Friendly Terminal Exit Codes](https://github.com/piotrmurach/tty-exit) — So, think `exit_with(:usage_error)` 

Piotr Murach   

[Counter Culture: 'Turbo-Charged' Counter Caches for Rails Apps](https://github.com/magnusvk/counter_culture) — Boasts improvements over standard Rails counter caches. 

Magnus von Koeller   

[The Tool That Shopify and Rails Uses for Faster and More Reliable CI](https://buildkite.com/?pk_campaign=rubyweekly-060220&pk_source=cp-rubyweekly&pk_medium=newsletter) 

Buildkite sponsor   

[Ruby/Git: A `git` Wrapper for Use from Ruby](https://github.com/ruby-git/ruby-git) — I feel I’d turn to this if building my own developer tools that needed to use `git` under the hood, especially as it continues to see updates. 

Scott Chacon   

[VCR 5.1: Record Your Test Suite's HTTP Interactions and Replay Them](https://github.com/vcr/vcr) — A long standing library for recording HTTP interactions and replaying them during testing (so that your tests aren’t relying upon brittle third party services). This is a pretty minor upgrade but it’s great to see it still living. 

VCR   

[OctoLinker: Links Together What Belongs Together in GitHub Repos](https://github.com/OctoLinker/OctoLinker) — A browser extension for GitHub power users that turns `import` and `require` sources into links to the original source. Here’s [a demo](https://octolinker-demo.now.sh/OctoLinker/live-demo/blob/master/index.js#LO2) to see if you like the effect. Supports many other languages than Ruby too. 

OctoLinker   

[ParallelTests: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber](https://github.com/grosser/parallel_tests) — _Drifting Ruby_ did [a neat screencast intro to this](https://www.driftingruby.com/episodes/speeding-up-tests) a while back. 

Michael Grosser         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Cooperpress](https://cooperpress.com/). 

[Change your email address](https://rubyweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
