280: Reginald P. Theodore Johnson

Embedded.fm · 8 Mar 2019 · 1h 00m · Episode 280

What this episode covers

Hosts Elecia White and Christopher White discuss software design patterns, including Wrapper, Decorator, and Observer, using the 'Gang of Four' and 'Head First' books as references. They cover practical embedded applications like the CM0s hardware abstraction layer, dependency injection, and the Model-View-Controller pattern for UI separation. The episode also features announcements for the KiCad conference in Chicago and a recap of the BangBangConWest conference, along with a discussion of Python static analysis tools like PyFlakes.

Mentioned

Tools
KiCad, PyFlakes
Also
BangBangConWest, Gang of Four, Head First Design Patterns

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 52m

    Patterns in the Machine with John and Wayne Taylor

    John and Wayne Taylor, authors of the book 'Patterns in the Machine', discuss strategies for creating reusable, decoupled code in embedded software development. They advocate for upfront architectural planning, including defining constraints and using functional simulators, to enable agile execution later in the project. The conversation covers specific patterns like the data model architecture for decoupling drivers from applications, and the importance of writing documentation that captures intent rather than just implementation details. They also address the cultural and logistical challenges of reusing code across different projects and organizations.

  • The Pragmatic Embedded Podcast · 30m

    Testing on the Host vs Target

    Jeff Gable and Luca discuss the strategy of testing embedded software on the host machine versus the target hardware, arguing that host testing catches the majority of bugs while target testing is reserved for hardware-specific interactions. They introduce architectural patterns like the Model-Hardware-Controller (MHC) and the Data Model pattern to decouple business logic from hardware, enabling effective unit testing. The conversation also covers handling resource-constrained systems by optimizing last and using special integration tests to uncover low-level bugs like interrupt priority issues.

  • The Pragmatic Embedded Podcast · 39m

    Christmas Special

    Hosts Jeff Gable and Luca share war stories from their careers in embedded systems, highlighting the pain of manual testing in helicopter avionics, the chaos of managing requirements with Word and Excel in Dropbox for medical devices, and the technical debt of massive #ifdef blocks in legacy machine tool software. They discuss the industry's slow adoption of modern software practices like version control and CI/CD, contrasting embedded development with web development standards. The episode concludes with book recommendations including 'The Phoenix Project' and 'Team Topologies', and reflections on the future of IoT security and agile adoption in hardware.

  • The Pragmatic Embedded Podcast · 41m

    Magic is Bad

    Hosts Jeff Gable and Luca Ingianni discuss the dangers of 'magic' in software abstractions, arguing that while tools like Arduino are useful for beginners, overly complex or opaque systems like CMake and vendor IDEs create long-term maintenance risks. They contrast these with good abstractions such as TCP sockets, Miro Samek's QP framework, and the 'data model pattern,' emphasizing that effective design prioritizes testability, composability, and transparency over reducing typing. The conversation highlights how 'magical' tools often fail when users hit their limits, leading to brittle code and increased project risk.

  • The Pragmatic Embedded Podcast · 48m

    Crossover with Mob Mentality part 1

    Jeff Gable and Luca Johnny of the Agile Embedded Podcast join Chris Lucian and Austin Chadwick of the Mob Mentality Show to discuss bridging hardware-software gaps in embedded systems. They argue that hardware abstraction layers and decoupling strategies allow embedded code to be tested on PCs, while mob programming eliminates silos between electrical, mechanical, and software engineers. The group highlights how mobbing improves flow efficiency and reduces documentation overhead in safety-critical medical device development by integrating all necessary roles into a single team.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by Embedded.fm. The episode itself belongs to its publisher.