PLAY PODCASTS
The Bike Shed

The Bike Shed

499 episodes — Page 9 of 10

99: Just Sayin'

We go into the weeds with MySQL and discuss the virtues of database migrations written in SQL. Big and little endian mysql_real_escape_string Should we set CLIENT_IGNORE_SIGPIPE for MySQL? Why Uber Switched From Postgres to MySQL Default Primary Keys Are Now BIGINT Using reversible in migrations Gary's tweet Thank you to our sponsor this week, FreshBooks!

Feb 16, 201746 min

98: I Have Good Branch Hygiene

We discuss complexity and progressive disclosure, garbage collection, and the impenetrable nature of Git. Chris Lattner on Accidental Tech Podcase Simple Made Easy Garbage Collection was a feature of Objective-C 2.0 The listen gem breaks my laptop Go GC: Prioritizing low latency and simplicity Modern Garbage Collection which calls out the tradeoffs of Go's approach WebKit’s Retreating Wavefront Concurrent Garbage Collector The Joel Test Tig: text-mode interface for Git Thank you to our sponsor this week, FreshBooks!

Feb 8, 201735 min

97: One Equals Zero

We wonder why writing parameterized associations in Rails is not easy, and discuss the difficulty in eliminating no-op queries in ActiveRecord. Plus, we discuss how you can give a great RailsConf talk proposal that doesn't have anything to do with Rails. RequestStore The IDs writer patch Derek sent Sean Skunk Works by Nickolas Means It’s a Total Hack The Bike Shed episode inspired by Skunk Works Hanami Thank you to our sponsor this week, FreshBooks!

Jan 31, 201729 min

96: Who Stinks?

Baby Ruby, Ruby refinements, Rails discoverability, and annoying polyfills. Refinements Refinements in Rails Remove required field polyfill from Rails-UJS Safari is the New IE Safari isn't the new IE: it's the user-centric web - "Send me onesies!" Thank you to our sponsor this week, FreshBooks!

Jan 27, 201739 min

95: Click 'Cat' to go 'Home' (Morgane Santos)

Amanda is joined by Morgane Santos to discuss the experiences, technology, and development of Virtual Reality. VR For Burn Relief Vive Maya for Beginners GoogleVR Dev Resources GitHub Game Off Get Cardboard Gray Area Thank you to our sponsor this week, FreshBooks!

Jan 20, 201728 min

94: It's Not Supposed to Work

We discuss the pain of custom inputs in HTML, ActiveRecord bugs, and Rust's Fire Flower. Sean’s Haircut Select2 Query with 'exists' subquery fails to bind parameters Rocket Diesel JSON data type Rust is More Than Safety Safety is Rust’s Fire Flower Fire Flowers and Marios: Marketing Rust Thank you to our sponsor this week, FreshBooks!

Jan 11, 201744 min

93: I Have Complex Feelings

The impact of codes of conduct on community behavior, shipping a mobile app written in Elm, and yet more to say on SemVer. Diesel 0.9 Change Default Primary Keys to BIGINT The Rust Code of Conduct Ruby Code of Conduct issue Rails Code of Conduct thoughtbot Code of Conduct Disabling submit on invalid forms without JavaScript Purple Train Elm Native React Native Our earlier episode on Purple Train and React Native Homebrew SemVer issue

Dec 21, 201641 min

92: The Queen of Canada

We discuss the sneaky performance differences between present?, any?, blank? and empty? with ActiveRecord, when N+1 is a "feature", and the future of Diesel. An awesome gif Justin Trudeau’s Shopify selfie The Toonie Slow Counting in Postgres N+1 is a Feature Managing dependencies with Rails’ Russian doll caching Postgres Upsert Support The Bike Shed and other thoughtbot podcasts

Dec 16, 201638 min

91: I Think It's a Fish

Derek briefly complains of the staleness of the asset pipeline in Rails 5, before Sean catches Derek up on Rails 5.1's support for Webpack, Yarn, and ES6. We also discuss the pain of deprecations in the upgrade to Rails 5. Can I Use: HTML 5 validations checkValidity() ESLint Rails 5.1 can use Webpack and Yarn A Tour of Rails’ jQuery UJS How Does Origin Pull Work? PaperTrail Rails 5.1 pull request A shim for Rails 5 controller tests

