Sinopsis
On The Bike Shed, hosts Derek Prior, Sean Griffin, Amanda Hill, and guests discuss their development experience and challenges with Ruby, Rails, JavaScript, and whatever else is drawing their attention, admiration, or ire this week.
Episodios
-
260: N+1s For Days
15/09/2020 Duración: 44minOn this week's episode, Chris shares a tale of performance improvements and a recent discussion about replacing a REST API with GraphQL. Steph dives into migrating a database column to restrict input and dropping database columns safely. They also discuss when to abstract code (a topic that surprisingly, they may not agree on) and running "Unused" to identify dead code. This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy Indeed (https://Indeed.com/bikeshed) - Click through and get started with a free seventy five dollar credit for your first job post ActiveRecord - ignore_columns (https://apidock.com/rails/v6.0.0/ActiveRecord/ModelSchema/ClassMethods/ignored_columns) strong_migrations (https://github.com/ankane/strong_migrations) Rails Issue - ActiveRecord enum: use validation if exists instead of raising ArgumentError (https://github.com/rails/rails/issues/13971) Insom
-
259: That's Not How Numbers Work
08/09/2020 Duración: 48minOn this week's episode, Steph and Chris tackle the thorny topic of 10X engineers. Do we think they really exist? What characteristics make an individual more effective, and more importantly, what can they do for a team? To round out the conversation, they chat about rewrites and when they do and don't make sense, Ruby 2.7 keyword argument deprecation warnings, and a listener question revisiting Ruby popularity and what languages would we learn if we couldn't write Ruby anymore. This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy Indeed (https://Indeed.com/bikeshed) - Click through and get started with a free seventy five dollar credit for your first job post Ruby 2.7 Deprecates Conversion Of Keyword Arguments (https://blog.bigbinary.com/2020/04/14/ruby-2-7-deprecates-conversion-of-keyword-arguments.html) GitHub - Upgrading GitHub to Ruby 2.7 (https://github.blog/2020-08-
-
258: Digital Gardeners
01/09/2020 Duración: 41minOn this week's episode, Steph and Chris discuss a git-blame feature that supports bypassing less helpful commits. They also revisit a discussion about Dependabot PRs and recent performance adjustments, sharing which strategies worked and which ones didn't. They also discuss the dreaded three-state boolean, designing a system for cacheability, and using Ruby's magic comment to freeze string literals. This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy Indeed (https://Indeed.com/bikeshed) - Click through and get started with a free seventy five dollar credit for your first job post Trello Account Switching Feature (https://blog.trello.com/trello-account-switcher-feature) Git feature: ignore-revs-file (https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-fileltfilegt) Chris's Tweet about ignore-revs-file (https://twitter.com/christoomey/status/129579
-
257: How Late On a Friday Can You Deploy?
18/08/2020 Duración: 50minOn this week's episode, Steph & Chris take a deep dive into all things technical debt. How do you know when your code has reached "good enough"? When might we purposefully knowingly take on technical debt? How do we tackle existing technical debt without halting new development? How can we tell high-interest, hair on fire debt from "ehh, it's fine" debt that we can let lie? Tune in to find out! This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy FusionAuth (http://fusionauth.io/podcast) - Use it for free today and get a free t-shirt, or upgrade to their paid editions and get 25% with promo code BIKESHED Rack::Timeout Sigterm (https://github.com/sharpstone/rack-timeout/pull/157) The Art of Code Comments - Sarah Drasner | JSConf Hawaii 2020 (https://www.youtube.com/watch?v=yhF7OmuIILc) Technical Debt Panel from thoughtbot (https://thoughtbot.wistia.com/medias/msdwdg790m) G
-
256: Rational Pessimism
11/08/2020 Duración: 46minOn this week's episode, Chris shares his recent adventures of working with a team that prioritizes async-first communication and Steph revisits a previous discussion around the use of web sockets and optimistic user interfaces. They also dive into the classically hard question "should we rewrite the app?" and share survival tips for learning to type on a split keyboard. This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy Indeed (https://Indeed.com/bikeshed) - Click through and get started with a free seventy five dollar credit for your first job post Telegram (https://telegram.org/) Phoenix Channels JavaScript client (https://hexdocs.pm/phoenix/js/) Express.js (https://expressjs.com/) MongoDB (https://www.mongodb.com/) ErgoDox Keyboard (https://ergodox-ez.com/) A Modern Space Cadet (https://stevelosh.com/blog/2012/10/a-modern-space-cadet/) Atreus Keyboard (https://atreus
-
255: Aiming for 'Capable'
04/08/2020 Duración: 28minOn this week's episode, Steph and Chris chat about the relatively new Rails viewcomponent library from GitHub, Steph talks about her work with Storybook as part of extracting and defining a design system, and they chat about the attrextras project with convenience helpers for ruby & Rails apps. They round out the conversation with some keyboard updates (ErgoDox onramp is steep!) and project rotation notes. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy! ErgoDox (https://ergodox-ez.com/) Atreus Keyboard (https://atreus.technomancy.us/) Rails view_component (https://github.com/github/view_component) Storybook.js (https://storybook.js.org/) Styleguidist (https://react-styleguidist.js.org/) attr_extras (https://github.com/barsoom/attr_extras) Sorbet static types for Ruby (https://sorbet.org/)
-
254: Listener Mailbag Roundup Rodeo
28/07/2020 Duración: 42minOn this week's episode, Steph celebrates passing an important test and discovers an API that returns different data than it's provided while Chris asks the important bikeshed question "What is the proper maximum line length?". They also roundup the latest listener questions and discuss establishing freelancing rates, property-based testing, and time tracking skills that help them manage competing priorities. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy! Prettier Ruby (https://github.com/prettier/plugin-ruby) Toptal (https://www.toptal.com/) Upwork (https://www.upwork.com/) QuickCheck (https://en.wikipedia.org/wiki/QuickCheck) Hypothesis (https://hypothesis.readthedocs.io/en/latest/) Rantly (https://github.com/rantly-rb/rantly)
-
253: Find Yourself Through The Art of Podcast
21/07/2020 Duración: 46minOn this week's episode, Steph and Chris have a brief chat about Snowpack, a new and ultra-speedy bundler in the front-end world, and revisit a conversation around namespacing models in Rails. The conversation then shifts to a discussion of the ins and outs of hosting a podcast and how folks might be able to dive in if they're interested in starting one themselves -- from selecting topics, to the hardware and software they use, to the guiding philosophy in how to discuss technical concepts. This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy Indeed (https://Indeed.com/bikeshed) - Click through and get started with a free seventy five dollar credit for your first job post "Selling Technical Debt Back to The Business" workshop (http://tbot.io/tech-debt) Snowpack (https://www.snowpack.dev/) Vite (https://github.com/vitejs/vite) React Fast Refresh (https://github.com/facebook
-
252: I'm a Designer Now
14/07/2020 Duración: 54minOn this week's episode, Steph and Chris discuss leveraging the Unix utility sed to search files and remove unnecessary test setup, using Vim's Arglist to create a to-do list for file edits, and budgeting time for fancy command-line scripts. They then take a deep dive into the world of utility-first CSS and TailwindCSS. This episode is brought to you by: ScoutAPM (https://scoutapm.com/bikeshed) - Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy ExpressVPN (https://www.expressvpn.com/bikeshed) - Click through to get get an extra three months FREE on a one-year package Register here to attend the free panel discussion "How to sell technical debt to the business" (https://tbot.io/tech-debt) sed (https://www.gnu.org/software/sed/manual/sed.html) The Unix Chainsaw by Gary Bernhardt (https://youtu.be/ZQnyApKysg4) awk (https://en.wikipedia.org/wiki/AWK) Vim's Arglist as a File-Centric Todo List (https://ctoomey.com/writing/using-vims-arglist-as-a-todo-
-
251: Absent-Minded Whistling
07/07/2020 Duración: 37minOn this week's episode, Steph and Chris discuss using JSONB to store survey responses and the differences between JSON and JSONB, using (or not using!) exceptions in Ruby and the fail keyword, the pros and cons of namespacing models in Rails to organize features, and a new recommendation for running tests from vim. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy! Seagull Mic Drop (https://i.kym-cdn.com/photos/images/facebook/001/383/162/20c.jpg) vim-test (https://github.com/vim-test/vim-test) plugin for running tests vim-rspec (https://github.com/thoughtbot/vim-rspec) thoughtbot's plugin for running specs from vim JSON types in Postgres (https://www.postgresql.org/docs/9.4/datatype-json.html) Ruby fail keyword (https://apidock.com/ruby/Kernel/fail) Avdi Grimm and Jim Weirich on exceptions (https://avdi.codes/jim-weirich-on-exceptions/) The Zen of Python (https://www.py
-
250: To Infinity and Beyond
30/06/2020 Duración: 42minOn this week's episode, Chris and Steph discuss the importance of using inclusive language, branching into new branch names, and strategies that encourage the use of inclusive terminology. Chris also shares his latest experience with merging two systems that were split apart back into one system, tackling conflicting foreign keys and competing auth libraries. Steph discusses using polling vs web sockets to monitor work being completed in a background job and communicating to the user the various states of success and failure. Seagulls are the Worst (https://www.youtube.com/watch?v=U9t-slLl30E) Angie Jones (https://twitter.com/techgirl1908) Tatiana Mac (https://twitter.com/TatianaTMac) Pariss Athena (https://twitter.com/ParissAthena) Renaming factorygirl to factorybot (https://thoughtbot.com/blog/factory_bot) Juneteenth (https://en.wikipedia.org/wiki/Juneteenth) Empathy Online (https://thoughtbot.com/blog/empathy-online) SlackBot - Keep Conversations Inclusive (https://thoughtbot.com/blog/slack-tips-for-build
-
249: What Would You Say You Do Here?
23/06/2020 Duración: 41minOn this week's episode, Steph and Chris trade some consulting and everyone comes out a winner. Steph talks about a win and a loss on the battlefield of refactoring, and Chris shares a related effort around identifying and removing unused code. Chris shares a pattern his team has been using with a special "demo" flag to provide small enhancements but otherwise keep sales demos within the product. Steph then shares some friction related to using dependabot on her team's project that hints at more foundational ideas at the intersection of workflow, team dynamics, testing, deployment. And finally, Chris asks Steph for her thoughts on how best to add testing around the structure of API responses. This episode is brought to you by Datadog (http://datadog.com/thebikeshed). Click through to get a free 14-day trial and a free Datadog t-shirt! Coverband (https://github.com/danmayer/coverband) for production code coverage Flipper feature flag gem (https://github.com/jnunemaker/flipper) Dependabot (https://dependabot.com
-
248: Here Be Dragons
16/06/2020 Duración: 34minOn this week's episode, Steph shares a keyboard confession and interest in migrating to a split keyboard layout. Chris dives into creating static error pages that are independent of the app while still leveraging the app's CSS framework. They also respond to a listener question about Conventional Commits and discuss when automation tooling feels helpful vs harmful. ErgoDox EZ Keyboard (https://ergodox-ez.com/) Keyboardio Atreus (https://www.kickstarter.com/projects/keyboardio/atreus) Tailwind CSS (https://tailwindcss.com/) PurgeCSS (https://purgecss.com/) CSS Used Chrome Extension (https://chrome.google.com/webstore/detail/css-used/cdopjfddjlonogibjahpnmjpoangjfff?hl=en) Conventional Commits (https://www.conventionalcommits.org/en/v1.0.0-beta.2/) SemVer (https://semver.org/) semantic-release (https://github.com/semantic-release/semantic-release) husky (https://github.com/typicode/husky) GitHub Issue and Pull Request Templates (https://help.github.com/en/github/building-a-strong-community/about-issue-and-pull-
-
247: Acronyms By Moonlight
09/06/2020 Duración: 49minOn this week's episode, Steph and Chris discuss potential approaches to a complex client-side workflow, Chris shares the highs and lows of his recent adventures revising the caching in a REST API, Steph shares an Ember testing pro-tip and then explores the questions it brings up, and lastly, they revisit prettier-ruby and it's fantastic configuration setup. This episode is brought to you by Datadog (http://datadog.com/thebikeshed). Click through to get a free 14-day trial and a free Datadog t-shirt! prettier-ruby configuration (https://github.com/prettier/plugin-ruby#configuration) Chrome DevTools Keyboard Shortcuts (https://developers.google.com/web/tools/chrome-devtools/shortcuts) Test'em - Ember test runner (https://github.com/testem/testem) Chrome full-page screenshots (https://developers.google.com/web/updates/2017/04/devtools-release-notes#screenshots) Rails action caching (https://guides.rubyonrails.org/caching_with_rails.html#action-caching) Memcachier (https://www.memcachier.com/) Rails stale? and fr
-
246: A True Movement (Pariss Athena)
02/06/2020 Duración: 28minWe are pausing our normal tech-talk this week in support of the ongoing protests and to re-share the #BlackTechTwitter episode with Pariss Athena from our sister podcast, Giant Robots. During the past week, millions of people across the country have participated in protests in response to the killing of George Floyd and the systemic racism that plagues our nation. For everyone fighting for equality and justice, we see you, we love you, and we support you. Black lives matter. Black culture matters. Black communities matter. For those looking for ways to take action, we have provided a few resources in the show notes. The list is intentionally short as we ask everyone to research ways to get involved and listen to leaders in the Black community. Fighting for equality falls on each of us, regardless of race or position, to work together to fight racism and unequal treatment. Stay Safe. Giant Robots: A True Movement (Pariss Athena) (https://www.giantrobots.fm/343) Black Tech Twitter (https://twitter.com/search?q=
-
245: Developer Therapy (German Velasco)
27/05/2020 Duración: 45minOn this week's episode, Steph is joined by thoughtbotter German Velasco. German and Steph chat about remote work and the rewards and challenges of their new(ish) roles as Development Team Leads. German also shares that he is writing a book! German shares his approach for defining a MVB (Minimum Viable Book), ideas for how to collect feedback, and plans for publishing. Lastly, they discuss a vim plugin that lives up to the hype. This episode is brought to you by Datadog (http://datadog.com/thebikeshed). Click through to get a free 14-day trial and a free Datadog t-shirt! To register for the free online workshop "How to Supercharge Your Rails App with a Code Audit", visit https://thoughtbot.com/events/code-audit-workshop. GitBook (https://www.gitbook.com/) Michael Hartl - The Ruby on Rails Tutorial (https://www.railstutorial.org/) Workshop - Being Human in the Absence of Humans (https://info.thoughtbot.com/remote-product-team-resources) Workshop - How to stay agile when building compliant health tech products (
-
244: Existential JavaScript
19/05/2020 Duración: 40minOn this week's episode, Steph troubleshoots a mysterious Ember test failure that can't find a visible element, and Chris recounts an exciting three-act adventure that spans N+1 queries, caching, and SQL window functions. Steph also touches on upgrading to Ember Octane and Glimmer components and Chris shares a new helpful tool for drawing architecture diagrams. Window.find() (https://developer.mozilla.org/en-US/docs/Web/API/Window/find/) Dash (https://kapeli.com/dash/) Wat - Lightning talk by Gary Bernhardt (https://www.destroyallsoftware.com/talks/wat/) Draw.io (https://app.diagrams.net/) batch-loader (https://github.com/exAspArk/batch-loader) SQL Window Function (https://thoughtbot.com/blog/postgres-window-functions) Advanced ActiveRecord Querying (https://thoughtbot.com/upcase/advanced-activerecord-querying) Scout (https://scoutapm.com/) ActiveSupport::Notifications (https://api.rubyonrails.org/classes/ActiveSupport/Notifications.html) Ember Octane (https://emberjs.com/editions/octane/) Pry show-source (htt
-
243: I'm Not a Couch Worker
12/05/2020 Duración: 40minOn this week's episode, Chris shares his recent explorations of railway oriented programming (hint: not what you think!) while doing his best to avoid words like "monad" and "functor" (he does not succeed in this effort). Steph updates on her quest for the ultimate personal note taking app and some misadventures in DNS and networking, and they touch on their shared search for ergonomics in the home office world we all live in these days. This episode is brought to you by ExpressVPN (https://www.expressvpn.com/BIKESHED). Click through to get three months for free. Chris's new rounded footrest (https://www.amazon.com/gp/product/B07QZDLZVZ/ref=ppx_yo_dt_b_asin_title_o07_s00) VSCode LiveShare (https://code.visualstudio.com/blogs/2017/11/15/live-share) dry-monads (https://dry-rb.org/gems/dry-monads/1.3/) dry-monads Do notations (https://dry-rb.org/gems/dry-monads/1.3/do-notation/) Railway Oriented Programming (https://fsharpforfunandprofit.com/rop/) Dont Use Exceptions For Flow Control (https://wiki.c2.com/?DontUs
-
242: As Few Consonants as Possible
05/05/2020 Duración: 41minOn this week’s episode, Chris and Steph share their excitement for Roam Research and formatting Ruby with Prettier Ruby. They also discuss writing test coverage for an important GDPR process, embracing async communication, and share their preferred strategies for knowledge sharing within teams and the broader community. Roam Research (https://roamresearch.com/) Bear (https://bear.app/) DayOne (https://dayoneapp.com/) Reveal.js (https://revealjs.com/#/) Github Draft Pull Requests (https://github.blog/2019-02-14-introducing-draft-pull-requests/) Prettier Ruby (https://github.com/prettier/plugin-ruby) CoC (https://vimawesome.com/plugin/coc-nvim) GDPR (https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) Stack Overflow for Teams (https://stackoverflow.com/teams) Basecamp (https://basecamp.com/) Twist (https://twist.com/home) The Golden Rule for programmers (https://thepugautomatic.com/2014/07/golden-rule/)
-
241: What If We Just Put a Phone Number?
28/04/2020 Duración: 36minOn this week's episode Steph and Chris dig into MVP thinking and asking how we can write as little code as possible before finding out if any user will actually want the thing we're building. They also tackle a listener question around Vim and the general ROI on honing our developer tools, discuss some of the subtleties of HTTP and forms as well as the difficulties when half of our UI is in React and the other half Rails, and lastly chat a bit about their adaptation to full-time remote work. VS Code (https://code.visualstudio.com/) Mastering the Vim Language talk by Chris (https://www.youtube.com/watch?v=wlR5gYd6um0) Bogdan Gusiev's Rails issue describing the select multiple behavior (https://github.com/rails/rails/pull/1552) postgres check_constraint (https://www.postgresqltutorial.com/postgresql-check-constraint/) Formik (https://formik.com/) react-hook-form (https://react-hook-form.com/) Balsamiq Mockups (https://balsamiq.com/) 7 Tips for Better User Interviews with Jaclyn Perrone (https://www.userintervie