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

  • 124: The Tale of State and Behaviour, Part 2 with Scott Wlaschin

    In this weeks show we follow on from our previous episode’s discussion with Scott Wlaschin.

    We delve into separating out the client from the behaviour and state, initially highlighting the Batch Command approach.
    From here, we move on to discuss the Actor Modal, Event Sourcing and Functional Reactive Programming solutions.
    Finally we touch upon handling the behavioural dependencies, followed by creating an Interpreter and Capability-based implementations.

    Show Links
    • Thirteen ways of looking at a turtle
    • Batch processing using command objects
    • An API in front of an agent
    • Actor model
    • Event sourcing - Building state from a list of past events
    • Event Sourcing
    • Functional Retroactive Programming (stream processing)
    • Flux - Application Architecture for Building User Interfaces
    • Double-entry bookkeeping system
    • Accountants Don’t Use Erasers
    • Dependency injection using interfaces
    • Dependency injection using functions
    • A turtle interpreter
    • Understanding continuations
    • Capability-based Turtle
    • HATEOAS
    • 37 min
    • 123: The Tale of State and Behaviour, Part 1 with Scott Wlaschin

      In this weeks episode we are lucky to be joined by Scott Wlaschin again, to discuss his recent ‘Thirteen ways of looking at a turtle’ talk.

      We start off discussion highlighting the value of solving a known problem in many different ways and the inspiration behind the talk.
      This leads us on to chat about the Object-oriented and Abstract Mutable/Immutable Data Model solutions, mentioning each ones merits as a way to solve the problem.
      We then move on to highlight the State, Either and Async Monad solutions, and how they aid in function composition of different ‘shapes’.
      Finally, we mention how good code should be boring, the balance of the abstract vs. concrete and transparency in code.

      Show Links
      • F-Sharp for fun and profit
      • Thirteen ways of looking at a turtle
      • Thirteen ways of looking at a turtle - YouTube
      • Functional Programming Design Patterns
      • Exercises in Programming Style
      • Exercises in Programming Style - Infoq
      • Thirteen Ways of Looking at a Blackbird
      • Clojure - Transient Data Structures
      • Dr Frankenfunctor and the Monadster
      • The ‘Handling State’ series
      • Railway Oriented Programming
      • Asynchronous Workflows
      • 1 hr 1 min
      • 122: Carry on Coding

        In this weeks episode we start off discussion with experiences handling online payments, CRM export integration and highlight how PHPStorm can be a great SQL editor.

        We then move on to mention a service that allows you to easily manage browser polyfills, and Edd chats about his experience currently making a Nokia ringtone composer web application.
        Finally, we touch upon handling transactional email, depending on third-party services and using Continuation-passing style within JavaScript.

        Show Links
        • Noel Rappin - Fixing Common Payment Handling Mistakes
        • Take My Money - Accepting Payments on the Web by Noel Rappin
        • Zapier
        • Twitch combines 831 Power Rangers episodes into one giant marathon
        • JetBrains DataGrip - Many databases, one tool
        • Databases and SQL Editor in PhpStorm
        • pgAdmin 4 - The elephant nears the finish line
        • New Nokia 3310 (2017) hands on review - TechRadar
        • Implementing an F-Sharp Signal Generator
        • Parsing Nokia Composer Ringtones With FParsec
        • Nokia Ringtone Composer Emulator
        • odytrice/Nokia-Composer
        • How Digital Audio Works - Computerphile
        • Digital Audio 101 - Bit Depth, Sampling Rate, Interpolation
        • Making Music in the Browser - Web MIDI API
        • meenie/band.js - Music composer interface for the Web Audio API.
        • ES6 and Beyond
        • Continuation-passing style
        • Continuation-passing style in JavaScript
        • 44 min
        • 121: Developing Zencastr with Josh Nielsen

          In this weeks episode we are joined by the creator of Zencastr, Josh Nielsen.

          We start off discussion with how he got into programming and being hired as a ‘webmaster’ at the University he attended.
          From here, we move on to highlight the problem Zencastr is trying to solve, delving into some of the technical aspects and corners that were cut to focus on the primary solution.
          Finally, we mention the testing strategy in place, how it is changing as the product stabilises and what features are next in the pipeline.

          Show Links
          • Josh on Twitter
          • Zencastr
          • Webmaster
          • Digital nomad
          • Soundkeep
          • WebRTC
          • mikeal/roll-call - Free and reliable audio calls for everyone w/ browser p2p.
          • akrennmair/libmp3lame-js - port of libmp3lame to JavaScript
          • Auphonic
          • Backbone.js
          • collar.js
          • Browserstack
          • Nightwatch.js - Node.js powered End-to-End testing framework
          • The Story of Twitter’s Fail Whale
          • MongoDB
          • Mongoose ODM
          • RethinkDB - the open-source database for the realtime web
          • Kue
          • Cryptocurrency
          • Ultima VII - The Black Gate
          • 49 min
          • 120: Contributing to PHP with Joe Watkins

            In this weeks episode we chat to good friend of the show Joe Watkins.

            We start off discussion with his recent work on creating a compute-node, dual WAN setup and accepted PHP Serbia talk on contributing to PHP without being a ‘C wizard’.
            From here we move on to mention some of the areas (bug tracking system and QA) that could be improved with the help of new contributors within the PHP internals ecosystem.
            Finally, we highlight several recently proposed RFCs, his opinions on them and some work he is doing on a future RFC.

            Show Links
            • “Server porn …”
            • “Wireless networks …”
            • PHP Serbia Conference
            • PHP Bugs
            • Remi’s RPM repository
            • “#PHP devs: what features/changes would you like to see in the language?”
            • phpdbg - php debugger
            • Welcome to asynchronous multitasking PHP - amphp
            • PHP RFC - list-syntax-trailing-commas
            • PHP RFC - arrow_functions
            • PHP RFC - immutability
            • PHP RFC - request_response
            • PECL - request
            • [RFC] implement throws type for functions and methods
            • Rack - a Ruby Webserver Interface
            • WSGI
            • 50 min
            • 119: Aha! Moments with Steven Proctor

              In this weeks episode we are lucky to have Steven Proctor back on the show.

              We start off discussion by congratulating him on 82 episodes of Functional Geekery, and the commitment it takes to do a podcast and not just ‘podfade’.
              From here we move on to highlight any commonalities he notices with people getting into FP, how he stays on-top of the latest advancements and how he finds the guests he wishes to speak to.
              This leads us on to compare learning functional concepts within a language you already know vs. in a totally different lanaguge which is rooted in the principles.
              Finally, we chat about interesting projects that are on his radar and advice that he has for people who wish to begin exploring FP.

              Show Links
              • Functional Geekery
              • FPCasts
              • Planet = erlang.
              • Erlang and Clojure with Steven Proctor - Three Devs and a Maybe
              • Structure and Interpretation of Computer Programs - Book
              • Structure and Interpretation of Computer Programs - Video Lectures
              • Functional Geekery Episode 69 – Bartosz Milewski
              • Functional Geekery Episode 66 – Scott Wlaschin
              • Smalltalk Best Practice Patterns - Kent Beck
              • “Reading #Smalltalk Best Practise Patterns, I notice the similarities between blocks and first-class functions @ScottWlaschin highlighted”
              • Functional Geekery Episode 1 – Robert C. Martin
              • Functional Geekery Episode 83 – Rahul Muttineni
              • John Carmack - Thoughts on Haskell
              • Calendly
              • Option type
              • Either type
              • Functional JavaScript
              • Classroom Coding with Prof. Frisby
              • It’s a Unix system
              • typelevel/cats: Lightweight, modular, and extensible library for functional programming.
              • Sharpening the Saw
              • Docker - Build, Ship, and Run Any App, Anywhere
              • Nix: The Purely Functional Package Manager
              • 1 hr 5 min
              • 118: API Ramblings with Phil Sturgeon

                In this weeks show we are joined by Phil Sturgeon to discuss all things API development.

                We start off by mentioning Phil’s new job at WeWork, Startup life/culture and switching between different development philosophies.
                We move on to highlight how he got into API development, the reasons behind writing the book “Build APIs You Won’t Hate” and a future video-series he has in the pipeline.
                This leads on to discuss common misconceptions of REST and RPC, API tooling available and the different data-formats present.
                Finally, we mention the importance of good error-handling within an API (no 200 responses!) and some of the bad-stories he has heard/encountered on the topic.

                Show Links
                • Phil Sturgeon on Twitter
                • PHP Town Hall - Episode 51 - Good Riddance
                • API Busters
                • Build APIs You Won’t Hate
                • API Documentation - Do it First - Phil Sturgeon
                • GraphQL vs REST - Overview - Phil Sturgeon
                • Fractal - Output complex, flexible, AJAX/RESTful data structures
                • rails-api/active_model_serializers
                • PHP vs Ruby - Let’s All Just Get Along
                • philsturgeon/codeigniter-restclient: A RESTful client CodeIgniter library that can auto-detect the format and request its own.
                • Richardson Maturity Model
                • Building a Decent API - Phil Sturgeon
                • JSON Schema
                • JSON-LD - JSON for Linking Data
                • GraphQL
                • google/protobuf: Protocol Buffers - Google’s data interchange format
                • BSON - Binary JSON
                • API Blueprint
                • RAML
                • Swagger
                • apiaryio/dredd: Language-agnostic HTTP API Testing Framework
                • ngrok - secure introspectable tunnels to localhost
                • JSON API — A specification for building APIs in JSON
                • The Hypertext Application Language
                • Runscope API Testing and Monitoring
                • JSON API — Error Handling
                • RFC 7807 - Problem Details for HTTP APIs
                • 1 hr 15 min
                • 117: Managing Concurrency in Postgres with Bruce Momjian

                  Following on from our previous look at the Query planner - we are joined again by Bruce Momjian to extend this exploration into looking how Postgres manages concurrency.

                  We start off by discussing some of the challenges and workarounds used in the past to handle concurrent access, particularly in the eyes of a database administrator.
                  We then highlight the concept of MVCC, how it works from a high-level, how Postgres implements it and the clean-up considerations that are present.
                  Finally, we mention how Postgres stores data in page-form, how projects such as pg_compact work to regain space and what the fill-factor is.

                  Show Links
                  • Bruce Momjian
                  • Concurrency
                  • MVCC Unmasked
                  • Multi-user Operating Systems
                  • Multiversion concurrency control
                  • Dirty Reads
                  • PostgreSQL - Transaction Isolation Levels
                  • PostgreSQL - Database Page Layout
                  • PostgreSQL - VACUUM
                  • grayhemp/pgtoolkit: Tools for PostgreSQL maintenance
                  • reorg/pg_repack: Reorganize tables in PostgreSQL databases with minimal locks
                  • 1 hr 22 min
                  • 116: Programming Like Functions Matter with Jimmy Burrell and Scott Wlaschin

                    In this weeks episode we are joined by Jimmy Burrell and Scott Wlaschin to discuss all things functional.

                    We start off the show highlighting how Scott got into programming, the reasons why he is a big fan of Smalltalk, what he means by ‘Enterprise OO’ and being a Humanistic programmer.
                    From here we discuss how he got into FP, how the paradigm came to being, what FP is to Scott and why you should consider it.
                    Finally, we mention the differences between types in FP over langauges such as C, the railway track metaphor he uses to help explain FP concepts and architectural patterns that are more or less suited to FP.

                    Show Links
                    • Scott Wlaschin on Twitter
                    • Jimmy Burrell on Twitter
                    • F# for fun and profit
                    • Sandford Fleming’s 190th Birthday
                    • Falling into the Pit of Functional Success with Jimmy Burrell - Three Devs and a Maybe
                    • Kaypro 2x
                    • dBase
                    • Turbo Pascal
                    • Smalltalk
                    • Design Patterns
                    • Gang of Four
                    • Introvert and extrovert programming languages - F# for fun and profit
                    • Miranda (programming language)
                    • Functional Geekery Episode 66 – Scott Wlaschin - Functional Geekery
                    • Edsger W. Dijkstra
                    • Alan Kay
                    • Seymour Papert
                    • Ted Nelson
                    • JSJ 243 Immutable.js with Lee Byron
                    • Collection Pipelines
                    • Against a Universal Definition of ‘Type’ - Tomas Petricek
                    • Actor model
                    • Functional Programming Design Patterns - F# for fun and profit
                    • Domain Driven Design - F# for fun and profit
                    • Railway Oriented Programming - F# for fun and profit
                    • Message queues
                    • Stream processing
                    • 1 hr 19 min
                    • 115: Checking in with Lew and hearing about Blue n' Vue

                      In this weeks episode we have a long overdue catch-up with Lew.

                      We start off by discussing what he has been upto, and a certain four-legged addition to his family.
                      From here we move on to chat about working on a product vs. working in an agency setting, picking your battles when refactoring and not being scared to make mistakes.
                      Finally, we highlight how Edd has recently used personal Homebrew taps, using Android simulators for testing and Lew’s experience with Vue.js.

                      Show Links
                      • Poole - The Jekyll Butler
                      • Plyr - A simple HTML5 media player
                      • Test-Driven Laravel
                      • Laracasts
                      • Ian Landsman - Code is not a business - Full Stack Radio
                      • Ian Landsman - Shady Marketing Tactics That Will Hurt Your Business - Full Stack Radio
                      • Yii PHP Framework
                      • Laravel and Lawns - Taylor Otwell
                      • Homebrew - The missing package manager for macOS
                      • Homebrew/homebrew-bundle: Bundler for non-Ruby dependencies from Homebrew
                      • Genymotion – Fast and Easy Android Emulator
                      • Chrome Browser APKs
                      • Free Virtual Machines from IE8 to MS Edge
                      • ded/domready: lets you know when the dom is ready
                      • JSJ 243 Immutable.js with Lee Byron
                      • Immutable.js
                      • vue.js
                      • Learn Vue 2 - Step By Step
                      • 52 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…