Dec 8, 201641 min

90: Freedom Units

We discuss adventures with shared mutable state in Elixir before turning to our thoughts on mocking HTTP interaction and how our approaches may differ depending on the language we’re using. How to Solve a Rubik’s Cube GenServer Agent Mocks and Explicit Contracts by José Valim VCR and exvcr actual radio buttons

Dec 1, 201635 min

89: There Will Never Be One Right Way (Ashley Williams)

Ashley Williams joins the show to discuss NPM, Yarn, and the general package manager ecosystem. Ashley Williams Yarn yarn install--flat Peer Dependency --override for Elixir dependencies npm shrinkwrap Clarifying the Roles of the .gemspec and Gemfile Zero One Infinity READMEs mansplain CocoaPods' impact on GitHub npmCamp 2016 Panel - Package Managers: Before and After npm Node Together A Very Brief Intro to Rust

Nov 23, 201637 min

88: How Many Puppies Now?

Amanda and Sean discuss talk prep and slide envy before diving in to Kotlin 1.0.5, UTF-8 identifiers in programming, and responsive layouts in Android. Expandable RecyclerViews and You - Amanda's DroidCon talk. Deckset How to Talk to Developers Is UTF-8 a Racist Kludge or Stroke of Genius? Senior Android Developer at thoughtbot in New York City Kotlin 1.0.5 Build a Responsive UI with ConstraintLayout

Nov 18, 201629 min

87: The Refrigerator Took Down Your Website

We talk about a widespread DNS outage and what steps you might take to avoid or limit your application's exposure to these things in the future. Deprecate the behavior of AR::Dirty inside of after_(create|update|save) callbacks Distributed Denial of Service attack on DNS Provider Dyn What is an ALIAS Record? ANAME records Why can't a CNAME record be used at the apex (aka root) of a domain? Avoid using non-standard DNS entries Is Your Site Leaking Password Reset Links? with Comments from Hacker News

Nov 10, 201632 min

86: Purple Train, Purrrple Train (Ian Anderson)

Derek chats with Ian Anderson about developing a mobile app for iOS and Android with React Native. Ian on Twitter Purple (T)Rain GenServer Agent React Native Flow Elm Native UI React Native Web

Nov 2, 201630 min

85: Are We in a Black Hole?

We briefly ponder the very nature of our existence before discussing edge cases and interesting bugs encountered in ActiveRecord. Podcast Patreon Survey We May Be Living Inside a Black Hole Are We Living in a Computer Simulation? The R-7 Rocket Family Computing Glitch May Have Doomed Mars lander ActiveRecord’s from method ActiveRecord’s where.not method ActiveRecord’s WhereClause class Let’s fix deep_munge Object-relation impedance mismatch

Oct 26, 201653 min

84: Why Are Manhole Covers Round?

What do we look for when reviewing job applications, interviewing candidates, and pairing with prospective co-workers? thoughtbot Podcast Listener Survey Yarn: A new package manager for JavaScript About NPM Jobs at thoughtbot LAMP Stack recruitment in GitHub Issues The fruits of Derek’s FactoryGirl pairing session The Infield Fly Rule

Oct 19, 201650 min

83: Canadian Halloween

Sean encounters a roadblock in updating Diesel to use Rust’s new soon-to-be-stabilized procedural macros. Derek and Sean discuss the most recent CVE filed for Bundler, which is a lot like the previous CVE filed for Bundler. Diesel 0.8.0 Derive Rust Macros 1.1 CSS Support in GMail GMail REST API Bundler’s Multiple Source Security Vulnerability Bundler Response Listener Survey

Oct 12, 201627 min

82: I Just Want a Dog in a Spacesuit

We discuss the problems with getting a CVE and the new lightning fast search tool, ripgrep. Sandwiched between those topics, we dive into the colonization of Mars. Yes, that's right, Mars. Podcast Patreon Survey Clearance password reset fix iwantacve.org Over 6,000 vulnerabilities went unassigned by MITRE's CVE project in 2015 Handling Security Issues in Open Source Projects by Tute Costa Elon Musk unveils plan to colonise Mars SpaceX Jobs Red Dragon Spacecraft NASA Orion Major Malfunction: Revisiting Challenger ripgrep is faster than {grep, ag, git grep, ucg, pt, sift} 111 Rg A pleasant HackerNews comment thread

