

The Bike Shed
thoughtbot
On The Bike Shed, hosts Joël Quenneville and Stephanie Minn discuss development experiences and challenges at thoughtbot with Ruby, Rails, JavaScript, and whatever else is drawing their attention, admiration, or ire this week.
Episodes
Mentioned books

Mar 2, 2016 • 42min
54: Argument Error
Derek shares some Elixir annoyances with Sean and they discus how a consulting role colors their perception of languages and frameworks, both for better and for worse. Sean provides an update on SQLite and Association support in Diesel.
GoodTImes, Timex, and Ecto.DateTime
When should you use DateTime and when should you use Time by Andrew White
Twitter conversation with Brandon Hikert
Postgres RETURNING
Preloading in Ecto
User Focused Design in Elm by Evan Czaplicki
Getting Started with Diesel
Rust API Evolution
Support The Bike Shed

Feb 24, 2016 • 43min
53: Cache Machine
Laila and Derek go on a tour of the various caching mechanisms available to web applications in general, and Rails specifically. When is the right time to cache and at what level?
The Road to 2 Million Websocket Connections in Phoenix by Gary Rennie
Toxic Synovitis
Memoization is a Liability by Henrik Nyh
Use a leading underscore for memoization
Two Hard Things in Computer Science
Rails SQL Cache
Low-Level Caching (Rails.cache.fetch)
Association counter_cache
Fragment Caching
Introduction to Conditional HTTP Caching With Rails by Damian Galarza
A Guide to Caching Your Rails Application with Fastly by Jessie Young
Caching Tutorial for Web Authors and Webmasters by Mark Nottingham
Web Fundamentals: HTTP Caching
Support The Bike Shed

Feb 17, 2016 • 47min
52: You're an Elixir Developer Now
Derek and Laila discuss Derek's excitement for Elixir and Phoenix. Is Elixir as fun to write as Ruby? Is Phoenix a better Rails?
Elixir and Phoenix
Routes in Phoenix
Using ctags with Elixir
Static Assets in Phoenix
ja_serializers
ecto
Is There a JSON Schema describing JSON API?
Elixir 1.2 Map and MapSet scale better
ExMachina - factories for Elixir
Elixir Typespecs and Behaviours
Support The Bike Shed

Feb 10, 2016 • 44min
51: Is Sim City Running? (Steve Klabnik)
We enjoy a wide-ranging discussion with Steve Klabnik on the importance of good documentation, the sometimes cloudy definition of a breaking change, the politics of open source contributions, and work/life balance or boundaries.
Steve Klabnik - twitter, website, blog
Let’s Talk About Ecosystem Documentation
SimCity Mode in Windows 3.1 from Joel Spolsky
Rescuing Resque… Again
Netrunner
IntermezzOS
Writing an OS in Rust by Philipp Oppermann
Bors - an automated integrator for GitHub
High Five - a bot that encourages good contributions
Support The Bike Shed

Feb 3, 2016 • 29min
50: Open Mic
It's Open Mic day at The Bike Shed. We hear from other thoughtbot designers and developers about what they're excited to be spending their investment time on lately.
Matt Sumner
Hunchpig Podcast
Haskell Programming
The Lambda Calculus
Learn You a Haskell for Great Good
Is Everyone Trying Their Best? - The Bike Shed on software quality
Cole Townsend
Velocity JS
Cole on Dribbble
The Buffalo Bills` Playoff Drought - The longest current drought in sports
Joël Quenneville
Alter Ego
Elm
Elm's Time Traveling Debugger
Support The Bike Shed

Jan 27, 2016 • 35min
49: A More Practical Haskell
How can an ORM be faster than a SQL String? Laila and Sean discuss the latest happenings in Diesel and why it is that a systems language needs an ORM, anyway.
What is the difference between traits in Rust and typeclasses in Haskell?
What is a pure function?
Why Rust Ditched Pure Functions
The ActiveRecord and DataMapper patterns (not libraries) as defined by Martin Fowler in Patterns of Enterprise Application Architecture
Zero-cost abstractions in Rust by Aaron Turon.
What should Diesel associations look like?
Iron and Nickel web frameworks for Rust.
Adapterizing storage for ActionCable - Thanks Jon Moss!
Moving ActionCable from Celluloid to ConcurrentRuby - Thanks Mike Perham!
Support The Bike Shed

Jan 21, 2016 • 35min
48: Is Everyone Trying Their Best?
Software is broken. In this episode, Derek and Sean discuss why exactly it's broken, and what we can do to make it better.
The origin of "software engineering"
The Coq Proof Assistant
NASA's 10 rules for developing safety critical code
The differences between strong and static typing
"If it compiles it works"
Derek adds IS NULL to Diesel
"Quickcheck in Ruby"
Note: Shopify is fewer than 700 developers
Support The Bike Shed

Jan 13, 2016 • 54min
47: Star Wars Oranges
Ruby 2.3 is out! What are we looking forward to trying and what do we think of &. and try? Stick around after the credits for spoiler-filled discussion of Star Wars: The Force Awakens
Star Wars Fruit
What is Kerberos?
Safe navigation operator (AKA the lonely operator) by Georgi Mitrev
ActiveSupport’s #try might not be doing what you think it’s doing by Avdi Grimm
The history of try in Rails a comment from Myron Marston
In Ruby, &method Passes You!
Hash#dig
Hash Comparison in Ruby 2.3 by Olivier Lacan
did_you_mean by Yuki Nishijima.
Immutable Strings in Ruby 2.3 by Alexis Mas
Multiline strings in Ruby 2.3 - the squiggly heredoc by Damir Svrtan
Support The Bike Shed

Jan 6, 2016 • 34min
46: Don't Breathe, Save the Planet
We discuss the maintenance burden of ActionCable and its dependencies on Rails 5, follow-up on Scenic issues, and discuss implementing migrations anew in Diesel.
Don't Breathe
DHH on The Bike Shed
DHH's ActionCable Demo
Fixing Scenic view dumping
Updatable materialized views in Scenic
A first pass at Diesel migrations
Teachable moments
Support The Bike Shed

Dec 23, 2015 • 48min
45: I Think I'd Prefer An Error to Nonsense
Derek shipped Scenic 1.0, which spurs a conversation about semantic versioning and the value of the 1.0 milestone. We discuss what the bar for breaking changes in a library should be and look at some specific changes on tap for Scenic and whether they will or should carry a major version bump.
Scenic
Semantic Versioning - See points 4 and 5
Implementing Multi-Table Full Text Search with Postgres in Rails
Issue handling view dependencies in Scenic migrations and a potential partial solution
The trouble with SELECT * in Postgres views
Appraisal
Scenic smoke tests
Support The Bike Shed


