Logo
    Search

    About this Episode

    Everyone has used programs that talk to a server: Uber, podcast apps, etc.. Most people also know about peer-to-peer applications such as bittorrent, but did you know that video chat programs such as Skype and Google Hangouts are also peer-to-peer? You can even write your own peer-to-peer applications to communicate or share information without the need for a server to relay everything. In this episode, we sit down with Sean DuBois, creator of Pion, to talk about WebRTC: a specification and set of tools for peer-to-peer communication over the internet. We also discuss Pion, an implementation of WebRTC that you can embed in almost any program you write. Happy Hacking! Show notes: https://www.programmingthrowdown.com/2019/10/episode-95-webrtc-with-sean-dubois.html

    ★ Support this podcast on Patreon ★

    Recent Episodes from Programming Throwdown

    172: Transformers and Large Language Models

    172: Transformers and Large Language Models

    172: Transformers and Large Language Models


    Intro topic: Is WFH actually WFC?

    News/Links:


    Book of the Show


    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show


    Topic: Transformers and Large Language Models

    • How neural networks store information
      • Latent variables
    • Transformers
      • Encoders & Decoders
    • Attention Layers
      • History
        • RNN
          • Vanishing Gradient Problem
        • LSTM
          • Short term (gradient explodes), Long term (gradient vanishes)
      • Differentiable algebra
      • Key-Query-Value
      • Self Attention
    • Self-Supervised Learning & Forward Models
    • Human Feedback
      • Reinforcement Learning from Human Feedback
      • Direct Policy Optimization (Pairwise Ranking)



    ★ Support this podcast on Patreon ★

    171: Compilers and Interpreters

    171: Compilers and Interpreters

    Intro topic: Monitor setups

    News/Links:


    Book of the Show


    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show


    Topic: Compilers and Interpreters (Request by Jessica W.)

    • Machine Code
      • Architecture Specific
    • Assembly
      • Single vs Two Pass Compiler
    • High level Languages
      • Intermediate Representation
      • JVM ByteCode vs Machine Code for portability
    • Scripting/Interpreters
    • JIT
    • Profile Guided Optimization
    • Resources
    ★ Support this podcast on Patreon ★

    170: 2023 Holiday Special Live

    170: 2023 Holiday Special Live

    Predictions:
    Jason 

    • VR for Work
    • Lowering AI training cost/ improved efficiency
    • RISC-V takeoff


    Patrick

    • Ai claim of AGI
    • Ai peer reviewer
    • Ai Video Generator
    • More space vehicles reaching orbit

    Early career, finding role at FAANG, liaising vs shipping code. Startup?

    3 part. 1. How and when current hype for AI will end? 2. Shape of the show 3. Upcoming in tech

    What are essential programmer knowledge items?

    CS Student, how to organize life and goals? What purpose life should serve?

    What kind of programmer were you in college?

    Happy Holidays!

    ★ Support this podcast on Patreon ★

    169: HyperLogLog

    169: HyperLogLog

    Intro topic: Testing your car battery

    News/Links:

    Book of the Show

    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show


    Topic: HyperLogLog

    • Motivation
      • Cardinality Counting
    • LinearCounting
      • Hash + expectation of collision based on how full
      • Bloom Filter
    • LogLog
      • Use first N bits as bucket
      • Use max sequential 0s in each bucket
      • Average
    • HyperLogLog
      • Handle empty buckets
      • Use correction factor like linear counting for low counts (number of empty buckets) and high counts
    • Distributing

      • Transfer bucket counts

    ★ Support this podcast on Patreon ★

    168: Godot

    168: Godot

    Intro topic: What are expectations on developers that have nothing to do with programming

    News/Links:

    Book of the Show

    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show


    Topic: Godot

    • What is a game engine?
      • Graphics, animation, particle effects
      • Tilemaps
      • Entity component systems
      • Physics
      • Sound
      • I/O
      • Input handling (touchscreen, joystick)
      • GDScript
    • Why use a game engine?
      • Portability
      • Allow for testing individual components of the game
      • Libraries for ads, in-app-purchases
    • Godot
      • Open source
      • Focused on 2-D but now many 3-D features
      • Great development environment
    • AI Hero
      • Started in phaser (development rut)
      • Moved to Godot, rapid prototyping


    ★ Support this podcast on Patreon ★
    Programming Throwdown
    en-usNovember 20, 2023

    167: Desktop User Interfaces

    167: Desktop User Interfaces

    Intro topic: Jogging Metrics

    News/Links:

    Book of the Show

    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show

    • Patrick: 
      • Factorio (Desktop Game)
    • Jason:
      • AI Hero (iOS and Android)


    Topic: Desktop user interfaces

    • What is a user interface?
    • Web and Mobile UI toolkits
    • Desktop options
      • Qt
        • Cross platform, custom UI elements
        • Qt creator, code generator
      • WxWidgets
        • Cross platform, uses native UI elements 
        • WxFormDesigner, code generation
        • Can look different on different operating systems
      • Electron
        • Local nodejs webserver
        • Html/JavaScript technology
        • Requires interprocess communication to use other languages  
      • Jupyter notebooks
        • Mathematica-like notebook 
        • Not for distribution 
      • Streamlit
        • Python to web compiler
      • Game Engines
        • Unity, Godot, Unreal
    • Tips for building desktop UI
      • UI is slow (startup time, interaction time)
      • Separate the UI from the engine & business logic

    ★ Support this podcast on Patreon ★

    166: Speedy Database Queries with Lukas Fittl

    166: Speedy Database Queries with Lukas Fittl

    - pganalyze: https://pganalyze.com/

    - Weekly series "5mins of Postgres": https://www.youtube.com/channel/UCDV_1Dz2Ixgl1nT_3DUZVFw

    - How Postgres chooses which index to use: https://pganalyze.com/blog/how-postgres-chooses-index

    - CMU databases courses: https://db.cs.cmu.edu/courses/

    - Postgres community: https://www.postgresql.org/community/


    As well as social links:

    - Mastodon: https://hachyderm.io/@lukas

    - Twitter/X: @pganalyze, @LukasFittl

    - GitHub: @pganalyze, @lfittl

    - LinkedIn: https://www.linkedin.com/in/lfittl/ , https://www.linkedin.com/company/pganalyze/

    ★ Support this podcast on Patreon ★

    165: Differential Equations

    165: Differential Equations

    Intro topic: Revisiting the power of Spreadsheets

    News/Links:

    Book of the Show

    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show

    Topic: Differential Equations

    ★ Support this podcast on Patreon ★

    164: Choosing a Database For Your Project With Kris Zyp

    164: Choosing a Database For Your Project With Kris Zyp

    Things to consider when choosing a database

    • Speed & Latency
    • Consistency, ACID Compliance
    • Scalability
    • Language support & Developer Experience
    • Relational vs. Non-relational (SQL vs. NoSQL)
    • Data types
    • Security
    • Database environment
      • Client vs Server access


    Info on Kris & Harper:

    • Website: harperdb.io
    • Twitter: @harperdbio, @kriszyp
    • Github: @HarperDB, @kriszyp


    ★ Support this podcast on Patreon ★

    163: Recursion

    163: Recursion

    Episode 163 - Recursion


    Intro topic: Electric Cars


    News/Links:


    Book of the Show

    Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


    Tool of the Show

    Topic: Recursion

    • What is it
      • Divide-And-Conquer
      • Fibonacci numbers
    • How to (not) teach recursion
    • Practical Applications
      • Graph operations
        • Tree retrieval, balancing
        • Graph Search
      • Spatial partitioning
    • Pitfalls
      • Stack size
    • How to solve problems with recursion
      • (1) Consider the base cases
      • (2) Build the recursive step
      • (3) Look for ways the recursion will not terminate and fix
      • (4) (rest are optional) Remove global contexts
      • (5) Add memoization
      • (6) Build solutions incrementally

    ★ Support this podcast on Patreon ★