Developer Voices
Developer Voices
  • 146
  • 1 024 962
Testing TVs At Scale With Elixir (with Dave Lucia)
Integration testing is always a tricky thing, fraught with problems setting up the right environment and attempting to control the system’s state. That’s particularly true when you’re dealing with a mix of software and hardware, and even worse when you don’t have control of what the hardware can do.
This week I’m joined by Dave Lucia of TVLab’s, who’s building systems for testing television software at scale, and it’s a problem that needs a huge variety of techniques to crack it. He’s using cameras, real time video processing, Erlang & Elixir and a host of other tools to make it possible to test a fleet of televisions on demand.
Sometimes good systems revolve around a single big idea; this time it’s a large combination of solutions, coordinated by the BEAM, that gets the job done.
TVLabs: tvlabs.ai/
Flipper Zero: flipperzero.one
ATSC 3.0 “NextGen TV”: en.wikipedia.org/wiki/ATSC_3.0
Support Developer Voices on Patreon: patreon.com/DeveloperVoices
Support Developer Voices on TH-cam: www.youtube.com/@DeveloperVoices/join
Kris on Bluesky: bsky.app/profile/krisajenkins.bsky.social
Kris on Mastodon: mastodon.social/@krisajenkins
Kris on LinkedIn: www.linkedin.com/in/krisjenkins/
-
0:00 Intro
3:04 From Bloomberg To Televisions
7:54 What's The TV Developer Experience Like?
12:02 Who Are The Users?
13:47 How Do You Automate Television Testing?
21:54 Automating TV Controls
26:20 Automating Power Systems
32:59 Why Mix Docker And The BEAM?
37:42 Turning One Box Into A Fleet
47:09 UI Testing Isn't Perfect, But…
52:57 Dealing With TV Versions
55:59 Scheduling Tasks Across A Fleet Of TVs
1:07:08 Why Elixir?
1:11:5 What's Left To Solve?
1:16:05 Outro
มุมมอง: 1 464

วีดีโอ

