110: Getting Started using Composer with Jonathan Klein

In this weeks episode we are joined by Jonathan Klein to discuss his recently released Composer Pluralsight course. We start off by discussing the problem Composer is trying to solve, followed by past attempts at trying to solve it in the PHP landscape. Following this, we move on to discuss how the composer.json and composer.lock files work, the importance of versioning, the Semantic Versioning standard and how autoloading works. Finally, we delve into a couple of lesser-known Composer features, such as the event life-cycle, scripts and the plugin architecture that is present.


109: Processing Signals and Collecting Garbage with Joe Watkins

In this weeks episode we have a long overdue catch-up with Joe Watkins. We start off discussion with progress on PHP 7.1 and work Joe has been doing to provide an interface to libui within PHP. We then move on to chat about a couple of interesting RFC’s that are currently under-discussion, followed by managing long-running PHP processes with Supervisor and Unix signaling. Finally, we highlight how Garbage collection works and how PHP implements the concept to help manage memory.


108: The Vinyl Experience

In this weeks episode we start off discussion on the latest Apple event, what we think the next big product will be (the Apple Hat?!) and phone battery life woes. We then move on to chat about immutable design considerations, controlling mutation to aid performance and being bit by values vs. references. From here we highlight how profilers such as Blackfire are a great way of benchmarking/profiling your application - providing statistics over only your own intuitive claims. Finally, we mention database backup strategies, AVL trees and adding AirPlay support to your Vinyl deck.


107: More Chemistry than the Periodic Table

In this weeks episode we start off the show by catching up on the ‘programming filled’ holidays both Edd and Mick have just come back from. We then move on to discuss Mick’s photo-shoot?!, Edd’s half-marathon training and highlight our deployment/testing processes. Finally we ‘Shave the Yak’ and discuss event-oriented system design - highlighting how it has been used in a recent project and the pros n’ cons of such an approach.


106: The World of Amazon Web Services with Jason Marden

On this weeks episode we are lucky to be joined by Jason Marden, to discuss the world of Amazon Web Services. We start off the show talking about Jason’s recent visit to the AWS Summit in London, and what the talking points were from the conference. From here we delve into the Serverless Architecture, how AWS Lambda is paving the way of FAAS, containers and view-based aggregation services. The Immutable Server is next brought up, highlighting the change in deployment philosophy that can be achieved by using such a concept. Finally, we discuss the value of a good debugger, bringin’ back awesome screen-savers and the craze of Pokemon Go.


105: Hip hip (array)

On this weeks show we start off discussion around what we have been up to away from the keyboard, and an update on Mick’s big freelance project. We then move on to the pros n’ cons of being tied into an ecosystem such as AWS, React performance, Micro-services and the expected FUD outcry when a web application makes a significant change. Finally, we chat about how important logging and monitoring are within an application, and how it can become tricker to track down issues when a system is sufficiently large or a sum of many parts.


104: Falling into the Pit of Functional Success with Jimmy Burrell

In this weeks episode we are lucky to be joined by Jimmy Burrell for a long over-due ‘geek out’. We start off discussion around his recent functional programming exploration, and how you can take many of these principles into your day-to-day OOP language. Following this we chat about what drew Jimmy to F#, the REPL, making illegal states unrepresentable and reasoning about immutable data-structures. From here we highlight some of F# capabilities including, pattern matching, computational expressions, type providers, currying and concurrency paradigms. Finally, we wrap up the show discussing our experiences learning about monads, the continuation passing style, and thinking in terms of data transformations.


103: Caching up with Joe Watkins

In this weeks episode we are lucky to be joined by Joe Watkins. We start off discussion around the development of PHP 7.1 and the recent initial alpha release. Following this, we give an update on a couple of previously mentioned RFC’s, along with how Joe’s ones are doing. This leads us on to highlight how some small proposed changes are paving the way to optimal machine-code and finally integration of a JIT compiler. Some of these proposed changes may result in backwards compatibility breaks, we discuss this topic and when it is deemed acceptable to permit this. Finally, we chat about memorisation, caching and how it is not really feasible to distill a standard caching interface that fits all requirements.


102: Postgres Performance Tuning and Query Planner with Bruce Momjian

In this weeks episode we are very lucky to be joined by Bruce Momjian to discuss Postgres Performance Tuning and Query Planner. We start off discussion around how Bruce got interested in Database Systems, a brief history of Postgres and his involvement with the project over the years. Following this we highlight the three main areas which affect database performance - hardware, server configuration and SQL/indexing. With this knowledge in hand, we then delve into the Query Planner, demystifying some of the terminology and concepts used (i.e. cost, scan methods and join methods). Finally, we summarise how these concepts are used by Postgres to decide which query plan to pick for a supplied query.


101: Introduction to Webpack with Juho Vepsäläinen

In this weeks episode we talk to Juho Vepsäläinen about all things Webpack. We start off discussion with how he got into JavaScript and what drew him to write the SurviveJS books. Moving onto Webpack, we chat about the problem it is trying to solve, what a bundler is and how it differs from a task runner. We highlight some of the interesting features that Webpack has to offer such as bundle splitting, integration with UglifyJS/Babel and lazy loading. Finally, we discuss the road-map for Webpack 2, new concepts which are being integrated such as tree shaking for dead code elimination and weighing up use of CDN’s for dependencies.