Oct 5, 201650 min

81: Is This Really a CVE?

Derek and Sean talk through how to handle a security vulnerability that was reported for Clearance, a user authentication library. Cardboard Jankowski Prevent password reset token leak via HTTP referer The Meta Referrer Tag CVE Bundler Audit Ruby Advisory Database Ruby security announcement mailing list Destroy All Software

Sep 28, 201627 min

80: Back to the Futures

What's appropriate for a web middleware stack to provide? Does Rack do too much? Plus, our thoughts on NeoVim and Vim 8. Futures-RS My Life With NeoVim Vim 8 Asynchronous functions patch discussion gitsh Xi Editor Stop saying "the ____ monad"

Sep 21, 201639 min

79: Comments in Your Queries

Derek and Sean talk through some complex SQL before they examine the calluses developed from years of writing software on OS X. Press 1 for Lobby Ransack EXTRACT Pivot Tables crosstab Derek’s crosstab Query Window Functions Set Returning Functions Uninstall All Installed Gems on OS X

Sep 14, 201641 min

78: I'm an Adult and I Choose Java

Sean and Amanda discuss the state of Android Development in 2016. Java, Kotlin, Dependency Injection, and Functional Reactive Programming, oh my! Amanda Hill on Twitter Android Debug Bridge (ADB) Android Studio - The Official IDE for Android JetBrains Kotlin Tropos Weather Runes: Monadic Functions in Swift Receiving Location Updates in Android Dagger: A fast dependency injector for Android Introducing ExpandingRecyclerView RxAndroid Marial Codex

Sep 9, 201650 min

77: The Floors Are Not Zero Indexed

How can you get your open source pull request merged? Elevator number pad Sorry, video of Sean’s Abstractions Conference talk is not yet available Clearance PR discussion driven by contributors Module#prepend is the end of alias_method_chain - by Justin Weiss

Aug 31, 201632 min

76: The One With Laila & Brenda

Between thoughtbot's Summer Summit and Sean's vacation, we are sadly without a new episode this week. However, we would love you all to check out thoughtbot's newest podcast, interviewing inspirational designers, developers, and other makers in tech, The Laila & Brenda Show! Give their latest episode a listen here, and if you like it subscribe to their feed however you listen to podcasts! The Laila & Brenda Show

Aug 17, 201640 min

75: I'm Not Sure That's Better

Derek and Sean discuss hunting down intermittently failing tests, finding unused code in your application, and why you should never ever change your test framework. RSpec Bisect RSpec 3.3 Release Notes Git Bisect Unused The Halting Problem Diesel 0.7

Aug 11, 201633 min

74: A Dip in the Connection Pool

We talk through design considerations for a user-visible custom query builder for a high volume ecommerce system. Ransack Using Arel to Compose SQL Queries PgBouncer establish_connection AWS in Plain English ApartmentEx Underscore + Lodash

Aug 3, 201634 min

73: Probably In My Other Pants

We discuss Pokémon Go and what it's success might mean for software developers before Sean lays out his case for replacing the pg gem and libpq. Derek on Full Stack Radio The Laila and Brenda Show Google's Project Tango devices Pokemon Go gets full access Google auth token Why your email address isn't your identity The pg gem libpq SQL Server data types

Jul 28, 201643 min

72: Surprises Cut For Time (Aaron Patterson)

Aaron Patterson joins us from RailsConf for puns, performance improvements in Ruby, and AirDropping cats. Gorbypuff Virus UTF8 vs UTF16 vs UTF32 What happened to the Rails 4 queue API? Koichi talks about AOT compilation Aaron hates encoding. This isn't a link, just a fact. Sean's terrifying test script, slightly out of date rails.vim, the tpope jam

Jul 20, 201643 min

71: It's a Total Hack

