Community

Bikeshed! Live!

Bikeshed! Live!

by Evan Phoenix and Adam Keys

The video "Bikeshed! Live!" features a live coding session presented by Evan Phoenix and Adam Keys at RubyConf 2015, where they incorporate humor and audience engagement into a pair programming challenge. The format elevates a typical coding demonstration by adding play-by-play commentary and inviting audience interaction. The session revolves around a coding exercise where the participants—Aaron Patterson, Eileen, and Mike Param—work on building a 'Fallout solver' for a puzzle in the game Fallout 4 that involves guessing passwords through a limited number of tries.

Key points discussed throughout the video include:

- Interactive Pair Programming: The format allows participants to tag in and out while coding, illustrating the dynamics of collaboration in programming.

- Audience Engagement: Audience members are encouraged to participate by calling for tag-outs or suggesting ideas, creating an interactive atmosphere.

- Technical Discussions: The group covers various technical topics, including test-driven development, debugging challenges, and opinions on coding practices, which lend insights into effective coding strategies.

- Coding Challenges and Dynamics: As the coding progresses, commentary highlights the tension between fun and effective coding; discussions swing between playful banter and serious critiques that illuminate common programming pitfalls.

- Final Stretch and Wrap-up: The session culminates in a tense atmosphere as the time runs out, pushing contestants to finalize their code, celebrating accomplishments amidst challenges, and issuing awards based on audience applause.

Significant examples include humorous exchanges about coding tools, such as a uniquely crafted keyboard and decisions made regarding frameworks (MiniTest) used in their coding efforts. The participants' varying experiences contribute to a rich discussion on coding techniques.

The main takeaways from this engaging session highlight the importance of collaboration, community involvement in coding practices, and the balance between entertainment and technical rigor in software development. The hosts emphasize the value of maintaining a playful attitude while engaging in serious programming tasks, reminding viewers to continue coding and have fun in the process.

