
Developer Voices (Kris Jenkins)
Explore every episode of Developer Voices
Pub. Date | Title | Duration | |
---|---|---|---|
07 Jun 2023 | Bitemporal Databases: What They Are and Why They Matter, with James Henderson of XTDB | 00:56:43 | |
As a developer, it's crucial to understand the various types of databases available so you can choose the right tool for the job. In this episode, we're shining a spotlight on bitemporal databases with James Henderson, lead developer of of a new bitemporal database called XTDB. | |||
28 Feb 2024 | Automate Your Way to Better Code: Advanced Property Testing (with Oskar Wickström) | 01:07:09 | |
One of the most promising techniques for software reliability is property testing. The idea that, instead of writing unit tests we describe some property of our code that ought to always be true, then have the computer figure out thousands of unit tests that try to break that rule. For example, you might say, “No matter which page you visit on my website, there should always be a login button or a logout button.” Then the test’s job is to try to break that rule, but clicking around until it finds some combination of clicks fails that assertion. Like, maybe it finds the 404 page, and you realise it was missing the website’s normal header. At its best, property testing takes far less work than unit testing, but is far more thorough, because it lets us write the rules and has the computer write the examples. The downside is, it often seems theoretical. It can be hard to apply property testing to real-world cases. Let’s fix that. We’re joined by Oskar Wickstrom, who’s been building all kinds of different systems and bringing property testing with him wherever he goes. We discuss the basics of property testing, then he goes into the advanced and cunning techniques that go beyond the ordinary into testing databases, webpages and more. With a bit of thought, he can help us test a ten times as much code with a tenth of the effort. -- Quickstrom: https://quickstrom.io/ F# for Fun & Profit: Property Testing Series: https://fsharpforfunandprofit.com/series/property-based-testing/ Linear Temporal Logic: https://en.wikipedia.org/wiki/Linear_temporal_logic The Quickstrom Paper: https://arxiv.org/abs/2203.11532 TodoMVC (One frontend app, many implementations): https://todomvc.com/ Oskar on Twitter: https://twitter.com/owickstrom Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
19 Jul 2023 | Unison: A Programming Language for Distributed Computing | 01:02:07 | |
“Software development has not caught up with the internet age.” So says this week’s guest, Rúnar Bjarnason. But what does that mean? What would a programming language for the internet age look like? Rúnar’s answer is Unison. A language that completely rethinks the way distributing computing can work, from the source code up. Borrowing some key ideas from git, it challenges the way we think about code-sharing, compilation, versioning and more. -- Cloud icons created by Freepik - Flaticon: https://www.flaticon.com/free-icons/cloud | |||
09 Aug 2023 | jOOQ - Crossing the Object-Relational Bridge (with Lukas Eder) | 00:49:29 | |
Sooner or later, every programmer will have to cross the gap between their programming language and their database. It feels like it should be easy, but in practice it’s always a much wider chasm than it seems, and every tool that bridges that gaps comes with its own strengths, weaknesses and opinions. This week we take a look at a relatively new library for database access—jOOQ—by chatting with its author, Lukas Eder. This episode takes in the simple questions like syntax, the thornier ones like supporting multiple databases, and the deeply philosophical ones like how we even think about data and data-processing. If you’re a Java (or JVM) programmer, there’s a new tool to learn here, and even if you're not there’s food for thought and ideas to borrow for the next time you need to SELECT… jOOQ: https://www.jooq.org/ Kris on Twitter: https://twitter.com/krisajenkins | |||
18 Oct 2023 | Semantic Search: A Deep Dive Into Vector Databases (with Zain Hasan) | 01:02:00 | |
As interesting and useful as LLMs (Large Language Models) are proving, they have a severe limitation: they only know about the information they were trained on. If you train it on a snapshot of the internet from 2023, it’ll think it’s 2023 forever. So what do you do if you want to teach it some new information, but don’t want to burn a million AWS credits to get there? In exploring that answer, we dive deep into the world of semantic search, augmented LLMs, and exactly how vector databases bridge that gap from the old dog to the new tricks. Along the way we’ll go from an easy trick to teach ChatGPT some new information by hand, all the way down to how vector databases store documents by their meaning, and how they efficiently search through those meanings to give custom, relevant answers to your questions. -- Zain on Twitter: https://twitter.com/zainhasan6 | |||
04 Oct 2023 | Databases, Ambitions, and a Testing Silver Bullet? (With Joran Dirk Greef) | 01:06:40 | |
How far would you go to get the kind of database you want? How deep into the stack would you dive to re-architect a system for the kind of performance, reliability and scale you believe in? Today's guest has decided to go all in, as he’s tackling the database problem from the fsync up. | |||
14 Aug 2024 | Building a New Terminal App (with Zach Lloyd) | 01:07:39 | |
The terminal might be the most used development tool in history. So it’s a little odd that it hasn’t changed that much in the decades since the terminal first came into being. Is the terminal a “completed” project? Or are there new ways to look at it that might make it even more useful? This week’s guest—Zach Lloyd—is convinced the terminal is ripe for a new approach that’s more than just a new coat of paint. And in this episode we dive into what that approach is, what he’s trying to do with the Warp Terminal, and how it’s put together using a combination of Rust and GPU shaders. Along the way we look at what LLMs could do to improve the terminal experience, where the boundary lies between terminal and shell, and where Go has solved some problems and created others over at Warp HQ. – Become a Supporter on Patreon: https://patreon.com/DeveloperVoices Become a Supporter on YouTube: https://www.youtube.com/@developervoices/join Warp Homepage: https://app.warp.dev/referral/VQGWW3 VT100 Information: https://vt100.net/ Game of Life in Rust: https://github.com/krisajenkins/game-of-life-rust Zed (Text editor in Rust): https://zed.dev/ Flutter: https://flutter.dev/ The Painter’s Algorithm: https://en.wikipedia.org/wiki/Painter%27s_algorithm Zach on LinkedIn: https://www.linkedin.com/in/zachlloyd/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – 0:00 Intro 2:22 Why Create A New Terminal? 7:28 Blurring the Lines Between Terminal and Shell 16:04 How Do You Build A Terminal Program? 24:55 Implementing a Terminal in Rust 30:32 Rust Frameworks for GPU Shaders 40:04 Will Any Of This Go Open Source? 42:49 Managing a Mixture of Rust and Go 47:52 What’s the DX of Warp? 51:43 Integrating LLMs into the Terminal 1:05:58 Outro | |||
10 May 2023 | Is Gleam your next programming language? | 00:53:20 | |
Louis Pilfold joins us to talk about Gleam, a new language that runs on Erlang's BEAM. In creating Gleam, Louis has tried to bring a new level of developer-friendliness to Erlang's famously fault-tolerant platform. If you're interested in building reliable distributed systems, exploring functional programming, learning new languages or finding out what it takes to design your own language, Louis is here to talk us through it all. The Gleam language: https://gleam.run/ | |||
19 Jun 2024 | Cuis Smalltalk and the History of Computing's Future (with Juan Vuletich) | 01:18:53 | |
Smalltalk is one of those programming languages that’s lived out of the mainstream, but often referenced as an influence and an important part of programming history. It’s the cornerstone of object-oriented programming, it was into message passing before actors were cool, and it blurs the line between operating system, programming language and personal notebook. But what is it? Smalltalk is over 50 years old, but its vision of how computing could work has only begun. Let’s see if we can mine some ideas from it to take us into the next generation of computing... Cuis on Github: https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev The Cuis Community: https://cuis.st/community A Short History of Cuis: https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CuisHistory.md Monticello VCS: https://wiki.squeak.org/squeak/1287 Juan’s Music Research: https://www.jvuletich.org/research.html Back to the Future - The Story of Squeak (pdf): https://dl.acm.org/doi/pdf/10.1145/263700.263754 Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
13 Mar 2025 | Graphite: Image Editing as a Syntax Tree (with Keavon Chambers & Dennis Kobert) | 01:17:32 | |
Graphite is a new image editor with an interesting architecture - it’s a classic UI-driven app, an image-manipulation language, and a library of programmable graphics primitives that any Rust coder could use, extend or add to. The result is something that you can use like Photoshop or Inkscape, or make use of in batch pipelines, a bit like ImageMagick. Joining me to discuss it are Keavon Chambers & Dennis Kobert, who are hammering away on building a project that’s potentially as demanding as Photoshop, but with a more ambitious architecture. How can they hope to compete? Perhaps in the short term by doing what regular image And is the future of image editing modular? – Graphite Homepage: https://graphite.rs/ Graphite Web Version: https://editor.graphite.rs/ Graphite on Github: https://github.com/GraphiteEditor/Graphite Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
16 Jan 2025 | Software Systems Aren't Just Software (with Diana Montalion) | 01:50:14 | |
If you want to build really large software systems well, you have to stop thinking of them as just software systems. Beyond a certain size, everything your software touches becomes part of the wider system. You’re part of the system, your users are part of the system, and every other employee & department & priority eventually forms part of that system. And that can make it incredibly difficult to make changes, or even to understand which changes will actually matter. That might be overwhelming, but there's hope. Understanding how systems work and how to improve them is something that can be learnt, and improved at. So in the pursuit of better systems understanding, I’m joined this week by Diana Montalion, coder, architect, and author of Learning Systems Thinking. She takes us through how she sees systems, and how we can get better at discovering and understanding our own systems, as we both chew through some difficult systems we’ve worked on in the hope of figuring out how to do it better next time… – Learning Systems Thinking (book): https://www.amazon.co.uk/Learning-Systems-Thinking-Essential-Professionals-ebook/dp/B0D9KWZRT2 Diana’s Website: https://montalion.com/ Scientific Management (Tailorism): https://en.wikipedia.org/wiki/Scientific_management Jay Wright Forrester: https://en.wikipedia.org/wiki/Jay_Wright_Forrester Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Diana on LinkedIn: https://www.linkedin.com/in/dianamontalion/ Diana on YouTube: https://www.youtube.com/@dianamontalion Kris on BlueSky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
12 Jun 2024 | The Inko Programming Language, and Life as a Language Designer (with Yorick Peterse) | 01:24:21 | |
This week we take a close look at the language Inko from two perspectives: The language design features that make it special, and the realities of being a language developer. Yorick Peterse joins us to discuss why he’s building Inko, and which design sweetspots he’s looking for. We begin with memory management, aiming for the kind of developer who wants control, but without the complexities of Rust. Then we look at the designing for concurrency with typed channels, and handling exceptions by removing them and leaning heavily into ADTs and pattern matching. Mixed in with all that is a discussion on the realities of being a programming language developer. How do you figure out how to implement your ideas? What tradeoffs do you make and what kind of programmer do you want to be most useful to? How do you teach people new ideas in programming, and how “different” can you make a language before it feels weird? And perhaps the hardest question of all: How do you fund a new programming language in 2024? – Inko’s Homepage: https://inko-lang.org/ Yorick’s Homepage: https://yorickpeterse.com/ Ownership You Can Count On (paper): https://inko-lang.org/papers/ownership.pdf “The Error Model”: https://joeduffyblog.com/2016/02/07/the-error-model/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
31 Oct 2024 | Pony: High-Performance, Memory-Safe Actors (with Sean Allen) | 01:13:23 | |
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 complex rules about who owns and frees which piece of memory, or you just copy every piece of data and kill your performance. Pony’s solution is a third way - a novel approach to memory management called reference capabilities. In this week’s Developer Voices, Sean Allen joins us from the Pony team to explain what reference capabilities are, how Pony uses them in its high-performance actor framework, and how they implement a garbage collector without stop-the-world pauses. The result is a language for performant actors, and a set of ideas bigger than the language itself… – Pony: https://www.ponylang.io/ The Pony Tutorial: https://tutorial.ponylang.io/ The Pony Playground: https://playground.ponylang.io/ Azul Garbage Collector: https://www.azul.com/products/components/pgc/ Shenandoah Garbage Collector: https://wiki.openjdk.org/display/shenandoah/Main A String of Ponies (Distributed Actors Paper): https://www.doc.ic.ac.uk/~scb12/publications/s.blessing.pdf Garbage Collection with Pony-ORCA: https://tutorial.ponylang.io/appendices/garbage-collection.html – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
09 Jan 2025 | Building Fyrox: A Rust Game Engine (with Dmitry Stepanov) | 01:43:45 | |
To kick off 2025 we’re looking at Fyrox a game engine built in Rust, largely by one person - Dmitry Stepanov. For an individual project, it’s covered an incredible amount of ground, covering the rendering and animation features you’d expect from a game engine, with some features that might surprise you - like Rust scripting support with hot-reloading. As we dive into Fyrox, Dmitry explains what it takes to build a game engine, why he chose Rust (and why he’s happy with the choice), and how one person can hope to build a project of that size. – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Fyrox Homepage: https://fyrox.rs/ The Fyrox Book: https://fyrox-book.github.io/ Rapier Physics Engine: https://rapier.rs/ The Mine (on Steam): https://store.steampowered.com/app/898980/The_Mine/ Dmitry’s Engine: https://github.com/mrDIMAS/DmitrysEngine GJK Collision Detection Algorithm: https://en.wikipedia.org/wiki/Gilbert%E2%80%93Johnson%E2%80%93Keerthi_distance_algorithm WPF: https://en.wikipedia.org/wiki/Windows_Presentation_Foundation PICO-8: https://www.lexaloffle.com/pico-8.php Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
27 Sep 2023 | Starting A Tech Business. Again. And Again. And Again. (with Michael Drogalis) | 00:54:04 | |
Ever wanted to start a tech business? Michael Drogalis has done it successfully in the past, and now he’s trying again (and again and…) as he makes a very public attempt to start 4 new tech businesses in the next 4 quarters. | |||
14 Feb 2024 | If You Want Better Code, Do It For Me (with Jonathan Schneider) | 01:02:48 | |
A lot of programming is split into the mechanical work of writing what you know, and the creative work of figuring out what you don’t know. Wouldn’t it be nice to automate the mechanical stuff away? Well the good news is we’re already automating a lot of it. Every time you run a refactoring tool or a pretty-printer, you’re handing boring work off to the computer. But how does that magic work, and how can we do more of it? This week we’re joined by one of the authors of OpenRewrite—Jonathan Schneider—to learn how automated code-rewriting tools really work. From the basic approach to the hairy corner cases, to the reality of keeping developers happy with the subjective side of the results. It takes a lot of work to automate work away - this week we’ll learn how the work gets done for us too. – OpenRewrite: https://docs.openrewrite.org/ Supported Languages: https://docs.openrewrite.org/recipes Moderne: https://www.moderne.io/ Gradle Lint: https://github.com/nebula-plugins/gradle-lint-plugin Chicory (Native JVM WASM): https://github.com/dylibso/chicory Call Java from Haskell: https://github.com/tweag/inline-java#readme Call Haskell from Java: https://github.com/nh2/call-haskell-from-anything Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – #podcast #software #programming #softwareengineering #refactoring #parsers | |||
29 May 2024 | Reimplementing Apache Kafka with Golang and S3 | 01:23:04 | |
This week on Developer Voices we’re talking to Ryan Worl, whose career in big data engineering has taken him from DataDog to Co-Founding WarpStream, an Apache Kafka-compatible streaming system that uses Golang for the brains and S3 for the storage. -- WarpStream: https://www.warpstream.com/ DataDog: https://www.datadoghq.com/ Ryan on Twitter: https://x.com/ryanworl Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
15 Nov 2023 | What's Zig got that C, Rust and Go don't have? (with Loris Cro) | 01:23:52 | |
Zig is a programming language that’s attempting to become “the new C” - the language of choice for low-level systems programming and embedded hardware. Going into that space not only puts it in competition with C and C++, but also other newcomers like Rust and Go. So what makes Zig special? Joining us to discuss it is Loris Cro from the Zig Foundation. We talk through Zig’s reasons to exist, its language design features, which parts of the C ecosystem it's tackling, and how the Zig Foundation is set up for the long-term health of the language. – Loris’ website: https://kristoff.it/ Zig homepage: https://ziglang.org/ – #programming #programminglanguages #software #zig #llvm #rust #go | |||
28 Jun 2023 | Gren: The friendly, fullstack, functional future? | 01:02:54 | |
Time to put another new #programming language - and its creator - under the spotlight, as we talk to Robin Heggelund Hansen, the creator of Gren. Gren is a Norwegian word meaning 'branch', which is appropriate for a language that started as a fork from its roots in Elm. Robin on Mastodon: https://snabelen.no/@robinheghan | |||
23 Jan 2025 | Raspberry Pi Hardware & A Lisp Brain (with Dimitris Kyriakoudis) | 01:34:43 | |
Dimitris Kyriakoudis is a researcher, programmer and musician who's combining all three talents to build dedicated music hardware. Specifically a device called the µseq, which reads Lisp programs and uses them to drive synthesizers to make music. In this episode we go through the full platform that he's building, from soldering resistors to an RPi chip, up through writing a Lisp interpreter, to the design ideas that make Lisp a good choice for composing both software and music. – uSeq Homepage: https://www.emutelabinstruments.co.uk/useq/ Emute Lab’s Homepage: https://www.emutelab.org/ Buy a uSeq: https://www.signalsounds.com/emute-lab-instruments-useq-live-coding-voltage-generator-eurorack-module/ Build a uSeq (DIY Kit): https://www.thonk.co.uk/shop/emute-lab-useq/ SICP (book): https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs Machina Bristronica (expo): https://machinabristronica.uk/ Sonic Pi: https://sonic-pi.net/ Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – 0:00 Intro 2:20 What is µseq? 5:40 Live Coding As Another Instrument 17:42 Why Choose Lisp? 25:03 Different Dialects For Different Musical Tasks? 32:34 Live Coding As Academic Research 44:11 How Do You Fabricate Production Hardware? 49:00 The Triple-E Triangle 1:09:53 How Well Has This Theory Worked Out? 1:20:01 What's This Like To Play Live? 1:25:17 Comparisons With Sonic Pi 1:33:06 Outro | |||
21 Jun 2023 | PostgreSQL in the Cloud | 00:33:36 | |
What's going on with Postgres? Joining us for his perspective is Raouf Chebri, a Developer Advocate for PostgreSQL and the cloud service Neon. We catch up on what's new and important in recent versions of Postgres, what Neon have been doing to make Postgres work well in the Cloud, and what Raouf's life is like as a professional singer of Postgres's virtues. Neon: https://neon.tech/ | |||
13 Sep 2023 | Clickhouse: Faster Queries, Faster Answers (with Alasdair Brown) | 01:15:03 | |
In modern systems, the amount of data keeps getting larger, and the time available keeps getting shorter. So it's almost inevitable that we're augmenting our general-purpose databases with dedicated analytics databases. This week we dive into the world of OLAP with a thorough look at Clickhouse, a high-performance, columnar database designed to "query billions of rows in microseconds." There's a lot of ground to cover, and a lot of questions to ask, all in the service of faster answers... -- Alasdair's Blog: alasdairb.com | |||
01 Nov 2023 | Debezium - Capturing Data the Instant it Happens (with Gunnar Morling) | 01:02:38 | |
This week we’re looking at Debezium - an open source project that taps into a huge number of databases and lets you stream data to other systems in real time. It’s a huge project that covers a wide range of uses: Some people use it to replicate from Oracle to MySQL, others to do smart cache invalidation, and others to build a bridge from an existing relational database to the event-sourcing world. If you’re working on a system that has more than one kind of database, it may be an essential tool. But what exactly does it do, and how does it do it? Joining us for a deep dive is Debezium expert and former project lead, Gunnar Morling. He takes us through all things Debezium, from who uses Debezium and why; which systems you can connect to and what data you get out from it; and how a project of this scope is developed. Gunnar on Twitter: https://twitter.com/gunnarmorling Gunnar’s talk on the new incremental snapshot mechanism: https://events.bizzabo.com/468544/agenda/session/1136877 #debezium #microservicesarchitecture #cdc #database #postgresql #oracle #mysql #eventsourcing #kafka #jdbc #realtime | |||
19 Dec 2024 | Testing TVs At Scale With Elixir (with Dave Lucia) | 01:16:05 | |
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: https://tvlabs.ai/ Flipper Zero: https://flipperzero.one ATSC 3.0 “NextGen TV”: https://en.wikipedia.org/wiki/ATSC_3.0 Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
08 May 2024 | ByteWax: Rust's Research Meets Python's Practicalities (with Dan Herrera) | 01:01:54 | |
Bytewax is a curious stream processing tool that blends a Python surface with a Rust core to produce something that’s in a similar vein to Kafka Streams or Apache Flink, but with a fundamentally different implementation. This week we’re going to take a look at what it does, how it works in theory, and how the marriage of Python and Rust works in practice… – The original Naiad Paper: https://dl.acm.org/doi/10.1145/2517349.2522738 Timely Dataflow: https://github.com/TimelyDataflow/timely-dataflow Bytewax the Library: https://github.com/bytewax/bytewax Bytewax the Service: https://bytewax.io/ PyO3, for calling Rust from Python: https://pyo3.rs/v0.21.2/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins -- | |||
02 Oct 2024 | Designing The Lustre Web Framework (with Hayleigh Thompson) | 01:04:27 | |
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: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@DeveloperVoices/join – Lustre: https://hexdocs.pm/lustre/index.html Gleam: https://gleam.run/ Join the Gleam Community: https://gleam.run/community/ Processing (AV Framework for Java): https://processing.org/ Vue.js: https://vuejs.org/ Svelte: https://svelte.dev/ Elm: https://elm-lang.org/ Elm Table: https://package.elm-lang.org/packages/gribouille/elm-table/5.3.0/ Hayleigh on Twitter: https://x.com/hayleighdotdev Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
20 Mar 2024 | How Apache Pinot Achieves 200,000 Queries per Second (with Tim Berglund) | 01:14:28 | |
The likes of LinkedIn and Uber use Pinot to power some astonishingly high-scale queries against realtime data. The numbers alone would make an impressive case-study. But behind the headline lies a fascinating set of architectural decisions and constraints to get there. So how does Pinot work? How does it process queries? How are the various roles split across a cluster? And equally important - what does it *not* try to achieve. Joining me to go through the nuts and bolts of how Pinot handles SQL queries is Tim Berglund, veteran technology explainer of the realtime-data world. He takes us through Pinot step-by-step, covering the roles of brokers, servers, controllers and minions as we build up the picture of a query engine that's interesting in theory and massively performant in practice. – Apache Pinot: https://pinot.apache.org/ Apache Pinot Docs: https://docs.pinot.apache.org/ StarTree: https://startree.ai/ Tim on Twitter: https://twitter.com/tlberglund Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – #podcast #softwaredevelopment #apachepinot #database #dataengineering #sql | |||
21 Nov 2024 | Programmers, ADHD, And How To Manage Them Both (with Chris Ferdinandi) | 01:39:14 | |
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 ADHD, and critically, how you manage coders with ADHD. And the answer to that comes full circle, in understanding how coders with ADHD manage themselves… – ADHDFTW Homepage: https://adhdftw.com/developer-voices/ Do I Have ADHD? https://adhdftw.com/do-i-have-adhd/ Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Chris on Mastodon: https://mastodon.social/@cferdinandi Chris on BlueSky: https://bsky.app/profile/cferdinandi.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on BlueSky: https://bsky.app/profile/krisajenkins.bsky.social | |||
10 Apr 2025 | Jupyter's Architecture Unpacked (with Afshin Darian & Sylvain Corlay) | 01:29:11 | |
Jupyter’s become an incredibly popular programming and data science tool, but how does it actually work? How have they built an interactive language execution engine? And if we understand the architecture, what else could it be used for? Joining me to look inside the Jupyter toolbox are Afshin Darian and Sylvain Corlay, two of Jupyters long-standing contributors and project-steerers. They’ve going to take us on a journey that starts with today’s userbase, goes through the execution protocol and ends with a look at what Jupyter will be in the future - an ambitious framework for interactive, collaborative applications and more. – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Jupyter Homepage: https://jupyter.org/ Jupyter Xeus: https://github.com/jupyter-xeus/xeus Jupyter AI: https://github.com/jupyterlab/jupyter-ai Jupyter CAD: https://github.com/jupytercad/JupyterCAD Jupyter GIS: https://github.com/geojupyter/jupytergis/ Jupyter GIS Announcement: https://blog.jupyter.org/real-time-collaboration-and-collaborative-editing-for-gis-workflows-with-jupyter-and-qgis-d25dbe2832a6 QGIS: https://qgis.org/ ZeroMQ: https://zeromq.org/ Sylvain on LinkedIn: https://www.linkedin.com/in/sylvaincorlay Darian on LinkedIn: https://www.linkedin.com/in/afshindarian Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
18 Sep 2024 | GPUs, from Simulation to Encryption (with Agnès Leroy) | 01:03:48 | |
This week we take a look at what you can do with a GPU when you get away from just using it to draw polygons. Agnès Leroy has spent most of her career programming, optimizing and converting programs to run on that oh-so-curious piece of specialised processing hardware, and we go through all the places that journey has taken her. From simulating the flow of fluids in hydroelectric powerstations, to figuring out how to make a new approach to encryption run fast enough to make it practical… – Become a Developer Voices supporter! https://patreon.com/DeveloperVoices A Fully Homomorphic Encryption Scheme (pdf): https://crypto.stanford.edu/craig/craig-thesis.pdf CUDA platform: https://developer.nvidia.com/cuda-zone Rust-CUDA: https://github.com/Rust-GPU/Rust-CUDA And in case anyone was wondering, A List of Hydroelectric Power Stations in France: https://en.wikipedia.org/wiki/Category:Hydroelectric_power_stations_in_France – Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
03 Jul 2024 | PyO3: From Python to Rust and Back Again (with David Hewitt) | 01:34:29 | |
There’s huge pressure on Python at the moment to get faster, ideally without changing at all. One increasingly–popular way of achieving that impossible task is to push the performance critical code down into C, C++, or Rust. And this week we’re focussing on the Python route, as we take a look at PyO3. David Hewitt’s the principal committer to PyO3, and he joins us to go through the easy parts, the hard parts, and the works in progress, giving us an insight into how Python and Rust work under the hood, and quite how much work it takes to make them work as one. – PyO3 User Guide: https://pyo3.rs/v0.22.0/ PyO3 on Github: https://github.com/PyO3/pyo3 Polars: https://pola.rs/ Tokio: https://tokio.rs/ Trio: https://trio.readthedocs.io/ Robyn: https://github.com/sparckles/Robyn Faster CPython: https://github.com/faster-cpython Maturin: https://www.maturin.rs/ – David on Mastodon: https://fosstodon.org/@davidhewitt David on Twitter: https://x.com/davidhewittdev Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://x.com/krisajenkins | |||
30 Aug 2023 | DIY Consensus: Crafting Your Own Distributed Code (with Benjamin Bengfort) | 01:07:34 | |
How do distributed systems work? If you’ve got a database spread over three servers, how do they elect a leader? How does that change when we spread those machines out across data centers, situated around the globe? Do we even need to understand how it works, or can we relegate those problems to an off the shelf tool like Zookeeper? Joining me this week is Distributed Systems Doctor—Benjamin Bengfort—for a deep dive into consensus algorithms. We start off by discussing how much of “the clustering problem” is your problem, and how much can be handled by a library. We go through many of the constraints and tradeoffs that you need to understand either way. And we eventually reach Benjamin’s surprising message - maybe the time is ripe to roll your own. Should we be writing our own bespoke Raft implementations? And if so, how hard would that be? What guidance can he offer us? Somewhere in the recording of this episode, I decided I want to sit down and try to implement a leader election protocol. Maybe you will too. And if not, you’ll at least have a better appreciation for what it takes. Distributed systems used to be rocket science, but they’re becoming deployment as usual. This episode should help us all to keep up! -- KubeCon talk on the FCD bug: https://kccncna2022.sched.com/event/182N9/lessons-learned-from-etcd-the-data-inconsistency-issues-marek-siarkowicz-google-benjamin-wang-vmware Benjamin on Twitter: https://twitter.com/bbengfort | |||
10 Jan 2024 | Is Odin, "programming done right"? (with 'Ginger' Bill Hall) | 01:00:04 | |
Odin’s creator, Bill Hall, makes some bold claims about the language, including that it’s “programming done right”. Before that starts a war on the internet, we’d best ask him to explain what that means, and how Odin tries to achieve it. And while we get deep into the details, overall his answer seems to be, “By gathering masses of feedback and then refining C until it feels joyous again. Of all the C-like languages we’ve looked at on Developer Voices, Odin seems to be the most at-ease with its progenitor. It’s not trying to be a revolutionary new way of thinking about systems programming; it’s just trying to rethink C for modern conventions. If Bill’s hit his goals, it might be the most comfortable way to get a language that’s C, but C done better… – Odin: https://odin-lang.org/ Odin Packages: https://pkg.odin-lang.org/ Newsqueak [pdf]: https://swtch.com/~rsc/thread/newsqueak.pdf EmberGen: https://jangafx.com/software/embergen/ Raylib: https://www.raylib.com/ RayLib bindings for Odin: https://github.com/odin-lang/Odin/tree/master/vendor/raylib Verse language: https://dev.epicgames.com/documentation/en-us/uefn/verse-language-reference Algorithms + Data Structures = Programs: https://en.wikipedia.org/wiki/Algorithms_%2B_Data_Structures_%3D_Programs Bill on Twitter: https://twitter.com/TheGingerBill Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ #podcast #software #softwareprogramming #programming #odin #odinlang | |||
06 Dec 2023 | Will we be writing Hare in 2099? (with Drew DeVault) | 00:54:38 | |
This week we're back on systems programming with Hare. A C-like language for the ages. We talk to its creator, Drew DeVault, about what he thinks we can learn from the past 50 years of programming, and how we can build that hindsight into a new language that will last for the next 100. In among all that long-term ambition we talk cover everything from error handling, typed unions and linear types, to metaprogramming and Drew's microkernel operating system. It's called Ares, and it is, of course, built in Hare. -- Drew's Homepage: https://drewdevault.com/ Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ A summary of Hare’s features: https://harelang.org/tutorials/introduction/ Hare Community Resources: https://harelang.org/community/ SXMO Mobile: https://sxmo.org/ QBE Compiler Backend: https://c9x.me/compile/users.html Ares OS Source Code: https://sr.ht/~sircmpwn/helios/ OSDev Wiki: https://wiki.osdev.org/Expanded_Main_Page The Ares System [pdf]: https://mirror.drewdevault.com/ares.pdf #programming #podcast #harelang #qbe #microkernel | |||
28 Nov 2024 | Elm & The Future of Open Source (with Evan Czaplicki) | 00:50:24 | |
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 he even found himself employed as a kind of Language Designer in Residence. And yet, the material rewards of a successful open-source project were…lacking. Was he naive? Can an open-source developer stay true to open-source principles and still make a decent living? Is open source being exploited by commercial software businesses? These topics and more tumble out of what has to be the first question in the podcast: What’s happening with Elm? -- Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join ElmLang: https://elm-lang.org/ The Economics Of Programming Languages: https://www.youtube.com/watch?v=XZ3w_jec1v8 Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
17 Jan 2024 | What can game programming teach us about databases? (with Tyler Cloutier) | 01:05:31 | |
The world of game programming might seem a million miles away from 'regular' programming. But they still have to deal with the same kinds of data, scale and concurrency problems that we’re all familiar with in the software world. And that makes the gaming world an interesting place for new ideas - under the hood they’re solving those same problems we face, but often with some novel ideas about the solutions. So this week we’re off to the massive open world that is game development, to see what we can learn that might make lives easier in the non-gaming space. Joining us for that is Tyler Cloutier, the founder of Clockwork Labs. They’re building SpaceTimeDB, a curiously-distributed database built to be the underlying platform for their new MMORPG, BitCraft. Digging down into the architecture of SpaceTimeDB, we pick Tyler’s brain for nuggets of information on event sourcing, request/response vs. subscriptions, transactions, security and much more. All in an effort to make our programmers and data scientists’ lives easier. SpaceTimeDB: https://spacetimedb.com/ BitCraft: https://bitcraftonline.com/ “4X games” defined: https://en.wikipedia.org/wiki/4X Plan 9 O.S.: https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs Tyler on LinkedIn: https://www.linkedin.com/in/tylercloutier/ Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Mastodon: https://mastodon.social/@krisajenkins | |||
20 Feb 2025 | ReScript: A Better Typed JavaScript? (with Gabriel Nordeborn) | 01:32:53 | |
ReScript is a strongly-typed programming language that compiles to JavaScript, and that puts it squarely in competition with TypeScript. So why would a JavaScript developer choose to learn it next? What does it offer that makes it a tempting proposition? And how are the ReScript developers making life easier for anyone who wants to make the switch? To answer all these questions and more, I’m joined this week by Gabriel Nordeborn, one of ReScript’s compiler contributors. -- ReScript: https://rescript-lang.org/ ReScript & React: https://rescript-lang.org/docs/react/latest/introduction Reanalyze: https://github.com/rescript-lang/reanalyze Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Gabriel on BlueSky: https://bsky.app/profile/did:plc:c55mqp6e6r24rrrypkmx7ker Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
24 May 2023 | Can Kotlin take you everywhere? | 01:01:38 | |
In this episode we're exploring the Kotlin programming language with an expert from Google. What does Kotlin have to offer? Is it just a Java alternative, or has it turned into something much more ambitious? Along the way we manage to discuss Scala, Function Programming vs. Object Orientation, Editors, Higher Kinded Types, Elm, React, UI architectures and multiplatform programming. A very full episode! Happy Path Programming - Haskell is not as scary as you think: https://pod.link/1531666706/episode/710a605d605fda251f2e83b8858615b8 | |||
22 May 2024 | Extending Postgres for High-Performance Analytics (with Philippe Noël) | 01:07:33 | |
PostgreSQL is an incredible general-purpose database, but it can’t do everything. Every design decision is a tradeoff, and inevitably some of those tradeoffs get fundamentally baked into the way it’s built. Take storage for instance - Postgres tables are row-oriented; great for row-by-row access, but when it comes to analytics, it can’t compete with a dedicated OLAP database that uses column-oriented storage. Or can it? Joining me this week is Philippe Noël of ParadeDB, who’s going to take us on a tour of Postgres’ extension mechanism, from creating custom functions and indexes to Rust code that changes the way Postgres stores data on disk. In his journey to bring Elasticsearch’s strengths to Postgres, he’s gone all the way down to raw datafiles and back through the optimiser to teach a venerable old dog some new data-access tricks. – ParadeDB: https://paradedb.com ParadeDB on Twitter: https://twitter.com/paradedb ParadeDB on Github: https://github.com/paradedb/paradedb pgrx (Postgres with Rust): https://github.com/pgcentralfoundation/pgrx Tantivy (Rust FTS library): https://github.com/quickwit-oss/tantivy PgMQ (Queues in Postgres): https://tembo.io/blog/introducing-pgmq Apache Datafusion: https://datafusion.apache.org/ Lucene: https://lucene.apache.org/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
29 Nov 2023 | Startups Should Solve Real People's Real Problems (with Michael Drogalis) | 00:51:30 | |
A few months ago, Michael Drogalis quit his job and decided launch 4 viable startup business ideas in 4 months, publically documenting every step of the journey. Over here at Developer Voices it seemed fun, inspired, and just crazy enough to work. -- | |||
21 Feb 2024 | Bridging the Gap Between Languages (with Martin Johansen) | 00:49:01 | |
If you ever feel overwhelmed by the number of different programming languages, this week’s episode might just offer you some solace, as we talk about an attempt to reunify many of the most popular languages by focussing on the bread & butter things that every language supports. I’m joined by Martin Johansen, who’s been working on a new tool called Progsbase. With it, he’s created a spec based on all the things programming languages can agree on, and is building a library that can cross-compile between them. Write a program in Java, and it can be automatically translated to PHP, Python and a great deal more. But how far can he take that idea? Is there really enough unity between these languages to build something universal? How do you bridge the divide between manual memory management languages like C and garbage-collected ones like Java? And what would it actually feel like to write code this way? Let’s put Martin’s plan under the spotlight and find out… – Martin on Twitter: https://twitter.com/martinfj Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Progsbase homepage: https://www.progsbase.com/ The Spec: https://www.progsbase.com/docs/programs/ The Progsbase library repository: https://repo.progsbase.com/ The Bug Bounty: https://www.progsbase.com/bug-bounty/ – #software #programming #podcast #programminglanguages | |||
25 Sep 2024 | Faust: A Programming Language For Sound (with Romain Michon) | 01:18:01 | |
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 week we’re joined by Romain Michon, who works on and teaches Faust, as we look at how it’s designed, what kind of programmers it's for, and how it does the job of turning audio-pipeline definitions into executable code. And one of the surprising parts of that compilation strategy is the decision to have it compile to multiple targets, from the expected ones like C and Rust, to the exotic destination of FPGAs (Field Programmable Gate Arrays). FPGAs are like reprogrammable circuit boards, and Romain dives into Faust’s attempts to go from a high-level description of an audio program, all the way down to instructions that tell a chip exactly how it should wire itself. So rather aptly for a technology podcast, we start this week with what your ear can hear and go all the way down to logic gates and circuit boards… – Try Faust in the Browser: https://faustide.grame.fr/ Faust Online Course: https://www.kadenze.com/courses/real-time-audio-signal-processing-in-faust/info FPGAs: https://en.wikipedia.org/wiki/Field-programmable_gate_array VHDL: https://en.wikipedia.org/wiki/VHDL Verilog: https://en.wikipedia.org/wiki/Verilog Grame: https://www.grame.fr/ The (Strawberry Jam) Gramophone: https://www.grame.fr/articles/gramophone Gramophone Workshops: https://www.grame.fr/evenements/atelier-gramophones-65ca16b19fec4 Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
03 Apr 2024 | Bringing Pure Python to Apache Kafka (with Tomáš Neubauer) | 01:06:38 | |
The “big data infrastructure” world is dominated by Java, but the data-analysis world is dominated by Python. So if you need to analyse and process huge amounts of data, chances are you’re in for a less-than-ideal time. The impedance mismatch will probably make your life hard somehow. So there are a lot of projects and companies trying to solve that problem. To bridge those two worlds seamlessly, and many of the popular solutions see SQL as the glue. But this week we’re going to look at another solution - ignore Java, treat Kafka as a protocol, and build up all the infrastructure tools you need with a pure Python library. It’s a lot of work, but in theory it would make Python the one language for data storage, analysis and processing, at scale. Tempting, but is it feasible? Joining me to discuss the pros, cons, and massive scope of that approach is Tomáš Neubauer. He started off doing real time data analysis for the Maclaren’s F1 team, and is now deep in the Python mines effectively rewriting Kafka Streams in Python. But how? How much work is actually involved in porting those ideas to Python-land, and how do you even get started? And perhaps most fundamental of all - even if you succeed, will that be enough to make the job easy, or will you still have to scale the mountain of teaching people how to use the new tools you’ve built? Let's find out. – Quix Streams on Github: https://github.com/quixio/quix-streams Quix Streams getting started guide: https://quix.io/get-started-with-quix-streams Quix: https://quix.io/ Tomáš on LinkedIn: https://www.linkedin.com/in/tom%C3%A1%C5%A1-neubauer-a10bb144 Tomáš on Twitter: https://twitter.com/TomasNeubauer0 Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins -- #podcast #softwaredevelopment #datascience #apachekafka #streamprocessing | |||
22 Nov 2023 | Is Flink the answer to the ETL problem? (with Robert Metzger) | 01:04:26 | |
Integration is probably the last, hardest, and least well thought-out part of any large software project. So anything that makes the data-streaming job easier is worth knowing about. So this week we turn our attention to Apache Flink, a flexible system for grabbing, transforming and shipping data between systems using Java, Python or good ol’ SQL. If you’re working on systems that include more than one database, then you’re definitely going to face the kinds of problems that Flink tackles. – #software #programming #podcast #flink #apacheflink #dataintegration | |||
08 Nov 2023 | Why did Redpanda rewrite Apache Kafka? (with Christina Lin) | 00:49:27 | |
Would you ever take on a rewrite of one of the largest and most popular Apache projects? And if so, what would you keep the same and what would you change? This week we’re talking to Christina Lin, who’s part of Redpanda, a company that’s rewriting parts of the Apache Kafka ecosystem in C++, with the aim of getting performance gains that aren’t feasible in Java. It seems like a huge mountain to climb, and a fascinating journey to be on, so let’s ask why and how they’ve taken on this challenge… Christina on Twitter: https://twitter.com/Christina_wm #redpanda #kafka #apachekafka #streaming #python | |||
11 Sep 2024 | The State of Full-Stack OCaml (with António Monteiro) | 01:27:15 | |
OCaml has one of the best-loved compilers available, and parts of it are surprisingly pluggable, so it’s not surprising that someone would eventually try to wed OCaml with JavaScript and the web browser. In fact, the ecosystem has gone further, and there are now a bevvy of options for people who want to write OCaml and run it in the browser, or want to write OCaml in the browser, or want to write something that looks like JavaScript but runs OCaml on the backend. Joining me to explore the OCaml-meets-JavaScript world is Antonio Montiero. He’s a key maintainer/contributor for Melange and ReasonML, as well as several other interesting OCaml web projects. We kick off by discussing the benefits of OCaml and how it clicked with him personally, before we dive into how and why the compiler is being adapted and tweaked to take it to a whole new audience of web-hungry developers. – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Sponsor Antonio’s Work: https://github.com/sponsors/anmonteiro/ – The OCaml Platform: https://ocaml.org/platform OCaml on Discord: https://discuss.ocaml.org/t/ocaml-discord-server/1884 ReasonML: https://reasonml.github.io/en/ What is Melange? https://melange.re/v4.0.0/what-is-melange.html Melange for React Devs: https://react-book.melange.re/ The Melange Playground: https://melange.re/v4.0.0/playground/ js_of_ocaml: https://github.com/ocsigen/js_of_ocaml FUN OCaml Conference: https://fun-ocaml.com/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
13 Dec 2023 | If Kafka has a UX problem, does UNIX have the answer? (with Luca Pette) | 01:19:29 | |
One of the recurring themes in the big data & data streaming worlds at the moment is developer experience. It seems like every major tool is trying to answer this question: how do we make large-scale data processing feel trivial? In some places the answer is any library you like as long as it’s Python. In other realms, a mixture of Java and SQL shows promise. But as this week’s guest—Luca Pette—would say, the Unix design metaphor has plenty to give and keep on giving. So in this episode of Developer Voices we look at TypeStream - his Kotlin project that provides a shell-like interface to data pipelines, and is gradually expanding to make integration pipelines as simple as `cat /dev/kafka | tee /dev/postgres`. -- Luca on Twitter: https://twitter.com/lucapette Luca on LinkedIn: https://www.linkedin.com/in/lucapette/ Kris on Twitter: https://twitter.com/krisajenkins TypeStream homepage: https://www.typestream.io/ TypeStream installation guide: https://docs.typestream.io/tutorial/installation Crafting interpreters: https://craftinginterpreters.com/ …by Bob Nystrom: https://twitter.com/munificentbob NuShell: https://github.com/nushell/nushell #podcast #apachekafka #bigdata | |||
27 Dec 2023 | How Lisp is designing Nanotechnology (with Prof. Christian Schafmeister) | 00:52:58 | |
One of our oldest languages meets one of our newest sciences in this episode, as we talk with Professor Christian Schafmeister, an award-winning nanotech researcher who's been developing a language and a design suite to help research the future molecular machines. In this episode Christian gives us a quick chemistry lesson to explain what his research is trying to achieve, then we get into the software that's doing it: A new flavour of Common Lisp. But why Lisp? What advantages does a 60 year old language design offer? How does he strike a balance between high-level language features and the need for exceptional performance and parallelism? And what tricks does his development environment have that modern IDEs could still learn a thing or two from? -- Clasp (the Lisp): https://github.com/clasp-developers/clasp Cando (the design language): https://github.com/cando-developers/cando The Feynman Prize: https://en.wikipedia.org/wiki/Feynman_Prize_in_Nanotechnology Alphafold: https://alphafold.ebi.ac.uk/ More on LEaP: https://ambermd.org/tutorials/pengfei/ Interactive Development of Crash Bandicoot: https://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-gool-part-9/ Christian's Research Group: https://www.schafmeistergroup.com/ Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ -- #programming #software #lisplang #commonlisp #nanotech | |||
13 Mar 2024 | Neovim: Creating, Curating and Customising your Ideal Editor (with TJ DeVries) | 01:07:41 | |
TJ DeVries is a core contributor to Neovim and several of its most interesting sub-projects, and he joins us this week to go in depth into how Neovim got started, how it’s structured, and what a truly programmable editor has to offer programmers who want the perfect environment. Along the way we look at what we can learn from Neovim’s successful fork of the 30-year old codebase from Vim, how it still collaborates with the original project, and what putting Lua at the heart of the system has done for casual tinkerers and hardcore plugin writers alike. Not everyone will come away from this discussion wanting to switch editors, but I’m sure you’ll get a newfound appreciation for digging deeper into the developer tools you use everyday. – Neovim: https://neovim.io/ Neovim Kickstarter: https://github.com/nvim-lua/kickstart.nvim Kickstarter walkthrough video: https://www.youtube.com/watch?v=m8C0Cq9Uv9o A directory of Neovim plugins: https://dotfyle.com/ Vimscript’s definition of true and false: https://vimhelp.org/eval.txt.html#Boolean TJ on Twitter: https://twitter.com/teej_dv TJ on Twitch: https://www.twitch.tv/teej_dv TJ on YouTube: https://www.youtube.com/@teej_dv Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – #podcast #software #softwareengineering #dx | |||
20 Sep 2023 | How Do You Assemble a Complete Software System? (with Ben Gamble) | 01:10:27 | |
Ask any software developer about their favourite stack, and they'll probably have strong opinions. (They might even have a snappy acronym for it, like LAMP or JAM or...) But if you ask any business about their stack, things aren’t so clear. They'll probably tell you the key components, and then add a laundry list of extra parts that got glued on later. The reality is, assembling large systems gets complicated. And with more and more options coming out every year, that potential complexity is only growing. These days, a good software developer must also be part researcher, and part explorer. So this week we're going to survey the landscape, and head out on the hunt for workable architectures. And joining us to do it is Ben Gamble. He's worked in fields as diverse as video games, enterprise software and AR headsets, and these days works for an Everything As A Service company helping people find and assemble the missing pieces their system needs. Who better to guide us through the software landscape? If you've ever worried that your system is too complicated, or is missing important parts, or you're just yearning for an architecture that feels more cohesive and less like a box of parts, come exploring with us. -- Kris on Twitter: https://twitter.com/krisajenkins | |||
05 Jul 2023 | The Open Source AI Revolution Begins Now... | 00:48:03 | |
LLMs like ChatGPT are not just fascinating, they're becoming increasing useful in our working lives. They've graduated from novelty to valuable tool. But building those tools is still in the hands of huge companies. Or is it? A leaked memo from Google recently outlined how the Big Company Advantage has almost completely eroded, and how the next wave of LLM development is going to come from the open source community. So hackers rise up - the open source AI revolution begins now! -- Kris on Twitter: https://twitter.com/krisajenkins | |||
13 Jun 2023 | Building a Thriving Community Around Your Software with Ale Murray | 00:55:13 | |
Are you trying to build the community around your software? And what does “building a community” really mean? What are we building communities for? Join us on Developer Voices as host Kris Jenkins sits down with Ale Murray, a seasoned community manager with nearly a decade of experience, to discuss her tips for building a thriving tech community. Ale shares her insights on why community building is essential, how to identify your target audience, and how to approach community building with the right mindset. She also offers practical advice on how to handle challenging situations, such as dealing with negative feedback and managing conflicts within the community. Whether you're just starting out or looking to improve your existing community, this conversation offers valuable insights and actionable tips to help you succeed. | |||
31 Jul 2024 | Practical Applications for DuckDB (with Simon Aubury & Ned Letcher) | 01:08:04 | |
DuckDB’s become a favourite data-handling tool of mine, simply because it does so many small things well. It can read and write a huge number of data formats; it can infer schemas automatically when you just want to move quickly; and it can interface with most languages, run like lightning on the desktop or be embedded into a webpage. I’m a huge fan. But I’m not nearly as knowledgeable as this week’s two fans, Simon Aubury and Ned Letcher, who’ve just written a book on all the many ways you can use DuckDB and all the hidden tricks and tips that help you make the most of this. So in this episode we’re taking a practical look at DuckDB, what problems it can solve at work, and how to start getting the most out of it. – Getting Started with DuckDB (book): https://packt.link/byKYt DuckDB episode with Hannes Mühleisen: https://youtu.be/pZV9FvdKmLc DuckDB: https://duckdb.org/ dplyr, the data-manipulation language: https://dplyr.tidyverse.org/ duckplyr, DuckDB’s ‘native’ version: https://github.com/duckdblabs/duckplyr Substrait: https://substrait.io/ Observable (Markdown+DuckDB=Reports): https://observablehq.com/framework/ DuckDB’s “friendly” SQL: https://duckdb.org/docs/sql/dialect/friendly_sql.html Community Extensions: https://community-extensions.duckdb.org/ DuckCon #5: https://duckdb.org/2024/08/15/duckcon5.html Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Simon on Twitter: https://x.com/SimonAubury Ned on Twitter: https://x.com/nletcher Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
17 Apr 2024 | Advanced Memory Management in Vale (with Evan Ovadia) | 01:09:31 | |
Rust changed the discussion around memory management - this week's guest hopes to push that discussion even further. This week we're joined by Evan Ovadia, creator of the Vale programming language and collector of memory management techniques from far and wide. He takes us through his most important ones, including linear types, generation references and regions, to see what Evan hopes the future of memory management will look like. If you've been interested in Rust's borrow-check and want more (or want different!) then Evan has some big ideas for you to sink your teeth into. – Vale: https://vale.dev/ The Vale Discord: https://discord.com/invite/SNB8yGH Evan’s Blog: https://verdagon.dev/home Evan’s 7DRL Entry: https://verdagon.dev/blog/higher-raii-7drl 7DRL: https://7drl.com/ https://verdagon.dev/grimoire/grimoire What Colour Is Your Function?: https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/ 42, the language: https://forty2.is/ Verona Language: https://www.microsoft.com/en-us/research/project/project-verona/ Austral language: https://austral-lang.org/ Surely You’re Joking, Mr Feynman! (book): https://www.goodreads.com/book/show/35167685-surely-you-re-joking-mr-feynman Evan on Twitter: https://twitter.com/verdagon Find Evan in the Vale Discord: https://discord.com/invite/SNB8yGH Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – #software #programming #podcast #valelang | |||
05 Jun 2024 | Building the Zed Text Editor (with Nathan Sobo) | 01:23:51 | |
I’ve often wondered how you build a text editor. Like many software projects, it’s a simple idea at the core with an almost infinite scope for features. How do you build a solid foundation to expand on? Which features matter for launch? And how do you hope to satisfy the needs of every programmer, working in every language? My guest for this episode is Nathan Sobo. He’s tackled this problem once before with the Atom editor, and he’s back older & wiser with Zed - a new editor written completely from scratch in Rust. It has a modern UI, a wide spread of language support, and a completely different way of looking at team collaboration. But with so much ambition, what are Zed’s priorities, and what’s been left for a future version? -- Zed Homepage: https://zed.dev/ Segment Trees: https://en.wikipedia.org/wiki/Segment_tree Ropes: https://en.wikipedia.org/wiki/Rope_(data_structure) Rust Executors: https://rust-lang.github.io/async-book/02_execution/04_executor.html More about Roc: https://youtu.be/DzhIprQan68 More about TigerBeetle: https://youtu.be/ayG7ltGRRHs Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
21 Aug 2024 | Multiplatform Maps Built As Layers on Rust (with Ian Wagner) | 01:01:18 | |
Mapping is a hugely complex task to take on. Even if you moved as much of the data-management as you can out to 3rd-party services, you’d still have a tonne of work to do weaving together map tiles, routing information, GPS data, points of interest, search and more. And as if that wasn’t enough, you’d probably want that software to work on a whole range of platforms, so you have to build something that works on iOS, Android and more. It’s little wonder that the space is dominated by a few closed-source projects owned by huge companies with near-limitless resources. But that doesn’t mean the problem can’t be cracked as an open-source project. This week we look at the open source map library Ferrostar. Joining me to discuss it is the project’s lead developer, Ian Wagner, as we explore the problem space and dive down into Ferrostar’s architecture: A core Rust library serving a suite of custom UI shells written in Kotlin, Swift, WASM and TypeScript. Along the way there are tips for anyone attempting to build a map, or wanting to interop Rust with other languages. – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Ferrostar on Github: https://github.com/stadiamaps/ferrostar Ferrostar user guide: https://stadiamaps.github.io/ferrostar/ MapLibre: https://maplibre.org/ Project OSRM: https://project-osrm.org/ Dioxus (Rust UI framework): https://dioxuslabs.com/ Slint: https://slint.dev/ UniFFI (repo): https://github.com/mozilla/uniffi-rs UniFFI (user guide): https://mozilla.github.io/uniffi-rs/latest/ Beeline (navigation device): https://beeline.co/ Ian on Mastodon: https://fosstodon.org/@ianthetechie Ian on Twitter: https://x.com/ianthetechie Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
03 Jan 2024 | Can Event-Driven Architecture make Software Design Easier? (with Bobby Calderwood) | 01:09:59 | |
This week’s guest describes Event Sourcing as, “all I’m going to use for the rest of my career.” But what is Event Sourcing? How should we think about it, and how does it encourage us to think about writing software? In this episode we take a close look at systems designed around the idea of Events, with guest Bobby Calderwood. Bobby’s been designing (and helping others design) event based architectures for many years, and enthusiastically recommends it not only as a system-design technique, but as a way of solving business problems faster and more reliably. During this discussion we look at the various ways of defining event systems, what tools we need to implement them, and the advantages of thinking about software from an event-based perspective. Along the way we discuss everything from Clojure, Bitemporality & Datomic to Kafka and more traditional databases - all in the service of capturing real-world events and building simple systems around them. – EventStoreDB: https://developers.eventstore.com/ The CloudEvents standard: https://cloudevents.io/ Datomic: https://www.datomic.com/ Adam Dymitruk’s Event Modelling Explanation: https://eventmodeling.org/ Bobby’s Event Modelling course: https://developer.confluent.io/courses/event-modeling/intro/ Bobby on Twitter: https://twitter.com/bobbycalderwood Boddy on LinkedIn: https://www.linkedin.com/in/bobbycalderwood/ Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ – #software #softwarepodcast #programming #eventsourcing #eventdrivenarchitecture #kafka | |||
06 Mar 2024 | Creating Hackathons that Work (with Jon Gottfried) | 01:02:52 | |
Done right, a Hackathon can be a fantastic place to be a programmer - you get time and space to build and learn, in a room full of like-minded people, with swag and prizes to sweeten the deal. It’s a great way to pick up new ideas and run with them. But done wrong it can be a waste of time. What’s the difference between a good hackathon and a bad one? What do the good ones do right, and what can we learn from that? This week we’re talking about the Joy of Hacks with Major League Hacking Co-Founder Jon Gottfried. He’s got over 10 years of experience building a Hackathon network that provides the right environment for “structured mucking about with computers”, so we’re going to pick his brains. If you’re ever attending a Hackathon, organising one, or looking for a way to build or contribute to your local programming community, Jon can help guide you to events that work. -- Major League Hacking: https://mlh.io/ Major League Hacking’s 2024 Event Calendar: https://mlh.io/seasons/2024/events Games Week: https://events.mlh.io/events/10848 Jon on Mastodon: https://hachyderm.io/@jonmarkgo Jon on LinkedIn: https://www.linkedin.com/in/jonmarkgo Jon on Twitter: https://twitter.com/jonmarkgo Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins Bonus link - The Great American Baking Show 2023: https://www.youtube.com/watch?v=IlWLSAKEedk -- #software #podcast #programming #hackathon | |||
23 Aug 2023 | Teaching, Guiding & Inspiring The Next Generation of Programmers (with James Q. Quick) | 00:53:37 | |
How do you get started as a programmer? And how do experienced programmers help them as they start their journey? This week's guest is a developer-turned-teacher, James Q. Quick. A former coder and developer advocate, he's s been been working on tutorials, courses and bootcamps to teach aspiring developers how to get started with JavaScript. We talk about why people get into programming as a new career, what they need to succeed, and what James thinks is the best indicator of success. We also discuss what's new and exciting in JavaScript, James' favourite up & coming libraries, and dive into the JavaScript vs. TypeScript debate. James’s YouTube channel: https://www.youtube.com/c/jamesqquick James on Twitter: https://twitter.com/jamesqquick | |||
27 Mar 2025 | Nix, The Build-Everything Language (with Julian Arni) | 01:20:36 | |
Ever since we invented makefiles, the programming world has been wrestling with the problem of building software stacks reliably. This week we’re going to look at one of the most ambitious solutions available - Nix. Nix tries to do everything from invoking your compiler to installing your language, and even providing your operating system. But how does it work in theory, and how well does it work in practice? Joining me to discuss is Julian Arni, a Nix-enthusiast and creator of a build/test/deploy service called Garnix. Nix has been one of my go-to tools for years - I hope it’ll find its way into your stack. – Nix Overview: https://nixos.org/explore/ Nix Tutorial: https://nix.dev/tutorials/first-steps/ Nix Flakes: https://nixos.wiki/wiki/Flakes The Nix Package List: https://search.nixos.org/packages Garnix.IO: https://garnix.io/ Julian’s NixCon Talk, Call by Hash: https://www.youtube.com/watch?v=fU9ogB9hZZA Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
25 Apr 2025 | DataFusion - The Database Building Toolkit (with Andrew Lamb) | 01:32:10 | |
Building a database is a serious undertaking. There are just so many parts that you have to implement before you even get to a decent prototype, and so many hours of work before you could begin working on the ideas that would make your database unique. Apache DataFusion is a project that hopes to change all that, but building an extensible, composable toolkit of database pieces, which could let you build a viable database extremely quickly, and then innovate from that starting point. And even if you’re not building a database, it’s a fascinating project to explain how databases are built. Joining me to explain it all is Andrew Lamb, one of DataFusion’s core contributors, and he’s going to take us through the whole stack, how it’s built and how you could use it. Along the way we cover everything from who’s building interesting new databases and how you manage a large, open-source Rust project. – DataFusion Homepage: https://datafusion.apache.org/ DataFusion on Github: https://github.com/apache/datafusion DataFusion Architecture (with diagrams!): https://youtu.be/NVKujPxwSBA?si=tw9ACxlbdpBuVsnv&t=1045 Datalog: https://docs.racket-lang.org/datalog/ Tokio: https://tokio.rs/ Andrew’s Homepage: http://andrew.nerdnetworks.org/ Andrew’s Blog Post about Tokio: https://thenewstack.io/using-rustlangs-async-tokio-runtime-for-cpu-bound-tasks/ Velox: https://velox-lib.io/ Arroyo: https://www.arroyo.dev/ Synnada: https://www.synnada.ai/ LanceDB: https://lancedb.com/ SDF+DBT: https://docs.sdf.com/integrations/dbt/integrating Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
31 May 2023 | What are the fundamentals of Data Engineering? | 00:54:33 | |
Every business deals in data, but the internet age has ushered in an explosion of the number of different data formats we have to process from a number of different databases to get the job done. Ask any Data Scientist, and they’ll tell you a huge part of their job isn’t data science - it’s data engineering. Acquiring, processing and shipping data, and above all, understanding it. We’ve always had that task in the IT world, but these days it’s a whole discipline. Today’s podcast sits down with the author of “The Fundamentals Of Data Engineering” to survey the landscape. To understand what data engineering is, and go deep into what a data engineer needs to understand to succeed. | |||
11 Oct 2023 | The Future of Data is Now is the Future of Data (with Thomas Camp) | 01:01:15 | |
Real-time data is gradually becoming a standard requirement in systems design. Our customers are beginning to demand it, our colleagues in other departments are starting to expect it. Whether you’re letting people book a taxi, recommending their next binge-watch, or delivering business reports to management, faster data is just obviously better. Or is it? Does real-time data matter everywhere, or does it just have sweet spots in some sectors and some use-cases? Is it a cost-benefit question - is the idea great in theory, but still too hard to adopt in practice? Would everyone be streaming their data live if streaming their data live was easier? If the future of data is, “now, not later,” then what’s holding that future back? In this week’s Developer Voices we talk to Thomas Camp of Ably, and chew through the use-cases, software stacks, and education needed to speed up the way we process data. We consider everything from the front-end to the back, from user experience to business needs, and from greenfield projects to incrementally adapting existing systems. If you’re wondering what all the batch vs. streaming fuss is about, or you want to know how you can drag the industry there sooner, we have some answers. It’ll only take an hour. 😉 -- Thomas on LinkedIn: https://www.linkedin.com/in/thomascamp333/ | |||
27 Mar 2024 | Taking Erlang to OCaml 5 (with Leandro Ostera) | 01:03:47 | |
Erlang wears three hats - it’s a language, it’s a platform, and it’s an approach to making software run reliably once it’s in production. Those last two are so interesting I sometimes wonder why those ideas haven’t been ported to every language going. How much work would it be? This week we’re going to dig right down into that question with Leandro Ostera. He’s been working on Riot - a project to bring the best of Erlang’s runtime system and philosophy to OCaml. But why OCaml? Is it possible to marry together OCaml’s type system with Erlang’s dynamic dispatch systems? And what is it about the recent release of OCaml5 that makes the whole project easier? – Leandro’s Blog: https://www.abstractmachines.dev/ Why Typing Erlang is Hard: https://www.abstractmachines.dev/posts/am012-why-typing-erlang-is-hard/ Riot: https://riot.ml/ Riot source: https://github.com/riot-ml/riot ReasonML: https://reasonml.github.io/ ReScript: https://rescript-lang.org/ Leandro on Twitter: https://twitter.com/leostera Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins -- #podcast #softwaredevelopment #erlang #ocaml #softwaredesign | |||
17 Jul 2024 | Zig as a Multi-OS Build System (with Loris Cro) | 01:19:05 | |
The ZigLang team have put an astonishing amount of effort into making Zig work an effective tool for compiling C across different architectures. Work that benefits the Zig language, but also has a chance to benefit languages like Python and Rust. Or indeed, any language that uses native C libraries somewhere in its stack. So this week we’re joined by Loris Cro of the Zig team to dive into how you make a reliable, cross-platform toolchain that can compile C anywhere it finds it. And in doing so, – Zig Homepage: https://ziglang.org/ Zig on Github: https://github.com/ziglang/zig MingW for Windows: https://www.mingw-w64.org/ All Your Codebase: https://allyourcodebase.com/ Ziglang on PyPi: https://pypi.org/project/ziglang/ Shout out to Whitequark: https://pypi.org/user/whitequark/ Darling: https://www.darlinghq.org/ WineHQ: https://www.winehq.org/ PyPi Stats: https://pypistats.org/packages/__all__ The Zine static site generator: https://zine-ssg.io/ The Zine source code: https://github.com/kristoff-it/zine Loris’ website: https://kristoff.it/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
23 Oct 2024 | Architecting a Rust Game Engine (with Alice Cecile) | 01:18:08 | |
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 Functional Programming to build something entirely unique and surprisingly high-performance. Joining us to explain all is Alice Cecile. She’s part of the Bevy foundation, which is charting a course from data-management and rendering tool to fully-featured game development environment. A journey they’ve made huge progress on, but still expect to take another decade to come to full fruition. We look at the core ECS, and the wider project-management approaches they need to make the journey. – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Bevy: https://bevyengine.org/ Bevy Examples: https://bevyengine.org/examples/ Flecs (C++): https://github.com/SanderMertens/flecs Tiny Glade (game): https://store.steampowered.com/app/2198150/Tiny_Glade/ Alice on Mastodon: https://mastodon.gamedev.place/@alice_i_cecile Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
26 Jun 2024 | NATS & Jetstream: The System Communication Toolkit (with Jeremy Saenz) | 01:11:04 | |
Most message systems have an opinion on the right way to do inter-systems communication. Whether it’s actors, queues, message logs or just plain ol’ request response, nearly every tool has decided on The Right Way to do messaging, and it optimises heavily for that specific approach. But NATS is absolutely running against that trend. In this week’s episode, Jeremey Saenz joins us to talk about NATS, the Cloud Native Computing Foundation’s configurable message-passing and data-transfer system. The promise is a tool that can happily behave like a queue for one channel, a log like another and a request/response protocol for the third, all with a few client flags. But how does that work? What’s it doing under the hood, what features does it offer, and what do we lose in return for that flexibility? Jeremy has all the answers as we ask, what is NATS really? – NATS on Github: https://github.com/nats-io/nats-server NATS Homepage: https://nats.io/ Getting Started with NATS: https://youtu.be/hjXIUPZ7ArM Developer Voices Episode on Benthos: https://youtu.be/labzg-YfYKw CNCF: https://www.cncf.io/ The Ballerina Language: https://ballerina.io/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins Support Developer Voices via Patreon: https://patreon.com/DeveloperVoices Support Developer Voices via YouTube: https://www.youtube.com/@developervoices/join | |||
09 Oct 2024 | Text User Interfaces in Rust (with Orhun Parmaksız) | 01:06:23 | |
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 Rust TUI library with the excellent name ‘ratatui’. We’re joined by Orhun Parmaksız, one of the lead developers and a huge TUI enthusiast on a quest to see how far Text UIs can be pushed. – Ratatui: https://ratatui.rs/ Ratatouille Tutorials: https://ratatui.rs/tutorials/ Tui Realm: https://github.com/veeso/tui-realm Awesome Ratatui: https://github.com/ratatui/awesome-ratatui RTL SDR: https://www.rtl-sdr.com/about-rtl-sdr/ Rust Snake AI: https://github.com/bones-ai/rust-snake-ai-ratatui SystemCtl-Tui: https://github.com/rgwood/systemctl-tui GitU: https://github.com/altsem/gitu …and GitUi: https://github.com/extrawurst/gitui GitCliff Changelog Tool: https://git-cliff.org/ ATAC (Postman in the Terminal): https://github.com/Julien-cpsn/ATAC BubbleTea (TUIs in Golang): https://github.com/charmbracelet/bubbletea Imgcat (images in the terminal): https://github.com/danielgatis/imgcat TachyonFX: https://github.com/junkdog/tachyonfx ASCIITheatre: https://ascii.theater/ Rio Terminal: https://raphamorim.io/rio/ – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
16 May 2023 | How Do You Get AI Into Production? | 00:47:49 | |
AI is the new hotness, but with new approaches come new problems of scale. How do you make raw data accessible to teams of data scientists and model-builders? How do build a repeatable deployment pipeline? And how do you monitor your models once they're in production? Today's episode goes through all these reality checks with author and expert Adi Polak, who's just released a new book on the subject. | |||
24 Apr 2024 | Batch Data & Streaming Data in one Atom (with Jove Zhong) | 00:51:46 | |
Every database has to juggle the need to process new data and to query old data. That task falls to any system that “does stuff and remembers stuff”. But it’s quite hard to really optimise one system for both use cases. There are different constraints on new and old data, and as a system gets larger and larger, those differences multiply to breaking point. That’s something Twitter’s engineers were figuring out in the 2010s. One solution that came up in those years was the Lambda Architecture. A two-pronged approach that recognises the divide between new and old data, and works hard to blend the two together seamlessly in userspace. But that seamless blending is easier said than done. It’s nearly all bespoke work. What if you could get it off the shelf? Let someone else do the work of combining two different kinds of database into one neat package? That's the question of the week as we look at the recently open-sourced project Proton, and its attempt to be the Lambda Architecture in a box… – Proton Docs: https://docs.timeplus.com/proton Proton Source: https://github.com/timeplus-io/proton Timeplus: https://www.timeplus.com/ Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – #podcast #softwareengineering #databases #dataengineering | |||
24 Jan 2024 | Shouldn't Data Connections Be Easier? (with Ashley Jeffs) | 01:15:25 | |
Benthos wants to be part of your Data Engineering toolkit - it’s there as a quick and easy way to set up data pipelines and start streaming data out of A and into B. In contrast to a lot of the tools we’ve talked about on Developer Voices, Benthos seems focussed on cutting development time down to a minimum, so you can quickly configure a new pipeline and test it out, without making a whole sprint of the task. As quick as a quick-and-dirty shell script, without the dirt. 😉 So this week we’re talking to the creator of Benthos, Ashley Jeffs, to hear why he created Benthos, what it can do for you, and what its strengths and weaknesses are. And Jeff’s refreshingly candid about when you should and shouldn’t use it. If you ever need to get data from an HTTP connection into S3, or S3 into Kafka, or Kafka into a flat file, Benthos might just save you a few hours of development. – Benthos: https://www.benthos.dev/ A list of supported inputs, processors & outputs: https://www.benthos.dev/docs/about#components All their cute blobfish logos: https://www.benthos.dev/blobfish/ IDML: https://idml.io/ Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ – #software #podcast #dataengineering #datascience | |||
15 May 2024 | Designing Actor-Based Software (with Hugh McKee) | 01:12:02 | |
The actor model is a popular approach to building scalable software systems. And isn’t hard to understand when you’re just reading about the beginner’s examples. But how do you architect a complex design using the actor model? Which patterns work well? How do you think through it? Joining me to take us through it is Hugh McKee. Hugh’s a total actor-model fan, and a Developer Advocate for Lightbend (the company that created the popular actor framework Akka). He takes us from his definition of actors to the designs he’s worked on, the patterns he’s found most useful, and the interesting meeting-point between actor-based designs and event-based ones. — Wikipedia - Actor Model: https://en.wikipedia.org/wiki/Actor_model Hugh’s book, Designing Reactive Systems: https://go.lightbend.com/designing-reactive-systems-role-of-actor-model Hugh on Twitter: https://twitter.com/mckeeh3 Hugh on LinkedIn: https://www.linkedin.com/in/mckeehugh Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
06 Sep 2023 | What problems does Apache Kafka Solve? (with Neil Buesing) | 01:02:16 | |
Neil Buesing is a seasoned Apache Kafka® user, and a respected voice from the Kafka community who specialises in helping companies make the best use of Kafka. And that makes him the ideal person to ask the $64,000 question: What problems can Kafka actually solve for me? Because Kafka's definitely interesting, and it can be fun, but to earn a place in the toolbox it has to make life easier. In answering that question, Neil covers a tonne of ground, from queuing and quasi-databases, transitioning from batch to real-time, and solving general software integration headaches. If you have data problems, big or small, join us to figure out if Kafka is the answer. -- Kinetic Edge: https://www.kineticedge.io | |||
20 Dec 2023 | Roc - A Functional Language looking for those Software Sweetspots (with Richard Feldman) | 01:01:48 | |
Sometimes, what a programming language makes harder is just as important as what it makes easier. For a simple example, think of GOTO. We’ve been wisely avoiding it for decades because it makes confusing control flow desperately easy. Types and tests are other examples - they’re as much about specifying what shouldn’t work as what should. And perspective is what makes this week’s topic particularly interesting: Roc is a language that’s functional, fast, friendly, and extremely interested in making your life easier by enabling some possibilities and restricting others. So this week we’re joined by Richard Feldman, the creator of Roc. He’s been an advocate of the Elm programming language for years, for its tight focus on taking the best bits of Functional Programming to the browser. And in recent years he’s been inspired to build his own language, taking that philosophy to other places and platforms. But which bits are “the best bits”? And how do they change when the domain you’re coding for changes? How is Roc built and how would we build systems in it? Let’s find out… Richard’s GOTO Copenhagen 2021 talk: https://www.youtube.com/watch?v=3n17wHe5wEw Richard on Twitter: https://twitter.com/rtfeldman Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Mastodon: https://mastodon.social/@krisajenkins Kris on Twitter: https://twitter.com/krisajenkins | |||
10 Jul 2024 | Creating and Evolving Elixir (with José Valim) | 01:42:21 | |
Back in 2012, José Valim started building Elixir to as a way to have his ideal programming language running on the same platform as Erlang. Fast-forward 12 years and it’s become build anything from distributed infrastructure to notebooks and websites. In this week’s Developer Voices, José joins us to tell the history of Elixir in a series of design choices. Which features mattered to him in the early days, and which ones excite him most now. What’s going on under the hood to make Elixir tick, and what does its future hold? – Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Elixir Homepage: https://elixir-lang.org/ Elixir Docs: https://elixir-lang.org/docs.html Numerical Elixir: https://github.com/elixir-nx Phoenix: https://phoenixframework.org/ Livebook: https://livebook.dev/ José’s Livebook & Elixir Presentation: https://www.youtube.com/watch?v=pas9WdWIBHs Comparing Elixir & Erlang Variables: https://dashbit.co/blog/comparing-elixir-and-erlang-variables Gleam on the BEAM: https://youtu.be/RntfkL8lUY4 José on Github: https://github.com/josevalim Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
16 Oct 2024 | Writing a CAD Language in Rust (with Adam Chalmers) | 01:22:48 | |
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 at Zoo, developing KCL - a language that looks like JavaScript, runs on Rust, and offers users a seamless hybrid experience of both coding and point-and-click modelling. So, how does that all fit together? In this episode we look at the design and implementation of a programming language in Rust; how KittyCAD creates that hybrid environment for text-based programming and point-and-click modelling; and how we can learn to write our own Rust-interpreted languages. – Adam’s Blog: https://adamchalmers.com/ Adam’s Guide To Writing Parsers: https://www.youtube.com/watch?v=QF3kMyzMC40 Zoo’s Modelling App: https://zoo.dev/modeling-app Mechanical CAD: https://zoo.dev/blog/mechanical-cad-yesterday-today-and-tomorrow A Lego brick in KCL: https://zoo.dev/docs/kcl-samples/lego Winnow: https://docs.rs/winnow/latest/winnow/ Nom: https://docs.rs/nom/latest/nom/ Factorio: https://www.factorio.com/ Satisfactory: https://store.steampowered.com/app/526870/Satisfactory/ Crafting Interpreters: https://craftinginterpreters.com/ Coding in Antarctica: https://brr.fyi/ Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Adam on Mastodon: https://mastodon.social/@adam_chal@hachyderm.io Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
26 Jul 2023 | Inside the World of Competitive Coding (with Mathis Hammel) | 00:55:41 | |
Whether you’re trying to ace the coding interview, sharpen your programming skills or just have some fun learning new things, the world of competitive coding has something to offer you. Some people join with dreams of hitting the podium, and plenty of others are just competing to be their better selves. Either way, Mathis Hammel is a veteran of the competitive coding scene and he’s going to give us a view into that world, tell a few war stories and share some tips how you can play better, faster and stronger… ICPC: https://icpc.global/ Mathis on Twitter: https://twitter.com/mathishammel | |||
24 Jul 2024 | Recording and Replaying the Browser (with Justin Halsall) | 01:02:50 | |
RRWeb is based on a simple idea: If you capture all the DOM events in a browser session, and when they happened, you could play it back later. Play it back for diagnosing error conditions, for understanding your user’s journey, or for creating demo videos that can be edited element-by-element instead of frame-by-frame. Unfortunately, the simple idea gets tricky when you try to implement, for a whole host of browser specific glitches, differences, and places where the HTML5 spec ran out. It’s exactly the kind of project where might want to use it, but you want someone else to maintain it! Joining us this week is Justin Halsall—a chief contributor to rrweb—to teach us about some of the more barren corners of the browser spec, how he’s fought through them, and what the benefits are on the other side… – RRWeb homepage: https://www.rrweb.io/ RRWeb on Github: https://github.com/rrweb-io/rrweb RecordOnce: https://recordonce.com/ Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Justin on Twitter: https://x.com/juice10 Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – 0:00 Intro 3:10 What is rrweb Doing? 6:12 Beginning With A Naive Implementation 9:49 Supporting Canvas Tags 13:05 Exotic HTML 5 Tags Like Midi 14:31 The Internal Data Format 17:39 How Reliable Can This Be In Practice? 23:04 Cross-Browser Support 24:32 Exploring The Use Cases 30:17 Privacy Issues 33:46 Analyzing User Interactions En-Masse 36:40 Is The Spec Greater Than The Tool? 38:20 The Practical Benefits Of Contributing To Open Source 44:45 Updating Recordings After The Website Changes 49:55 Playing Well (Or Badly) With Popular Frameworks 53:21 The Runtime Burden 54:17 What's Coming In The Future? 1:01:02 Outro | |||
07 Feb 2025 | A universal query engine in Rust (with Predrag Gruevski) | 01:15:31 | |
Trustfall is a library based on a simple question - what happens if we can query absolutely anything? If you could join REST APIs and databases with filesystems and dockerfiles? It’s possible in theory because those are all just datasources. Predrag Gruevski is trying to make it easy by building a universal query engine, with pluggable datasources, all in Rust. This week we dive into Trustfall to figure out how it works. How do you model nearly anything as a datasource? How do you make it easy to extend? And what does it take to optimize a query that’s going to be spread out over multiple systems and potentially multiple servers? Questions, questions, questions - all about the act of asking our systems questions. 😃 – Trustfall Source: https://github.com/obi1kenobi/trustfall Cargo Semver Checks: https://crates.io/crates/cargo-semver-checks How to Query Almost Everything: https://predr.ag/querying/ SemVer In Rust (talk): https://predr.ag/blog/semver-in-rust-tooling-breakage-and-edge-cases/#cargo-semver-checks-lints-are-database-queries-in-disguise Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
25 Oct 2023 | When We Talk About Software (with Francesco Tisiot) | 00:32:00 | |
Ever read a bad README? We all have, and most of the time, we’ve just moved right along. A programmer that can’t communicate their ideas will find no-one uses their software. And that’s true even outside of the open-source world. The best software doesn’t win - the best software _that people can understand_ wins. So how do we get better at communicating our code? What do we talk about when we talk about software? Joining to discuss that question is a data-streaming expert and skilled communicator, Francesco Tisiot. Unusually, this episode is recorded on location, as we met up in the hallway of a recent tech conference. Francesco on Twitter: https://twitter.com/FTisiot #podcast #podcasts #devrel #opensource #software #presentations | |||
05 Dec 2024 | Programming As An Expressive Instrument (with Sam Aaron) | 01:50:01 | |
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 of thin air, all driven by the Ruby-esque he writes. In this episode we go through Sam’s career path and design journey as we look at what it takes to make a programming language with enough expressivity and productivity to produce music at the speed of Sam’s imagination. -- Sam’s Sonic Pi Course: https://www.patreon.com/posts/new-introductory-115404746 Sonic Pi: https://sonic-pi.net/ SuperCollider: https://supercollider.github.io/ Overtone: https://github.com/overtone/overtone Power Gloves: https://en.wikipedia.org/wiki/Power_Glove Web Audio API: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Tau5: https://www.patreon.com/posts/announcing-sonic-112605951
Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join
Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
31 Jan 2024 | Verse, Haskell & Core Language Design (with Simon Peyton Jones) | 01:23:07 | |
This week we talk to Simon Peyton Jones, a veteran language designer and researcher, and key figure in the development of Haskell. Haskell. Simon has made countless contributions to advancement of functional programming, and computer programming in general, and is currently working at Epic Games, working on the foundations of their new programming language, Verse. We discuss how programming languages are made, focussing on a big design idea from both Haskell and Verse: building a large language from a small, tightly designed core. Then we move into Simon's current work exploring Functional Logic Programming, the big new idea that underpins Verse. It's an idea that blends the fundamentals FP with the core ideas of logic languages like Prolog in an entirely new way. Not even Simon knows exactly where the idea will lead, but it's a fascinating idea that could potentially bring constraint-solving and deduction right into the heart of modern software. Additionally, Simon discusses his involvement in reshaping the way we teach computing in England. He's been working hard to give computing education the same importance as the teaching of mathematics and sciences - something we should all have a fundamental understanding of. Simon's one of the smartest, nicest people in programming. Come as hear his brilliant brain at work. :-D – Verse: https://github.com/UnrealVerseGuru/VerseProgrammingLanguage The Verse Language Reference: https://dev.epicgames.com/documentation/en-us/uefn/verse-language-reference The Verse Calculus [pdf]: https://simon.peytonjones.org/assets/pdfs/verse-March23.pdf https://en.wikipedia.org/wiki/Simon_Peyton_Jones The LogicT monad: https://hackage.haskell.org/package/logict Can programming be liberated from the von Neumann style?: https://dl.acm.org/doi/10.1145/359576.359579 CAS - Computing At School: https://www.computingatschool.org.uk/ Computer Science Teachers Association: https://csteachers.org/ Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ | |||
07 Aug 2024 | Building A Programming Language From Its Core (with Peter Saxton) | 01:01:21 | |
A language’s AST—it’s abstract syntax tree—is nearly always a hidden implementation detail. It’s not treated as part of the language, but merely the intermediate step between parsing and compiling. But this week’s guest aims to flip that relationship on its head... EYG Homepage: https://github.com/crowdhailer/eyg-lang TinyGo: https://tinygo.org/ Become a Supporter on Patreon: https://patreon.com/DeveloperVoices Become a Supporter on YouTube: https://www.youtube.com/@developervoices/join Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
07 Feb 2024 | Implementing Hardware-Friendly Databases (with DuckDB co-creator, Hannes Mühleisen) | 01:20:12 | |
SQLite could do with a little competition, so when I invited the co-creator of DuckDB in to talk, I thought we'd be discussing the perils of trying to build a new in-process database engine. I quickly realised things went much deeper than just a tech refresh. Hannes Mühleisen joins me this week to blend his academic credentials as a database researcher with his vehement need to make that research practical. And so we dive into what modern database literature has to say on making queries faster, more parallelizable, and closer to the metal, and how it all comes together in a user-friendly package that’s found its way into my day-to-day workload, and might well help out yours. If you’re curious about the gory details of database queries, how they can take advantage of modern hardware, or how all that research actually turns into a useful tool, Hannes has some great answers. -- DuckDB: https://duckdb.org/ Database Systems Book: http://infolab.stanford.edu/~ullman/dscb.html Kris’ first computer: https://en.wikipedia.org/wiki/File:ZX_Spectrum_Plus2_(retouched).jpg Volcano Query Evaluation System [pdf]: https://paperhub.s3.amazonaws.com/dace52a42c07f7f8348b08dc2b186061.pdf Morsel Query Engine [pdf]: https://cs.brown.edu/~kayhan/papers/morsel_cp.pdf Unnesting Arbitrary Queries [pdf]: https://cs.emis.de/LNI/Proceedings/Proceedings241/383.pdf Papers Hannes' team have published: https://duckdb.org/why_duckdb#peer-reviewed-papers-and-thesis-works DuckDB on Mastodon: https://mastodon.social/@duckdb Kris on Twitter: https://twitter.com/krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Mastodon: https://mastodon.social/@krisajenkins -- #softwaredevelopment #podcast #programming #database #duckdb #sql #sqlite | |||
01 May 2024 | Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner) | 01:24:38 | |
Mojo is the latest language from the creator of Swift and LLVM. It’s an attempt to take some of the best techniques from CPU/GPU-level programming and package them up in a Python-compatible syntax. In this episode we explore why Mojo was created, and what it offers to Python programmers and non-Python programmers alike. How is it built for performance, and which performance features matter? What’s its take on functional programming and type systems? And can it marry the high-level programming of Python with the low-level programming of LLVM/MLIR? If you’re a Python programmer who needs better performance, a C programmer who expects more from a ‘scripting language’, or just someone who’d be happier if Python had a first-class type system, Mojo might well be for you… – Mojo: https://www.modular.com/max/mojo Mojo’s Roadmap: https://docs.modular.com/mojo/roadmap.html The Mojo Discord: https://discord.com/invite/modular MLIR: https://mlir.llvm.org/ Chris’s Talks: https://nondot.org/sabre/Resume.html#talks Chris on Twitter: https://twitter.com/clattner_llvm Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins – #software #podcast #mojolang #ml #pythonml | |||
14 Nov 2024 | MicroServices For Better And Worse (with Ian Cooper and James Lewis) | 00:47:09 | |
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 this big architectural idea. This interview was recorded live at GOTO Copenhagen, with two microservice experts and thinkers: James Lewis of Thoughtworks and Ian Cooper of JustEat. – Residuality Theory: https://leanpub.com/residuality Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join Ian on Mastodon: https://mastodon.social/@ICooper@hachyderm.io James on BlueSky: https://bsky.app/profile/boicy.bsky.social Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on BlueSky: https://bsky.app/profile/krisajenkins.bsky.social Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/ Kris on Twitter: https://twitter.com/krisajenkins | |||
12 Jul 2023 | The Evolution of Databases & the Future of Database Technology (with Ben Stopford) | 00:49:47 | |
Have you ever been overwhelmed by the number of databases on offer? This week we welcome database expert Ben Stopford as a guide to help us map the database landscape and make sense of it all! Join us as we embark on a journey through the history of databases, tracing the path from Edgar Codd to the multitude cloud-era of options available today. Discover the strengths of various database styles and explore the tradeoffs between general-purpose databases like #PostgreSQL and highly customised ones like #Cassandra or #Snowflake. We delve into the realm of the cloud and the opportunities it brings, both for users and the database vendors themselves. And then we examine the challenges that arise when you're forced to connect multiple databases across an organisation. Should you look at Event Sourcing? Or Event Streaming, and how exactly do they differ? Finally, we look towards the future, discussing Ben's vision of an ideal database and which programming language he would choose to build it in. Kris on Twitter: https://twitter.com/krisajenkins |