Programming As An Expressive Instrument (with Sam Aaron)
มุมมอง 2.9K14 วันที่ผ่านมา
Sam Aaron is the creator of Sonic Pi, one of the most unusual software platforms you’ll encounter. It’s a live-coding playground for making music. A tool that lets you write code that defines sounds and musical phrases, and build up a hole program that plays anything from a short bleep to a whole nightclub set. And Sam’s creator has been using it live for years, weaving drum & bass nights out o...
Elm & The Future of Open Source (with Evan Czaplicki)
มุมมอง 12K21 วันที่ผ่านมา
Evan Czaplicki-the creator of the Elm programming language -joins me to discuss the state and future of Elm, the friendly, type-safe functional programming language. On many fronts Elm has been a huge success: it’s been popular with new and seasoned programmers alike; it’s helped push several language ideas into the mainstream; it’s been a key part of several successful software businesses and ...
Programmers, ADHD, And How To Manage Them Both (with Chris Ferdinandi)
มุมมอง 4.5Kหลายเดือนก่อน
This week we’re going to look at the most essential piece of firmware in a programmer’s toolkit - the brain. I’m joined by Chris Ferdinandi to explore what it’s like to be a programmer with ADHD. It’s an unusual topic for the channel, but the more I spoke to him, the more I wanted to know what coding is like when your brain is wired differently, how we can work more effectively with people with...
MicroServices For Better And Worse (with Ian Cooper and James Lewis)
มุมมอง 6Kหลายเดือนก่อน
What have we learned from more than a decade of deploying microservices? Was it a good idea? Are we any better at figuring out what a microservice is, or where its boundaries lie? Does splitting things up create fragmentation problems? And is it too late to put the genie back in the bottle? This week we’re going to look at all these questions and more as we reflect on the lessons learnt from th...
Pony: High-Performance, Memory-Safe Actors (with Sean Allen)
มุมมอง 5Kหลายเดือนก่อน
Pony is a language born out of what should be a simple need - actor-style programming with C performance. On the face of it, that shouldn’t be too hard to do. Writing an actor framework isn’t trivial, but it’s well-trodden ground. The hard part is balancing performance and memory management. When your actors start passing hundreds of thousands of complex messages around, either you need some co...
Architecting a Rust Game Engine (with Alice Cecile)
มุมมอง 10K2 หลายเดือนก่อน
This week we take a look at Bevy, a new game engine written in Rust. And in particular, we look at a core component of Bevy that has something to teach you even if you never write a game: its Entity Component System, or ECS. An ECS is an approach to managing complex systems with large numbers of moving parts, that takes some inspiration from the Relational Database world, and a little from Func...
Writing a CAD Language in Rust (with Adam Chalmers)
มุมมอง 6K2 หลายเดือนก่อน
Given how many languages have been written in C over the years, it’s not surprising to see new languages being written in Rust. What is surprising about this week’s guest is the domain he’s writing for: Computer Aided Design (CAD). Could Rust be sneaking its way into the CAD world too? Joining me to discuss the design and implementation of a CAD programming language is Adam Chalmers. He works a...
Text User Interfaces in Rust (with Orhun Parmaksız)
มุมมอง 6K2 หลายเดือนก่อน
For some kinds of application, there is no faster or cheaper way to build a user interface than in the terminal. Sure, it’s not going to suit every kind of user out there, but for those of us that are happy on the command line, rich Text User Interfaces (or TUIs) open all the exploration and discoverability benefits of a GUI are a fraction of the development time. This week we’re looking at a R...
Designing The Lustre Web Framework (with Hayleigh Thompson)
มุมมอง 7K2 หลายเดือนก่อน
Designing The Lustre Web Framework (with Hayleigh Thompson) Lustre is a web framework that takes a lot of inspiration from Elm, some from React, and a surprising amount from Erlang’s actor model, to provide a library that blurs the lines between executing on the client, or on the server. Support Developer Voices on Patreon: patreon.com/DeveloperVoices Support Developer Voices on TH-cam: www.you...
Faust: A Programming Language For Sound (with Romain Michon)
มุมมอง 4.1K2 หลายเดือนก่อน
I’m always interested in what factors shape the design of a programming language. This week we’re taking a look at a language that’s wholly shaped by its need to support a very specific kind of program - audio processing. Anything from creating a simple echo sound effect, to building an entire digital instrument based on a 17th-century harpsichord. The language in question is Faust, and this we...
GPUs, from Simulation to Encryption (with Agnès Leroy)
มุมมอง 4.7K3 หลายเดือนก่อน
GPUs, from Simulation to Encryption (with Agnès Leroy)
The State of Full-Stack OCaml (with António Monteiro)
มุมมอง 7K3 หลายเดือนก่อน
The State of Full-Stack OCaml (with António Monteiro)
Multiplatform Maps Built As Layers on Rust (with Ian Wagner)
มุมมอง 4.4K4 หลายเดือนก่อน
Multiplatform Maps Built As Layers on Rust (with Ian Wagner)
Building a New Terminal App (with Zach Lloyd)
มุมมอง 8K4 หลายเดือนก่อน
Building a New Terminal App (with Zach Lloyd)
Building A Programming Language From Its Core (with Peter Saxton)
มุมมอง 6K4 หลายเดือนก่อน
Building A Programming Language From Its Core (with Peter Saxton)
Practical Applications for DuckDB (with Simon Aubury & Ned Letcher)
มุมมอง 9K4 หลายเดือนก่อน
Practical Applications for DuckDB (with Simon Aubury & Ned Letcher)
Recording and Replaying the Browser (with Justin Halsall)
มุมมอง 2.9K5 หลายเดือนก่อน
Recording and Replaying the Browser (with Justin Halsall)
Zig as a Multi-OS Build System (with Loris Cro)
มุมมอง 32K5 หลายเดือนก่อน
Zig as a Multi-OS Build System (with Loris Cro)
Creating and Evolving Elixir (with José Valim)
มุมมอง 11K5 หลายเดือนก่อน
Creating and Evolving Elixir (with José Valim)
PyO3: From Python to Rust and Back Again (with David Hewitt)
มุมมอง 12K5 หลายเดือนก่อน
PyO3: From Python to Rust and Back Again (with David Hewitt)
Inter-System Messaging with NATS & Jetstream (with Jeremy Saenz)
มุมมอง 5K5 หลายเดือนก่อน
Inter-System Messaging with NATS & Jetstream (with Jeremy Saenz)
Cuis Smalltalk and the History of Computing’s Future (with Juan Vuletich)
มุมมอง 8K6 หลายเดือนก่อน
Cuis Smalltalk and the History of Computing’s Future (with Juan Vuletich)
The Inko Programming Language, and Life as a Language Designer (with Yorick Peterse)
มุมมอง 3.6K6 หลายเดือนก่อน
The Inko Programming Language, and Life as a Language Designer (with Yorick Peterse)
Building the Zed Text Editor (with Nathan Sobo)
มุมมอง 24K6 หลายเดือนก่อน
Building the Zed Text Editor (with Nathan Sobo)
Reimplementing Apache Kafka with Golang and S3
มุมมอง 9K6 หลายเดือนก่อน
Reimplementing Apache Kafka with Golang and S3
Extending Postgres for High Performance Analytics (with Philippe Noël)
มุมมอง 6K7 หลายเดือนก่อน
Extending Postgres for High Performance Analytics (with Philippe Noël)
Designing Actor-Based Software (with Hugh McKee)
มุมมอง 11K7 หลายเดือนก่อน
Designing Actor-Based Software (with Hugh McKee)
ByteWax: Rust's Research Meets Python's Practicalities (with Dan Herrera)
มุมมอง 4.2K7 หลายเดือนก่อน
ByteWax: Rust's Research Meets Python's Practicalities (with Dan Herrera)
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)
มุมมอง 54K7 หลายเดือนก่อน
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)

