
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!

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!

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!

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!

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!

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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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"

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

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

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

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

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

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

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

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

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

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.

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

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

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!

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

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

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

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

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”

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

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

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!

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!

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

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

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

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

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

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

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

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