Inspired by Nickolas Means’ fantastic RailsConf keynote, we discuss the corollaries between Lockheed Martin’s Skunk Works projects and our software development projects. Sean’s DXRacer Chair Skunk Works by Nickolas Means Lockheed Martin F-35 Lightning II Big Design Up Front Kelly’s 14 Rules and Processes Rules Made Up by You - Kelly’s rules as applied to modern software development Factory, Workshop, Stage by Sarah Mei The Tyranny of Structurelessness How to Crash an Airplane by Nickolas Means

Jul 13, 201642 min

70: Make Small Things (Sandi Metz)

Sandi Metz joins us live from RailsConf to talk about the rules, the trouble with naming things, making the right kinds of errors, and conference speaking. The Bike Shed - Episode 1: Sandi and Derek's Rules Sandi Metz' Rules For Developers Sandi on the Ruby Rogues Don't Create Verb Classes Swift Proposal for Default Final GoRuCo 2009: SOLID Object-Oriented Design by Sandi Metz How to Talk to Developers by Ben Orenstein What Your Conference Proposal is Missing by Sarah Mei A big thanks to everyone who came out to our live show! A video version of this episode is available on the thoughtbot YouTube Page.

Jul 6, 20161h 4m

69: No More Drills

We discuss thoughtbot's increasing use of Elixir and Phoenix and what that means for our Rails work before diving into what's new in Elixir 1.3 and Ecto 2.0. Jonathon Coulton: IKEA Derek's thoughtbot ♥️ Elixir tweet. Fuck Bullshit HTC Vive Office Simulator Demo ExMachina and Bamboo from Paul Smith Elixir 1.3 CHANGELOG Ecto 2.0 CHANGELOG Phoenix Presence

Jun 29, 201640 min

68: Mostly Undocumented

Sean runs through a Rails bug that sits at the intersection of several magical and confusing Rails features. accepts_nested_attributes_for inverse_of autosave The proposed fix for 5.1.0 Datomic

Jun 22, 201633 min

67: Longtime Listener, First Time Caller (Rafael Franca)

Leading Rails contributor Rafael Franca joins us from RailsConf to talk about taking over Sprockets, the future of the asset pipeline in Rails, managing Rails dependencies, and the hard work of software maintenance. Rafael Franca Rails Contributors Sprockets Reintroducing gzip file generation in Sprockets LibSass is Sass in C (and fast) Spriting with Compass Rails Assets is not Dead turbograft TC39 Sean said you'd all "definitely" have the final build of Rails 5 by now. Whoops!

Jun 15, 201639 min

66: Make Ruby Scripting Great Again (Terence Lee)

We talk with Terence Lee of Heroku, Bundler, and mruby-cli fame about Apache Kafka and the future of mruby scripting. Terence Lee Kafka I Can’t Believe It’s Not A Queue: Using Kafka with Rails - Terence’s RailsConf talk. mruby mruby-cli Traveling Ruby Keep Ruby Weird

Jun 8, 201639 min

65: Free as in Puppy (Katrina Owen)

While at RailsConf, we talk with Katrina Owen about finding metaphors for software development, the successes and mistakes of Exercism.io, and the benefits of providing code reviews. Katrina Owen Katrina's conference talks Make the change easy, then make the easy change Skunk Works by Nickolas Means Factory, Workshop, Stage by Sarah Mei The Product Design Sprint Exercism.io Exercism GitHub Organization

May 25, 201645 min

64: Open Mic SF

Open Mic is back by popular demand, this time in San Francisco. We hear from developers in thoughtbot's San Francisco office about their recent investment time projects. Croniker Monica Dinculescu on emoji Gabe learns about emoji on Twitter thoughtbot blog Fear of missing out on Wikipedia FOMObot Design Sprint Tropos Gabe Berke-Williams on Twitter Tony DiPasquale on Twitter Amanda Hill on Twitter

May 18, 201655 min

63: Types Are Only Good If You Use Them

Derek and Sean discuss some recent issues with exciting language features like pattern matching, macros, and static types. Pattern Matching Primitive Obsession Stringly Typed Sean's open source programming streams Sean's Twitch channel

May 11, 201638 min

62: Shipping is the Fastest Way to Get Somewhere