00:00:14.549 Dada da-da-da-da-da-da da-da-da-da-da-da.
00:00:21.419 Welcome to Bikeshed Live with your hosts Adam Keys and Evan Phoenix. Good evening, everyone!
00:00:34.269 This is Bikeshed Live, related to the podcast. Yes, there's a name for everything like this. We were going to do play-by-play commentary; that's also a thing.
00:00:47.649 So, what this is, is we're going to have three people on stage pair programming. One of them will be able to tag out at any given time.
00:01:01.210 We will provide a sports play-by-play style broadcast, complete with commentary and, perhaps, some constructive criticism—though it’s probably not going to be constructive.
00:01:14.740 We're just going to have some fun with it! There will absolutely be audience participation at some point.
00:01:27.970 We’re really excited about our sponsors, the Bikeshed NBC Network, and we’d like to bring out our coders today!
00:01:42.640 Hailing from beautiful Seattle, Washington, you might know him on the Internet as that guy with the cats and the keyboards—it's Aaron Patterson!
00:01:51.270 Welcome on stage, Aaron! He is a coder at Red Hat Software, previously of AT&T, and has had a solid career fixing many of our bugs, especially security issues.
00:02:02.530 He’s done some really great work in the community and is a big community player. And let’s not forget the impressive beard—it's strong!
00:02:15.150 Next, our second participant is Eileen, a second-year developer at 37signals in Chicago.
00:02:27.599 She hails from upstate New York and has been fixing many of our bugs, making everything incredibly fast!
00:02:39.480 And finally, wrapping out our stellar team from Cornell University, it’s Mike Param! You might know Mike, please give him a round of applause.
00:02:51.270 Mike Param is the monkey in the middle; he works on Sidekiq, which you probably use in your applications. He also maintains the Dolly Memcached gem, making your infrastructure really nice.
00:03:20.609 As you might have noticed, we are pair programming with three people, and one person will tag in and out randomly.
00:03:27.599 We’ve put a lot of time into prep for this. If you in the audience feel like someone should tag out, just yell! Please be nice about it, though.
00:03:44.519 What they’re going to be working on today is a Fallout solver. In this new game, Fallout 4, there are puzzles where you must hack a computer terminal with a limited number of guesses to figure out the password.
00:04:12.900 So, you guess, and the game tells you how many letters are correct. I’ve sat there trying to hack these terminals, thinking it’s such a waste of time when I could be writing a program to do this.
00:04:54.980 Let’s do some quick pregame interviews! Mike, how are you feeling about the matchup today?
00:05:17.849 Not really strong, Evan.
00:05:22.259 Eileen, how are we feeling? I was feeling a lot better before we had him on the team! This should make for an interesting matchup.
00:05:36.449 There’s been quite a bit of drama in the locker room this week. The press conferences were very tense, with lots of speculation on the fan sites.
00:05:50.679 Aaron, any last words before we begin?
00:06:01.380 Always keep it brief.
00:06:15.330 Just take a second to get set up. Part of this whole thing is not just us entertaining you, but also watching people pair program.
00:06:29.069 Is it important for you to see the screen? If not, we can connect and adjust colors or sizes.
00:06:36.240 We’ve begun the bike shedding.
00:06:54.930 Aaron mentions that he doesn’t like to use Emacs for coding. This is an interesting point in the evolution of their code.
00:07:20.339 How do I keep from swearing on stage? You don’t have to worry, we’re all adults here. Well, I’m reminded that there is actually a minority of non-adults.
00:07:39.480 Aaron has reversed the color scheme, which some may not understand as we’re moving to an empty file.
00:07:50.560 Let’s see how this plays out. They’re going with MiniTest, which is already a controversial decision!
00:08:04.290 It’s like opening the game with an onside kick! Who is your favorite, Beatles or Rolling Stones?
00:08:20.600 Let’s get back on track. They’re in a shell, which can feel nervous in front of an audience.
00:08:31.990 Aaron starts with a strong prototype approach. But sometimes the best prototype is a blank file.
00:08:48.390 Aaron is using a controversial keyboard that he travels with everywhere. It’s a handmade, artisanal keyboard.
00:09:11.360 There’s an assertion hiding test passing by accident. Did we write any code? We’re too busy talking!
00:09:21.309 They’re off to a strong start with an important function. Here’s hoping there’s solid progress!
00:09:43.999 They seem to be off to a slow start without writing any productive code. It’s going to come back to bite them.
00:10:00.250 It’s clear they’re proving how far one can go by hard coding directly against the tests.
00:10:21.430 Now, they’re using Ruby and discussing how Ruby’s implementation allows for some interesting techniques.
00:10:34.390 Let's take questions from the audience about the new 'question dot' operator.
00:10:52.470 Let’s hear some opinions on it. How has it affected your code?
00:11:12.210 Let’s talk about websites—who’s still using them?
00:11:32.070 A participant mentions a round of applause, and the host summarizes earlier talks.
00:11:48.190 We’ve got a fun segment about test-driven development approaches now.
00:12:00.500 It’s often more beneficial if the development actually matches the test requirements.
00:12:20.960 They discuss debugging and get a little silly with their commentary.
00:12:37.780 Engaging with the audience on opinions helps lighten the mood during the competition.
00:12:56.640 Momentary thoughts of competition lead to discussions on the development process.
00:13:12.640 Mid-game, and conversations range from implementing tests to competing against each other.
00:13:30.020 The audience is engaged, providing ideas and opinions as they observe the coding.
00:13:45.340 It’s almost time for half-time! Stretching and moving are encouraged.
00:14:11.550 Discussions on pairs coding appear and provide thoughtful critiques to the ongoing development.
00:14:32.290 Posturing and insights from the team reveal an observer's perspective on engagement.
00:14:53.300 It’s essential to stay focused on the outcome while having fun with the testing.
00:15:11.840 A dance breakout is attempted, though no one appears prepared.
00:15:28.050 Our commentators enjoy providing engagement that allows for lively moments.
00:15:45.750 What began as a fun session now evolves into more rigorous testing and input.
00:16:06.640 Excitement builds as the coding intensifies and resolutions come into view.
00:16:22.210 As it nears the deadline, discussions circle back to strategies for successful implementation.
00:16:42.320 As the audience watches and engages, we see more creative solutions diverging from traditional paths.
00:17:02.450 Participants lean into the challenge, pushing the limits of their coding techniques.
00:17:21.580 Amidst the laughter and frustrations of testing, the chemistry remains strong.
00:17:40.710 With just moments to spare, the pressure in the air becomes palpable.
00:18:05.340 As the time runs out, the team pushes to finalize their changes.
00:18:25.480 The atmosphere is charged with victory as they approach the final stretch of coding.
00:18:44.310 The session closes with laughter around accomplishing goals that perhaps weren’t planned.
00:19:08.240 Our hosts unveil special awards for the contestants based on audience applause.
00:19:29.150 The contestants take a moment for introspection amidst the cheering support.
00:19:50.180 As this session concludes, everyone celebrates the collaborative journey taken together.
00:20:05.990 The event wrapped up with gratitude expressed to all participants and supporters.
00:20:23.840 Leaning on both craftsmanship and camaraderie, they move forward toward future collaborations.
00:20:40.330 The hosts announce a finale reminder to keep coding and having fun!