162: PHP + JIT = GR8 with Joe Watkins

In this weeks episode we have good friend of the show Joe Watkins back on to discuss the recent developments in PHP. We start off by highlighting how code is currently compiled and executed using the Zend VM, and distill how the recently approved JIT (for PHP 8) will change this. From here we mention the reasoning for going down this path now, the difference between I/O vs CPU bound code, and the use-cases where the JIT will improve performance. This leads us to the PHP compiler project Anthony Ferrara is working on (with the goal of Ahead-of-Time PHP compilation), and the new parallel concurrency API Joe is working on which uses a model similar to Goroutines. Finally, we discuss his recently approved Weak References and Abolish Narrow Margins RFC’s.


161: Exploring Bitcoin with Mattias Geniar

In this weeks episode we are lucky to have Mattias Geniar back on the show to discuss his experiences delving into Bitcoin and Cryptocurrencies. We start off by chatting about his introduction to Bitcoin, the ‘bear market’ of 2018 and how valuable the ‘Mastering Bitcoin’ book is to understanding its’ internals. From here we move on to the concept of ‘Code is Law’ and the implications of such an approach, the pros n’ cons of being a developer in this space, and how he stores his private keys (not your keys, not your coins!). This leads us to highlight second-layer scaling solutions such as the Lighting Network, and the confusion around projects reusing the Bitcoin name. We then touch upon the power of Ethereum, its’ planned consensus transition from PoW to PoS, and how different it is developing on a distributed platform. Finally, we look at the Mimblewimble protocol and Atomic Swaps, discussing their use-cases and how they can improve the space.


160: Serverless PHP using Bref with Matthieu Napoli and Neal Brooks

In this weeks episode we are lucky to have both Matthieu Napoli and Neal Brooks on the show to discuss all things Serverless PHP. We start off by discussing what drew Matthieu to Serverless, the creation of the Bref project and the technical challenges encountered with getting PHP to work within the Lambda environment. From here, we touch upon the reasons behind moving from the Serverless Framework to SAM (for the 0.3 release) and how Bref uses the new Lambda Layers and Runtime API. This leads us on to highlight how a typical PHP project would use Bref, the decision to be opinionated in order to stay minimal and the experimental Loop SAPI. Finally, we envision what the future holds for the Bref project and Serverless compute.


159: PHP Test Tooling and RFC Roundup with Joe Watkins

In this weeks episode we are joined by Joe Watkins for a long overdue catchup. We start off the show by discussing what Sandboxing is and the new Sandbox extension he has developed. From here, we touch upon test-doubles/mocking frameworks, the reasoning behind building uopz in the past, and now componere/mimus to aid in testing. This leads us on to highlight what test coverage is, the history of coverage tooling within PHP, and the new exciting pcov extension he has released. Finally, we do a big ol’ RFC roundup, discussing RFCs that have been accepted for PHP 7.4 (FFI, Typed Properties and Preloading) and ones under discussion (JIT and Weak References).


158: Hexagonal Architecture (Ports and Adapters) with Matthias Noback

In this weeks episode we are lucky to have Matthias Noback on the show to discuss software architecture design. We start off the show by highlighting why we should invest time in the architecture of our software, and what is meant by ‘layers’ of an application. This leads us to discuss what Hexagonal Architecture (Ports and Adapters) actually is, Infrastructure vs. Core (Domain, Application) and the Dependency Inversion Principle. From here we mention the different responsibilities Ports and Adapters have, the different forms of testing you can do within this architecture and Use-cases/Command Buses. Finally, we touch upon the new book ‘Style Guide for Object Design’, which Matthias is currently in the process of writing.


157: The Symfony Ecosystem with Nicolas Grekas

In this week’s episode Edd and guest co-host Neal Brooks chat to Nicolas Grekas about all things Symfony. We start off discussion with how he got interested in programming, his introduction to Symfony, and his journey to now working on the code-base almost daily. This leads us on to talk about how he helped build the performance profiler Blackfire, and the importance of quantitative measurements whilst making performance improvements. From here we highlight managing pull requests, the social factors when leading open-source projects and Symfony’s continuous migration path. Finally, we touch upon the recently released Messenger component and upcoming Symfony Contracts initiative.


156: Running Symfony on AWS Lambda with Neal Brooks

In this weeks episode we are lucky to be joined by Neal Brooks, a fellow developer of Edd’s at MyBuilder. We start off by discussing how he got into programming, QBasic and video driver shenanigans. From here, we move on to introduce his SymfonyLive London talk ‘Running Symfony on AWS Lambda’. We highlight what drew him to Lambda, and the new tooling that is making it easier to run PHP and frameworks (such as Symfony) on it. This leads us to cover his demo application, and explore handling assets using S3, database migrations and AWS resources using CloudFormation. Finally, we debate using catch-all gateway endpoints vs. dedicated gateway endpoints and Lambda performance.


155: Bridging the Security Gap with Scott Arciszewski

In this weeks episode we are lucky to be joined by Scott Arciszewski to discuss all things Security. We start off by chatting about a recent talk he gave at DEF CON 25 and the importance of secure API design. From here we highlight Google Tink, misunderstandings of how PHP has changed over the years and what CVE’s are. This leads us on to delve into the tools and processes used within the reconnaissance phase of a security engagement. Finally, we briefly mention Quantum Computing and its impact on cryptography - followed by best practises for securely managing secrets within web applications.


154: Why all the Curly Braces? with Scott Wlaschin

In this weeks episode we are lucky to have Scott Wlaschin back on the show to discuss his most recent talk ‘Four Languages from Forty Years Ago’. We start off by talking about why the 1970’s was such an influential decade for language design. This leads us on to highlight what a programming language fundamentally is, and explain the many different paradigms that are present. From here, we explain the issue with throwing out the design phase completely when building software, and the interesting points made in Richard Gabriel’s ‘Worse is Better’ essay. Finally, we try to make sense of why all popular programming languages today follow a very similar style, and what is with all the curly braces?!


153: The Mouse in the House

In this weeks episode we start off discussion around testing in a Continuous Integration pipeline, and setting up a personal Bamboo CI system. We then move on to separating domain logic from the delivery, and how a Package-Bridge-Delivery split works. After a small mouse related intermission, we touch upon experiences building custom Babel plugins and testing using Jest, Travis CI and Docker. Finally, we highlight creating small CLI applications with Go, Serverless Offline and Logic-Gates/8-bit computers.