Sean celebrates Diesel reaching "faster than a SQL string" status before we chat about Rails 5 blockers and the clarity of focus and priorities that only shipping can bring. Make Diesel faster than a SQL String How can an ORM be faster than a SQL string? ActionSupport::Executor and ActionSupport::Reloader APIs "I strongly discourage the use of autoload in any standard libraries”

May 4, 201634 min

61: I'm Not Telling You My Birthday

"Send me an email every year for my birthday" is an easy thing for a human to understand but it can be deceptively tricky to do with computers. Also tricky for (some) computers: SELECT * FROM. Wait... what? DATE_PART or EXTRACT Triggers Using EXPLAIN Using ANALYZE VACUUM Derek's (mostly useless) Approximately Gem

Apr 27, 201631 min

60: Remote Control (Katherine Fellows)

KF (Katherine Fellows) joins the show to chat about successful BridgeFoundry events and creating environments where remote developers, junior and otherwise, can thrive. KF Clojure / West ClojureBridge BridgeFoundry Self Conference Conway's Law Negativity Bias PLIBMTTBHGATY

Apr 20, 201638 min

59: I Wish They Wouldn't Do That

Derek and Sean discuss the left-pad saga, how other programming communities are reacting to it, and what you should learn from it as a library or application author. Bash on Ubuntu on Windows I’ve Just Liberated My Modules by Azer Koçulu A discussion about the breaking of the internet (Kik’s side of the story) by Mike Roberts Kik, left-pad, and npm by Isaac Z. Schlueter from npm npm Package Hijacking: From the Hijackers Perspective by Nathan Johnson Is gem yank a security concern? Kill Your Dependencies by Mike Perham To gem, or not to gem by Elle Meredith changes to npm’s unpublish policy by Ashley Williams from npm ApplicationRecord in Rails 5 Thank you to Hired for sponsoring this episode!

Apr 13, 201640 min

58: Nobody Gets Fired For Buying IBM

Should you rewrite or refactor? What should you consider as you weigh this decision and what exactly constitutes a rewrite anyway? Things You Should Never Do, Part I - Joel Spolsky on Software Rewrites What does the phrase "Nobody ever got fired for choosing IBM" mean? When Understanding Means Rewriting by Jeff Atwood The Big Rewrite, revisited by DHH Thank you to Hired for sponsoring this episode!

Apr 6, 201645 min

57: Mutability Ruins the Whole Party (José Valim)

We chat with José Valim about bringing light to Elixir's dark corners, the design goals of Ecto, and the future of Elixir, Ecto, and Phoenix. José Valim on Twitter Introducing unifying calendar types to Elixir Falsehoods programmers believe about time and time zones by Lau Taarnskov mix deps.tree in Elixir 1.3 mix app.tree in Elixir 1.3 Ecto.Query.preload Working with Ecto Associations and Embeds by José Valim. Ecto.Changeset Ecto 2 beta is out, including concurrent database tests github_ecto: An Ecto adapter for the GitHub API. What Makes Phoenix Presence Special by Chris McCord ExMachina - test factories for Elixir GenRouter ElixirConf EU ElixirConf US

Mar 30, 201655 min

56: Most People Aren't Building Trello

Is ActiveRecord reinventing Sequel? If it is, does it matter? Derek and Sean discuss that and whether maybe we could all stand to tone down the JavaScript. ActiveRecord is Reinventing Sequel Ryan Bigg gives up his open source projects Maybe We Could Tone Down the JavaScript by Evee Stronger Parameters Mother F*cking Website Discourse Ember CLI Fastboot Introduction to HTML Imports TC39 Modernizr Can I Use: Date and Time Input Types

Mar 23, 201638 min

55: Hot Dog is Not a Dessert

Derek and Sean talk about their experience with the Rails 5 betas, how to test against them today, and things that you might want to look out for when updating your app. Ides of March Presence validation of virtual attribute not firing appropriately ActionDispatch request helpers don't properly rewrite positional arguments to keyword arguments Strong Parameters migration path to Rails 4 A Rule of Thumb for Strong Parameters by Pat Shaughnessy Concurrent Ruby Appraisal

Mar 9, 201640 min

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

Mar 2, 201642 min

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

Feb 24, 201643 min

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

Feb 17, 201646 min

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

Feb 10, 201643 min

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

Feb 3, 201628 min