Rubber Duck Thursdays - Come cowork and code!

By GitHub

Share:

Rubber Duck Thursdays - December 21st, 2023 Summary

Key Concepts:

  • Rubber Duck Debugging: The practice of explaining code or a problem to an inanimate object (the "rubber duck") to clarify one's thinking. This stream embodies this concept through open Q&A.
  • GitHub Copilot: An AI pair programmer developed by GitHub and OpenAI, offering code suggestions, explanations, and more.
  • Model Context Protocol (MCP): A protocol enabling AI agents to interact with APIs and tools, bridging deterministic and non-deterministic systems.
  • GitHub Game Off: An annual game jam hosted by GitHub, fostering community and creative coding.
  • AI Agents: Autonomous entities powered by AI, capable of performing tasks and interacting with systems like GitHub.
  • Feature Flags: Techniques for enabling or disabling features in software without deploying new code.
  • Contribution Guidelines: Documentation outlining expectations for contributions to open-source projects.

1. Introduction & Community Updates (0:00 - 2:30)

The stream began with a welcome and acknowledgement that this was the last Rubber Duck Thursday session before the holiday break. The host encouraged attendees to share what they were working on and participate in the chat. A brief mention was made of a previous accidental public exposure of a repository ("Oh no, you committed a file and made the re pod repo public. Oh no, that's not good.") highlighting the importance of careful version control.

2. Personal Project: "Blogvent" (2:30 - 4:00)

The host shared their personal project, "Blogvent," a daily blogging challenge inspired by Advent calendars. Initially focused on technical posts related to coding, it has expanded to include more general topics. The host described the initial motivation and the challenge of maintaining consistency as the project progressed. The blog is available for viewing (link shared in chat).

3. WebRTC & SFU Servers (4:00 - 5:30)

A participant was working on Turn servers for WebRTC using Cloudflare's Real Time. The host clarified that SFU stands for "Serverless Audio Video and Data Applications" (though acknowledged the acronym's arbitrary nature). This briefly touched on the complexities of real-time communication infrastructure.

4. GitHub Game Off 2023 Recap (5:30 - 9:00)

The host discussed the GitHub Game Off 2023, the 13th year of the event, with the theme "waves." They shared the website (github.gameoff.com) and highlighted several interesting submissions:

  • A game where elements affected obstacle navigation.
  • A spooky cabin-in-the-woods game ("waves from beyond") that created a frightening atmosphere.
  • A challenging game involving navigating the Bermuda Triangle with limited fuel.

The host encouraged viewers to vote for their favorite games.

5. GitHub Certifications (9:00 - 12:00)

Responding to a question, the host presented the available GitHub certifications (learn.github.com):

  • GitHub Copilot: Focuses on utilizing the AI pair programmer.
  • Security: Targeted towards DevOps professionals.
  • GitHub Foundations: A good starting point for open-source contributions.
  • GitHub Admin: Geared towards IT professionals.
  • GitHub Actions: Covers CI/CD pipelines and workflow automation.

The host admitted to not having taken the certifications themselves but acknowledged their value for demonstrating expertise.

6. GitHub Mobile App Utility (12:00 - 13:00)

The host addressed the usefulness of the GitHub mobile app, noting that while some maintainers use it for reviewing PRs on the go, they personally prefer using a larger screen for code review.

7. Managing Issues & Pull Requests (13:00 - 25:00)

This section covered strategies for managing contributions in projects of varying sizes:

  • Contribution Guidelines: Essential for setting expectations and directing contributions. An example from the host’s “pocket cal” repository was cited.
  • Home Assistant as a Large-Scale Example: The host referenced Home Assistant’s extensive documentation (code of conduct, contribution guidelines) as a model for large open-source projects (2.6k issues, 600 PRs).
  • GitHub Copilot Code Review: A tool for automating PR reviews and providing feedback. Angie Jones’ blog post ("How I taught GitHub Copilot Code Review to think like a maintainer") was recommended (link shared in chat).
  • AI-Assisted Prioritization: Using AI tools to help prioritize issues based on factors like comments or urgency.

8. Branching Strategies (25:00 - 27:00)

The host strongly advocated for creating separate branches for each feature, preventing scope creep and simplifying code review. An example was given of a PR that became overly complex due to changes being made on a single branch.

9. Resources for Game Assets (27:00 - 28:00)

Kenny.assets was recommended as a source for free game assets (link shared in chat).

10. GitHub MCP Server Deep Dive (28:00 - 38:00)

A significant portion of the stream was dedicated to explaining the GitHub MCP (Model Context Protocol) server (github.com/mcp). Key points:

  • MCP Definition: A protocol allowing AI agents to interact with APIs and tools, enabling deterministic tool use within non-deterministic AI systems.
  • Integration with Copilot: The MCP server is automatically integrated with GitHub Copilot.
  • Use Cases: Triage issues, manage pull requests, monitor GitHub Actions, and automate tasks.
  • Practical Example: The host demonstrated using the MCP server to list issues in a repository using a prompt within VS Code.
  • MCP Registry: A central location for discovering and connecting MCP servers (github.com/mcp). Numerous servers were highlighted, including those for Playwright, Chrome DevTools, and Notion.

11. GitHub Copilot Licensing & Use Cases (38:00 - 48:00)

The host discussed GitHub Copilot licensing (github.com/features/copilot), noting that it is now free for many users, with paid tiers offering additional features. Numerous use cases were outlined:

  • Code Completion & Generation
  • Question Answering
  • Code Editing
  • Agent Mode: Automating tasks and workflows.
  • CLI Integration: Bringing agent capabilities to the terminal.
  • Integration with MCP Servers: Enhancing Copilot’s capabilities with access to GitHub data and tools.

12. The Importance of a Human-in-the-Loop (48:00 - 52:00)

The host emphasized that AI tools like Copilot should augment developers, not replace them, particularly junior developers. They cited an article from the AWS CEO supporting this view. The host stressed the importance of critical thinking and understanding the underlying code, even when using AI assistance.

13. Agent Prompts & Resources (52:00 - 57:00)

  • Prompts.hat.chat: A website providing example prompts for AI agents (link shared in chat).
  • Awesome Copilot Repository: A community-driven repository of agents and configurations (github.com/github/awesomecopilot).
  • Agent Structure: The host demonstrated creating an agent folder in a repository (agents/agent_name.md) to define specific agent behavior.

14. Closing Remarks & Stream Schedule (57:00 - End)

The host announced their upcoming stream on Twitch (twitch.com/casadoo) in 30 minutes and provided their website (cassadoo.co) and BlueSky handle. They thanked attendees for their participation and wished everyone happy holidays.

Synthesis:

This Rubber Duck Thursday session was a comprehensive exploration of AI-powered development tools, particularly GitHub Copilot and the MCP server. The host effectively balanced technical explanations with practical examples, demonstrating how these tools can enhance developer productivity and streamline workflows. A recurring theme was the importance of maintaining a human-in-the-loop approach, emphasizing that AI should augment, not replace, human developers. The session also highlighted the value of community resources like the GitHub Game Off and the Awesome Copilot repository.

Chat with this Video

AI-Powered

Hi! I can answer questions about this video "Rubber Duck Thursdays - Come cowork and code!". What would you like to know?

Chat is based on the transcript of this video and may not be 100% accurate.

Related Videos

Ready to summarize another video?

Summarize YouTube Video