ความคิดเห็น

  • @databasemadness
    @databasemadness 13 ชั่วโมงที่ผ่านมา

    Odin ignited my love for programming just before i was about to quit, thank you Bill!

  • @ankleater2112
    @ankleater2112 18 ชั่วโมงที่ผ่านมา

    Incredible! 👏👏👏

  • @uwot918
    @uwot918 วันที่ผ่านมา

    I've listened to a bit over half an hour and what's described sounds like an absolute mess of half a dozen partially overlapping language dialects and projects. I'm not convinced this state of play is actually positive for OCaml.

  • @peterprokop
    @peterprokop วันที่ผ่านมา

    Thank you both very much for this excellent video. I like Zig and will give it a spin. Having written millions of lines of code in my life, half of it in C++, the rest in a few dozen other languages, you name it, and there is a 90% chance I used it. The problem with getting old and having seen a lot is: The more experience you have, the lower the chance to find a "better" language than the "best" language you already found, leaving aside the effort to master a new language, which on the other hand gets easier the more you have seen. "Best" is of course also always specific to an environment, but as a general purpose language, C++ would be my choice if I could only have one programming language. It basically includes C, but I can have C-like control combined with metaprogramming and a ton of other perks thrown in, like the STL, the whole type system, classes, operators, overloads, variadic templates, exceptions, contracts and dozens of other things in the language. C++ is a mighty sword, but pulling it out and wielding it requires effort and can be painful, especially if you really want to unleash it's power. And the question is: Does it have to be that way? Even I, as a veteran, find myself fighting the compiler, especially when trying to use advanced template metaprogramming, with compiler error messages that are not always helpful, and sometimes stuff does not work that should work according to the standard, and then you need to nudge the compiler to do what you always as if it were an AI. On the other hand, I don't have enough control. Recently I started to write a library that allows me to write reversible porgrams in C++ that can run forward and backward, and while I can make it kind of work, I am not happy with the solution so far. The problem is a lack of introspection at the statement level, causing me to have to wrap every statement in a lambda and make my own functional control structures for loops and branches. Maybe it is an abuse of C++ what I am trying there, but I think it might have a few interesting applications. First of all, fully reversible programming like offered by reversible programming languages is kind of depresssing. What you really want is to only run parts of your code as reversible code. And I want the reversible code to be fast and not produce as little garbage as possible. Garbage is the data you have to produce to be able to reverse all of your code and is unavoidable if you want to do interesting things. From what I heard about Zig so far sounds amazing, and I think I will try to abuse it, too. I really want to see what I can do with these compile time programs.

  • @wlcrutch
    @wlcrutch 2 วันที่ผ่านมา

    Damn…your intros are consistently excellent. I have recently discovered this channel and watched maybe 10 interviews so far and everyone starts off with a fantastic introduction to really set the tone for the listener. 👍🏻

  • @reiken27
    @reiken27 4 วันที่ผ่านมา

    the thing with my adhd is... sometimes i will be extremely focused and productive, it can be one of those moments of genius that i'll do months of work in a day or maybe a few, and as a manager if you manage to detect that and avoid distracting me with stupid meetings or start micromanaging With time as a person with ADHD i'm learning to detect sooner when i'm struggling so i can communicate with the manager but here's the thing, sometimes i just can't tell, so the difficult part about managing people, specially with adhd is to notice those moments as soon as possible to maximize how i work and not just have a person that sometimes is good and sometimes bad

  • @mbarrio
    @mbarrio 4 วันที่ผ่านมา

    Nice interview, I'll probably never use zig in my lifetime. It's too complicated

  • @fburton8
    @fburton8 4 วันที่ผ่านมา

    Isn’t Netflix already plural, like Twix?

    • @DeveloperVoices
      @DeveloperVoices 3 วันที่ผ่านมา

      My mind is blown. So wait, does that mean Twix is singular and plural, like sheep, or is there a singlar form of Twix? And if so, what is it? And can it please be 'Two', so we can say, "One Two, two Twix." 🙂

    • @fburton8
      @fburton8 3 วันที่ผ่านมา

      @@DeveloperVoices Oh, would that it were Two! 😄

  • @6Diego1Diego9
    @6Diego1Diego9 4 วันที่ผ่านมา

    Was he serious about creating embeddings from the Bible?

  • @t1nytim
    @t1nytim 4 วันที่ผ่านมา

    Always able to find people doing facsinating things with tech, was really interesting. A type of dev work I didn't even realise was a thing, but makes obvious sense why when you hear it does.

  • @TheRealCornPop
    @TheRealCornPop 5 วันที่ผ่านมา

    Excellent interview!

  • @WilliamSmithIV
    @WilliamSmithIV 5 วันที่ผ่านมา

    I find all this stuff fascinating. Does anyone have any tips/resources to learn more about this stuff?

  • @MrTheSmoon
    @MrTheSmoon 5 วันที่ผ่านมา

    I pronounce the emu in qemu like the bird because the bird is part of the Logo

    • @DeveloperVoices
      @DeveloperVoices 3 วันที่ผ่านมา

      That makes a lot of sense, now you say it. 😁

  • @TheHubra
    @TheHubra 5 วันที่ผ่านมา

    Another interesting one 👍

  • @striker865
    @striker865 6 วันที่ผ่านมา

    Go Evan! Love to hear he is still working on Elm, it's such a fantastic language. The error messages, the simplicity, it really is a thing of beauty.

  • @ajithboralugoda8906
    @ajithboralugoda8906 6 วันที่ผ่านมา

    wow!! perhaps with AI Agent he will take this to another level!!!

  • @ArcRCG
    @ArcRCG 7 วันที่ผ่านมา

    I would like to know why is still so popular, is there no other alternative to it? I have tried to avoid it like the plague, and only once I had to work in a place that used it but just to execute basic commands. Perhaps I haven't worked on something so complex that required it 😅

  • @villagecityorg
    @villagecityorg 7 วันที่ผ่านมา

    Thanks!

  • @pi_ist_toll
    @pi_ist_toll 7 วันที่ผ่านมา

    Really liked that (podcast/interview/whatever)!

  • @pi_ist_toll
    @pi_ist_toll 8 วันที่ผ่านมา

    First!

    • @KManAbout
      @KManAbout 8 วันที่ผ่านมา

      First

  • @VesiustheBoneCruncher
    @VesiustheBoneCruncher 8 วันที่ผ่านมา

    With the audio programming, if you want to target PC, there is a very good chance you’ll be looking at the VST SDK. It’s very very C++. I think there have been moves recently to be a bit friendlier to C to allow other languages like Rust to get in there, but if you look at the code, it screams C++, it’s a pointer piñata. The only newer language I have any hope for in this sphere is Zig.

  • @davidrichards1302
    @davidrichards1302 9 วันที่ผ่านมา

    Unison's unique features offer promising possibilities for enhancing the FunSearch operational model: Content-addressed code: Unison's hash-based identification of code could streamline FunSearch's program generation and evaluation process. Each generated program would have a unique hash, simplifying tracking and caching of results. Immutable codebase: Unison's immutable data structure approach to codebases could enhance FunSearch's evolutionary process. It would allow for efficient storage and retrieval of program versions without conflicts. No builds: Unison's ability to parse and typecheck definitions once, storing results in a cache, could significantly speed up FunSearch's evaluation phase. This would reduce overhead in assessing generated programs. Easy distributed computing: Unison's content-addressed nature facilitates distributed computation, which could enhance FunSearch's parallelization capabilities. This could allow for more efficient scaling of the search process across multiple machines. First-class documentation: Unison's approach to documentation as executable code could improve FunSearch's ability to generate and evaluate self-documenting programs, potentially leading to more interpretable solutions. Strong typing with inference: Unison's type inference could help FunSearch generate type-safe programs more efficiently, potentially reducing the number of invalid programs generated. These features could potentially make Unison an excellent choice for implementing core components of the FunSearch system, particularly in program generation, evaluation, and distributed processing.

  • @romanshestakov8856
    @romanshestakov8856 9 วันที่ผ่านมา

    Thank you very much for the very informative discussion about a great language. I really hope that somebody would make a killer app in Pony and it will attract more attention

  • @OscarForero
    @OscarForero 9 วันที่ผ่านมา

    Ok, they got there

  • @OscarForero
    @OscarForero 9 วันที่ผ่านมา

    At least the first minutes seems as they are taking about the shell not the terminal

  • @pookiepats
    @pookiepats 10 วันที่ผ่านมา

    So…learn Rust and Go and Svelte got it.

  • @zyx32111
    @zyx32111 11 วันที่ผ่านมา

    Great channel - love the diversity!

  • @davidrichards1302
    @davidrichards1302 11 วันที่ผ่านมา

    Unison hashes can be directly used by LLMs as tokens. Correct? Doesn't this have enormous implications for computational analysis?

  • @lnplum
    @lnplum 11 วันที่ผ่านมา

    My only complaint would be that he's underselling how exhausting it can be to have ADHD, especially if you're undiagnosed because you're "too smart" and used unsustainable coping strategies because for your entire childhood you've always been told "you're smart, now if only you put in a little bit more effort and actually used that" while giving your 100% and still falling short. It took me almost 40 years to get a diagnosis and apparently all my lifetime of mental health issues stem from my ADHD.

  • @OliverHR
    @OliverHR 12 วันที่ผ่านมา

    Just a note for the subtitles is not "RiskScript" is "ReScript" and "Melange" not "milange"

  • @scififan698
    @scififan698 12 วันที่ผ่านมา

    no, it's a bad idea to use python and fix it. Better use a different language with a less broken syntax and ideas.

  • @robindeboer7568
    @robindeboer7568 12 วันที่ผ่านมา

    bevy has a really unique position to be able to not even have to build an editor by being able to create a live reload ad editing experience as a blender plugin

  • @aviagarwal3011
    @aviagarwal3011 12 วันที่ผ่านมา

    Robert Virding’s First Rule of Programming, which states that “Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.”

  • @irlshrek
    @irlshrek 13 วันที่ผ่านมา

    This was fascinating!

  • @angrymurloc7626
    @angrymurloc7626 13 วันที่ผ่านมา

    Have not watched this yet but I have to vent my frustration just at the intro. "has open source always been bad? this person is not getting paid enough for it" is an incredible sentiment that I want to never hear again from anyone in my life. It is open source. Can we maybe not bring weird capitalist production rules into the last space we have left? yes devs need to eat. Thats why theyre usually employed. Wtf

    • @angrymurloc7626
      @angrymurloc7626 13 วันที่ผ่านมา

      and then 1 minute into the conversation exactly this begins. You know on all the places I've seen Elm discussed there was a sentiment that this is an arrogant person who won't let other people touch his little passion project. I guess they were right. And its a dead language

  • @stephenpaul7499
    @stephenpaul7499 13 วันที่ผ่านมา

    I would love to have tried Elm as I'd never really used a functional thoroughbred before. By the time I became aware of it, politics had apparently ruined the project :( I've heard good things about Elixr but I love my types!!

  • @JariVasell
    @JariVasell 14 วันที่ผ่านมา

    I love this episode! 🎉

  • @6Diego1Diego9
    @6Diego1Diego9 15 วันที่ผ่านมา

    That was really cool! You should do more examples.

  • @JLarky
    @JLarky 16 วันที่ผ่านมา

    Enjoyed listening to this for 47 minutes and not learning anything

  • @JLarky
    @JLarky 16 วันที่ผ่านมา

    15:57 we call that drizzle-orm, zod, trpc in typescript world

  • @mateusfreira
    @mateusfreira 16 วันที่ผ่านมา

    This is by far the best open-srouce channel content I have seeing in a long time, keep it up the good work💗

  • @qwfp
    @qwfp 16 วันที่ผ่านมา

    I really appreciate the variety in guests and the fact that a lot of them are doing weird/unusual stuff with code - music composition, language for CAD, etc. Gives you insight into stuff you normally wouldn't hear about!

  • @_nickthered
    @_nickthered 17 วันที่ผ่านมา

    "How often do you see a 30 year old codebase get a new lease of? life, it doesn't happen" - this is wrong it does happen how old are the Linux commands and the code behind them, how old is bash, and Bourne shell. They still have terminal emulator protocol code in them I believe. Sure they may not be changing (much) grep kind of changes, id imagine they have been reimplemented a lot. Point is good tools stick around, if it's useful it continues. Now it doesn't mean there aren't better ones to be discovered.

    • @DeveloperVoices
      @DeveloperVoices 17 วันที่ผ่านมา

      Eeeh, I'd totally agree there are some very old projects that are still going strong. But could you really say bash has been reinvigorated somehow? I think if I showed the copy of bash on my Mac to someone from the 90s, they'd see almost exactly the same tool. Whereas if you're trying to write a plugin for Neovim, it's a completely different experience running from the same original Vim codebase.

  • @doloreslaflipoflopo2746
    @doloreslaflipoflopo2746 17 วันที่ผ่านมา

    zed is a top-notch editor. I have been using it in Vim mode not thinking of going back. I come from: neovide neovim helix vs code

  • @lightlegion_
    @lightlegion_ 17 วันที่ผ่านมา

    Hey! It’s great to meet you!

  • @havocthehobbit
    @havocthehobbit 17 วันที่ผ่านมา

    I enjoyed listening to this, my own takeup of bevy has been slow , just frustrating general gargles of an early pre v1 release. I think 10 year wait for tripple A studios takeup is a bit long. I think the opportunity for so many devs to make money while they develop games is a big one for studio pipeline productivity & collab software creation. The Modularity nature of Bevy, means that people could create their own plugin projects and charge for pro features or just have a external library or gui managing alot of stuff they sell for lots of money. While bevy community management does it's long term thing to have official systems added as standard. The main thing that's needed is to standardize the key pieces and get into a 1.0 release. So people can add on confidently knowing they arnt going to have to rewrite there entire plug-in or system every 5 months. Then you'll probably reduce that triple A takeup from 19 years to 4 or less. A gui might just mitigate it all to 3 years. Cos that will get more potencial contributors playing with bevy theirfor solving PR's quicker. Also a secondary community manager to monetise contributions is key, via an asset store early, is a huge driver to get more people on board from both a contributions and user base , it's the one thing unity got right and a lot of those assets became official in engine features because they were so well defined , needed and the creators got so much value back contributing while making their games...win win. Is just how it's motivated and initial tooling and standards are put in place that could get a model like that working for the engine growth.

  • @mlliarm
    @mlliarm 18 วันที่ผ่านมา

    SonicPi is an amazing project/tool. Thank you for this interview.

  • @flwi
    @flwi 18 วันที่ผ่านมา

    41:42 you're highly parallelized yourself 😂 What a great discussion! I find bevy quite interesting and have played around with it while learning rust. Very cool because of ecs. This concept feels quite natural to me. But I got a bit frustrated, because I'm a graphics n00b and have no idea what I'm doing. And when the screen is blank you think "At least it's blank at 120Hz" ;-) I hope this project succeeds for a long time. The community is super helpful and friendly. And after hearing about Alice's management style I think she plays a big role into bevy's success. Thanks a lot for keeping the project going!

  • @dzima-create
    @dzima-create 18 วันที่ผ่านมา

    I've really enjoyed listening to you both