Three Devs and a Maybe

Three Devs and a Maybe

By Michael Budd, Fraser Hart, Lewis Cains, Edd MannTechnologyEducation
Download on the App Store

Three Devs and a Maybe episodes

  • 114: Episode 2.0 with Joe Watkins

    In this weeks episode we are joined by good friend of the show Joe Watkins.

    We start off discussion with the successful release of PHP 7.1 and what is in store for Joe now as release manager for that version.
    Following this, we chat about the libui and Yubico PHP wrappers he as been working on and development of a better Raspberry Pi OS.
    Finally, we highlight progress made towards incorporating a JiT compiler within PHP and some interesting things you can do with Zero-width joiner’s and Emoji’s in Unicode.

    Show Links
    • PHP 7.1.0 Released
    • PHP RFC: Debugging PDO Prepared Statement Emulation v2
    • andlabs/libui
    • The GTK+ Project
    • krakjoe/ui: Cross platform UI development in PHP
    • Musings, ninja ones: Expanding Horizons
    • Joe Watkins on Twitter: “#PHP 7 drew, and is animating, what you see here with #libui”
    • Yubico
    • krakjoe/u2fh: PHP7 u2fh
    • krakjoe/u2fs: PHP7 u2fs
    • Yubico/php-yubico: PHP class for Yubico authentication
    • HomePlugs
    • LastPass
    • Have I been pwned?
    • Raspberry Pi
    • elephos
    • elephos/buildroot: buildroot source for image creation
    • Windows 10 IoT Core
    • X Window System
    • Wayland
    • wayland-project/weston: Reference compositor for Wayland
    • raspberrypi/maynard
    • php.internals: JIT for PHP project
    • Just-in-time compilation
    • Lua Programming Language
    • DynASM
    • Wes Bos on Twitter: “Woah, you can an ES6 spread to see what an emoji is made up of”
    • Emoji.prototype.length - a tale of characters in Unicode
    • 33 min
    • 113: Macro vs. Micro Vision

      In this weeks episode we start off by congratulating Mick on handing in his masters dissertation.

      We then move on to discuss decision trees, ordinal regression and genetic algorithms.
      Edd then mentions managing large tables in Postgres, MVCC, Fill factors and Vacuuming a table.
      From here we highlight an interesting JavaScript Unicode/New-Line length issue that occurred recently.
      Finally, we touch upon testing time-dependent processes in isolation, dreaded CRM integration and sign-up processes.

      Corrections: Couple of mistakes by Edd; its’ MVCC not MVVC, and any character that can’t be represented using 8 bits in PHP will have a strlen > 1.

      Show Links
      • Decision trees
      • Ordinal regression
      • Weka - Data Mining with Open Source Machine Learning Software in Java
      • Learning to rank
      • Shannon entropy
      • The Awesome Table Fillfactor to speedup UPDATE and SELECT statement
      • PostgreSQL - Difference between table fillfactor and index fillfactor
      • PostgreSQL Concurrency with MVCC
      • grayhemp/pgtoolkit: Tools for PostgreSQL maintenance
      • Reducing bloat without locking
      • Reduce bloat of table without long/exclusive locks
      • TOAST - PostgreSQL
      • Understanding Character Sets and Encodings - Three Devs and a Maybe
      • JavaScript has a Unicode problem - Mathias Bynens
      • bestiejs/punycode.js: A robust Punycode converter that fully complies to RFC 3492 and RFC 5891.
      • Basic Multilingual Plane (Unicode)
      • The Great Newline Schism
      • cemerson/clock - Packagist
      • krakjoe/uopz: User Operations for Zend
      • Carbon - A simple PHP API extension for DateTime.
      • Test Doubles
      • seanpowell/Email-Boilerplate: The email boilerplate for sending out nicely formatted messages.
      • Taylor Otwell on Twitter: “Laravel 5.4: write your mail / notifications in simple Markdown with Blade…”
      • 52 min
      • 112: The Mafia Effect

        In this weeks second in-person episode, we start off by congratulating Fraser on his recent engagement.

        We then move on to chat about setting up Kong, rate-limiting APIs and monitoring the health of an application system.
        From here we discuss the final stages of Mick’s masters dissertation, highlighting the PageRank paper and the Matthew (not Mafia) effect.
        Finally, we mention Edd’s trip to Silicon Milkroundabout and blog posts that he has recently had the chance to publish.

        Show Links
        • Kong
        • Kong - Rate Limiting
        • Apache Bench
        • Kong, the API/Microservice Management Layer with Ahmad Nassri - Three Devs and a Maybe
        • Kali Linux
        • Major DDoS attack on Dyn DNS knocks Spotify, Twitter, Github, PayPal, and more offline
        • Tesco Bank: How was £2.5m stolen from customers’ accounts?
        • Sending Metrics with DogStatsD
        • DataDog/php-datadogstatsd: A PHP client for DogStatsd
        • GoCardless
        • 418 I’m a teapot
        • Stripe
        • Convention over configuration
        • The PageRank Citation Ranking
        • Google Scholar’s Ranking Algorithm
        • How Search Works - Google
        • Algorithms - Google
        • Link farming
        • Silicon Milkroundabout
        • Apache Cassandra
        • Opera Mini
        • X-Forwarded-For
        • Throttling and Debouncing Function Invocation in JavaScript
        • Using Constraint-based Ordering in PHP
        • Managing Background Processes within Symfony
        • The Brits Who Designed the Modern World
        • 44 min
        • 111: Let it Crash

          In this weeks episode Mick and Edd start off discussion with an update on Mick’s masters dissertation.

          We then move on to highlight the value of getting an MVP released, and the old adage that hindsight is 20/20.
          Edd then brings up how he has had the chance to revisit MyBuilder’s logging and monitoring infrastructure recently, re-accessing Severity levels along the way (embarrassingly missing out Critical in the podcast).
          He also mentions how background processes used within the application have changed overtime - discussing the difference between Time-dependent and Continuous processes.
          Finally, we chat about successfully introducing Supervisor into the stack and Erlang’s ‘Let it Crash’ philosophy.

          Show Links
          • Zencastr
          • Extract, transform, load
          • If You’re Not Paying for It; You’re the Product
          • syslog
          • When to use the different log levels? - Stack Overflow
          • PSR-3: Logger Interface
          • Loggly
          • Sentry
          • Supervisor
          • Cron
          • mybuilder/cronos-bundle
          • mybuilder/supervisor-bundle
          • The Netflix Tech Blog: Chaos Monkey Released Into The Wild
          • Let it Crash
          • Jest
          • Selenium
          • PhantomJS
          • Testing Pyramid
          • 50 min
          • 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.

            Show Links
            • Jonathan’s Blog
            • Jonathan Klein on Twitter
            • Composer: Getting Started (Pluralsight Course)
            • Composer
            • PEAR - PHP Extension and Application Repository
            • Yarn
            • Yarn - Introductory Blog Post
            • The composer.json Schema - Composer
            • Semantic Versioning
            • Packagist Semver Checker
            • Versions - Composer
            • PSR-0: Autoloading Standard - PHP-FIG
            • PSR-4: Autoloader - PHP-FIG
            • Scripts - Composer
            • Setting up and using plugins - Composer
            • fxpio/composer-asset-plugin: NPM/Bower Dependency Manager for Composer
            • 37 min
            • 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.

              Show Links
              • PHP 7.1.0 Release Candidate 4 Released
              • PHP 7.1.0 Release Candidate 5 Released
              • krakjoe/ui - Cross platform UI development in PHP
              • andlabs/libui - Simple and portable GUI library in C
              • Pong example using krakjoe/ui
              • Space example using krakjoe/ui
              • PHP-GTK
              • Trending repositories on GitHub
              • PHP Next (7.2)
              • PHP RFC - Deprecate bundling PEAR/PECL and replace with composer/pickle
              • PHP RFC - Traits with interfaces
              • Traits
              • Unix signals
              • Supervisor - A Process Control System
              • PHP PCNTL Extension
              • PHP - pcntl_signal_dispatch
              • PHP - declare
              • Taking PHP Seriously
              • Garbage collection
              • Garbage collection in PHP
              • Concurrent Cycle Collection in Reference Counted Systems
              • PHP - a fractal of bad design
              • Circular references
              • ircmaxell’s blog - What About Garbage?
              • composer/composer - Disable GC when computing deps
              • 34 min
              • 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.

                Show Links
                • Apple - Keynote September 2016
                • Humble Book Bundle - Joy of Coding
                • Money Pattern
                • PHP - DateTimeImmutable
                • PHP - DateTimeInterface
                • Blackfire.io
                • XHProf
                • Dropbox-Uploader
                • AVL Trees in Clojure
                • 49 min
                • 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.

                  Show Links
                  • Lets Get Ready to Rumble
                  • React - shouldComponentUpdate
                  • Anagram Solver in Clojure
                  • Finding anagrams for a given word - Stack Overflow
                  • words (Unix)
                  • assoc-in - clojure.core
                  • Building Microservices
                  • PostgreSQL - Up and Running
                  • Understanding “bitmap heap scan” and “bitmap index scan”
                  • VPS hosting
                  • Half marathon - training programme
                  • Dropbox Document Scanner
                  • Why don’t podcasts use VBR MP3s? Because iOS and macOS don’t accurately seek them
                  • Yak shaving
                  • Why Are Computers
                  • 99 Bottles - Sandi Metz
                  • Event Sourcing
                  • 53 min
                  • 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.

                    Show Links
                    • AWS Enterprise Summits 2016 - London
                    • Serverless Architectures
                    • What is Serverless Computing?
                    • What is Function as a Service (FaaS)?
                    • Interview: Building the Latest Campaign for David Guetta - Serverless Code
                    • Serverless - The Serverless Application Framework powered by AWS Lambda and API Gateway
                    • Amazon EC2 Container Service - Docker Management
                    • Amazon DynamoDB - NoSQL Cloud Database Service
                    • Elastic Compute Cloud (EC2) - AWS
                    • AWS Lambda - Serverless Compute
                    • Using AWS Lambda with Scheduled Events - AWS Lambda
                    • AWS Elastic Load Balancing - Cloud Network Load Balancer
                    • AWS Auto Scaling
                    • Amazon CloudFront - Content Delivery Network (CDN)
                    • Amazon Relational Database Service (RDS) - AWS
                    • AWS Amazon ElastiCache - in-memory cache service
                    • AWS Amazon Route 53 - Domain Name Server - DNS Service
                    • AWS CodeCommit Managed Source Control Service
                    • AWS CodeDeploy Automated Software Deployment
                    • AWS CodePipeline Continuous Delivery
                    • Amazon CloudWatch - Cloud & Network Monitoring Services
                    • AWS CloudFormation - Infrastructure as Code & AWS Resource Provisioning
                    • Amazon SQS - Message Queuing Service - AWS
                    • Amazon API Gateway
                    • Docker - Build, Ship, and Run Any App, Anywhere
                    • Fabric
                    • Immutable Server
                    • XScreenSaver
                    • IntelliJ IDEA the Java IDE
                    • Xdebug - Debugger and Profiler Tool for PHP
                    • Ingress
                    • 54 min
                    • 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.

                      Show Links
                      • Mr. Robot
                      • Amazon Relational Database Service (RDS) - AWS
                      • Amazon Aurora MySQL Compatible Database - AWS
                      • Amazon ElastiCache - in-memory cache service
                      • Principles Of Microservices by Sam Newman
                      • From Macro To Micro by Sam Newman
                      • DDD and Microservices: At Last, Some Boundaries! by Eric Evans
                      • The Future of Programming (Kuppelsalen, Copenhagen) by Uncle Bob Martin
                      • The S.O.L.I.D. Principles of OO and Agile Design by Uncle Bob Martin
                      • Building Microservices
                      • Ironman Triathlon
                      • GitHub’s New Font
                      • 45 Jokes Only Programmers Will Get
                      • Immutable.js
                      • Fear, uncertainty and doubt
                      • ELK Stack
                      • Loggly
                      • Datadog
                      • 53 min

                      About Three Devs and a Maybe

                      From the publisher's feed

                      Join us each week as we discuss all things software development. Frequently joined by a far more intelligent guest on the show's topic, we by no means know everything, but love what we do. Topics…