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!