

Programming Throwdown
Patrick Wheeler and Jason Gauci
Programming Throwdown educates Computer Scientists and Software Engineers on a cavalcade of programming and tech topics. Every show will cover a new programming language, so listeners will be able to speak intelligently about any programming language.
Episodes
Mentioned books

Jun 16, 2021 • 1h 25min
Code Documentation with Omer Rosenbaum and Tim Post
What makes for good documentation? In this episode, we dive into one of the most important yet overlooked facets of coding. With us are Omer Rosenbaum and Tim Post of Swimm.io. Swimm is an app that allows you to create docs coupled with your code, which are auto-synced and integrated into your workflow. It makes for much more efficient, elegant, and accessible documentation. Omer is the CTO of Swimm, and Tim is Principal Development Relations and User Advocate. They are the experts who will guide us through good code documentation practices and tools, as well as share some fascinating real-life examples and stories.This episode touches on the following key topics and ideas:00:01:20 Introducing Omer and Tim00:03:28 Omer: learning tech while in the military00:06:36 Israel Tech Challenge00:08:32 Impostor Syndrome00:12:15 Tim: the consulting career route00:18:15 Stack Overflow elected moderator00:20:59 ZFS and Btrfs 00:22:49 What is good code documentation?00:34:48 Documentation and remote work00:36:99 Good practices00:40:37 Code comments00:45:20 How to write documentation00:46:59 Signs of bad code documentation00:48:05 Swimm overview00:53:21 PyTorch documentation00:54:45 PHP documentation00:56:34 Swimm’s CLI tools01:01:16 Code documentation horror stories01:07:26 Swimm offers for open-source projects and enterprises01:13:47 Working at Swimm01:19:54 The value of remote workResources mentioned in this episode:ToolsSwimm https://swimm.io/ReiserFS https://en.wikipedia.org/wiki/ReiserFSPyTorch https://pytorch.org/docs/stable/index.htmlElectron https://www.electronjs.org/Git https://git-scm.com/Stack Overflow https://stackoverflow.com/Catch Swimm on:Twitter | Facebook | LinkedInIf you’ve enjoyed this podcast, you can listen to more programming news and updates like this one on Programming Throwdown’s website: https://www.programmingthrowdown.com/, or send us an email at programmingthrowdown@gmail.com.You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM You can also help support Programming Throwdown through our Patreon.
★ Support this podcast on Patreon ★

Jun 2, 2021 • 1h 25min
Episode 113 - Full Stack Web Apps Using Only Python with Meredydd Luff
In this episode, we’re excited to have Meredydd Luff, the founder of Anvil. Anvil is a powerful tool that allows you to build full stack web apps with just Python. Without the need to be fluent in Javascript or other languages, Anvil is easy enough for beginners, but robust enough for professional work. We talk to Meredydd about Anvil and its features, as well as delve into the importance of making programming more accessible to more people.This episode touches on the following key topics and ideas:00:00:17 Jason introduces Meredydd and Anvil 00:01:06 What is Anvil?00:09:27 Web hydration00:11:00 Jupyter Notebook00:12:49 The Uplink00:14:02 GraphQL00:23:06 How Anvil works00:24:19 Skulpt00:28:09 Brython00:29:04 Pyodide00:32:46 Javascript daisy chaining00:37:11 GRPC and protocol buffers 00:39:03 “Anvil is an abstraction.”00:40:09 Escape hatches00:43:10 Anvil and Webpack00:44:35 “Learn Python and build a website.”00:45:02 Accessibility00:47:16 Meredydd’s personal background, and Anvil’s beginnings00:52:56 Putting your work out there00:56:01 Logging and capturing what people want01:01:06 Ad: ConfigCat01:03:04 Anvil’s parent company, The Tuesday Project Ltd. 01:05:22 Meredydd’s take on venture capitalism on developer tools01:08:42 Working in Anvil01:17:02 Contact details for Meredydd and AnvilResources mentioned in this episode:ToolsAnvil https://anvil.works/Python https://www.python.org/Jupyter Notebook https://jupyter.org/GraphQL https://graphql.org/Skulpt https://skulpt.org/Brython https://brython.info/Transcrypt https://www.transcrypt.org/Pyodide https://pyodide.org/en/stable/VideosMeredydd’s Lightning Talk in PyCon 2017 https://www.youtube.com/watch?v=IHUw3N15v38Turning a Jupyter Notebook into a Web App with Anvil https://www.youtube.com/watch?v=yh0B4HjQxOUPodcastStories from the Workshop, Anvil’s podcast https://anvil.works/podcastCatch Meredydd on Twitter @meredyddAnvil’s features are offered completely free for teachers and educators. Send Meredydd an inquiry through email at education@anvil.works.Get ConfigCat: https://configcat.com/Get Audible: http://www.audibletrial.com/programmingthrowdownIf you’ve enjoyed this podcast, you can listen to more programming news and updates like this one on Programming Throwdown’s website: https://www.programmingthrowdown.com/, or send us an email at programmingthrowdown@gmail.com.You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM You can also help support Programming Throwdown through our Patreon.
★ Support this podcast on Patreon ★

May 12, 2021 • 1h 28min
Trees
In another duo episode, Jason and Patrick give an in-depth introduction to trees, their many types, approaches and functions, and their importance in modern programming. Also, peppered throughout the episode are the games, books, tools, and ideas that have currently piqued their interest.This episode touches on the following key topics and ideas:00:00:17 Avoiding drama at work00:07:10 News: C++20 (7:10)00:09:37 News: Play Co-op Diablo II in the browser00:12:58 Wreckfest00:15:07 Kaboom00:17:45 The future of remote work00:24:46 Jason’s Book of the Show: Debt: The First 5000 Years00:27:08 fractional-reserve banking00:31:30 DeFi, distributed finance00:33:08 Patrick’s Book of the Show: Harry Potter and the Sorcerer's Stone, the Illustrated Edition00:35:49 (Ad) Audible00:37:05 Jason’s Tool of the Show: Vagrant00:41:04 Patrick’s Tool of the Show: Zach Gage Games00:45:03 (Ad) ConfigCat00:46:03 feature flags00:47:03 Trees: why are they important? 00:49:43 The divide and conquer approach00:51:34 The agglometric approach00:55:57 Choosing the right tree and algorithm00:57:56 Keeping trees balanced01:01:10 binary trees01:02:52 binary trees and machine learning01:05:28 b-trees01:10:04 spatial trees: the k-d tree01:16:50 k-d trees and multidimension01:18:42 quadtrees and octrees01:21:44 r-treesResources mentioned in this episode:BooksDebt: The First 5000 Years, by David Graeber https://amzn.to/3uKEoe9Harry Potter and the Sorcerer's Stone, The Illustrated Edition, by JK Rowling https://amzn.to/2R6ILSsGamesDiablo II browser game http://clouddiablo.com/Wreckfest https://www.thqnordic.com/games/wreckfestZach Gage Games http://stfj.net/ToolsVagrant https://www.vagrantup.com/Kaboom https://replit.com/kaboomArticlesArticle on C++20: https://oleksandrkvl.github.io/2021/04/02/cpp-20-overview.htmlThe debate over remote work: https://www.bbc.com/news/technology-56771539Get ConfigCat: https://configcat.com/Get Audible: http://www.audibletrial.com/programmingthrowdownIf you’ve enjoyed this podcast, you can listen to more programming news and updates like this one on Programming Throwdown’s website: https://www.programmingthrowdown.com/You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM You can also help support Programming Throwdown through our Patreon.
★ Support this podcast on Patreon ★

May 4, 2021 • 1h 34min
Episode 111: Real-time Data Streaming with Frank McSherry
In this episode, we talk with Frank McSherry, Gödel Prize-winning data scientist, and Co-founder and Chief Scientist at Materialize, Inc. Frank shares expert viewpoints drawn from his years as an academic, as well as personal insights on helping run a company at the cutting edge of real-time data streaming.Show Notes: https://www.programmingthrowdown.com/2021/05/episode-111-real-time-data-streaming.html
★ Support this podcast on Patreon ★

Apr 26, 2021 • 1h 7min
Episode 110: Security with Dotan Nahum
Programming Throwdown talks cybersecurity with Dotan Nahum, CEO and Co-founder of Spectral. Dotan provides us with a high-level overview of the role of cybersecurity, its definition, evolution, and current challenges. He also shares tips for small- and medium-sized ventures on how to develop best practices.The episode touches on the following key topics and ideas:00:01:12 Evolution of modern cybersecurity 00:06:06 When to integrate security in a design00:11:54 Shadow IT00:13:50 Hacker motives and motivations; SQL Injection explained00:16:48 Firewalls and WAFs00:20:29 Cybersecurity for small- and medium-sized companies 00:23:52 “The last mile of developers”00:26:47 dotfiles00:32:23 Simple tools and good practices00:40:42 Attack vectors, attack factors00:44:16 Ransomware and phishing00:48:19 Unsafe languages00:50:02 Fuzzing00:54:11 Rust programming language00:55:54 Example security scenario with IntelliJ00:59:42 More about Spectral, Dotan’s company01:03:40 Staying virtual using DiscordTranscript:Episode 110 Computer Security with Dotan NahumJason Gauci: Programming Throwdown Episode 110, Security with Dotan Nahum. Take away, Patrick. [00:00:21] Patrick Wheeler: Hey everybody. We're here with a hundred and tenth episode, which is pretty exciting. And we have our guest to-- oh, yeah, go ahead. You want to... [00:00:30] Jason Gauci: I'm just saying, yeah! (laugh) [00:00:32] Patrick Wheeler: So we're here with our guest today, Dotan, and you are CEO of Spectral. Why don't you go ahead and introduce yourself briefly, and then we'll get started.[00:00:42] Dotan Nahum: Yep. So hi, guys. So I am Dotan, and by the way, 110 is binary, right? [00:00:48] Patrick Wheeler: Oh, there we go. That's right. (laugh) [00:00:52] Dotan Nahum: So yeah, so I'm Dotan, CEO of Spectral. It's a cybersecurity company, geared towards developers. I mean, we like to say that we create tools for developers with security as a side effect. So yeah, so that's, that's, you know, that's what our focus is. [00:01:12] Patrick Wheeler: Awesome. Well, I mean, I guess that's a lot to unpack, so I think everybody would agree, security is very important, but maybe everyone doesn't understand what security is. So we were talking about this a little when we were doing, doing warmups. So if we talk about security, does that mean that you are developing antivirus for computers, for developers, or does it mean something more?[00:01:35] Dotan Nahum: Yeah, I mean, I mean, it's kind of all goes back to, I guess, evolution of our, I guess it is our domain, our, our world, which is kind of a high-tech or softer, softer world? Time really gets compact with all these revolutions. We have a, we have evolution revolution. [00:01:57] So, I mean, if you go back to 2007, that was just before Facebook and just before iPhone, I guess. And if you go back to 2005, that that was before the rise of Microsoft, I guess the major rise of Microsoft as a .net shop, which really made, you know, made all the enterprise software come along and then kind of '98, 2000, the first bubble.[00:02:27] So all these stages, they had, it's kind of a sprint to create technology. And, the focus is on creating technology that is supposed to give developers productivity, and supposed to make, you know, make companies very productive and create a very nice portfolio of products. [00:02:48] And almost always, I mean, maybe not intentionally, but almost always the security side of things, was kind of left behind. You know, I'm sure no one intended for it to be, but, there's a lot of more velocity under creating a great product at the time. Every, each and every step of this, like in the first bubble, and then in 2005, and then into 2007 and so on, rather than, okay, so let's create the technology and the product, and let's also make it, you know, kind of, dependent on making great security, be there for us. [00:03:35] So almost every time, security came after the revolution, after the evolution. So we had from, simple firewalls, to intrusion detection, which is, you know, the large kind of, systems that try, try their best to find anomalies in the, in the area of 2000, to the smarter firewalls. And even today, those like, this, mini kind of firewalls, of WAFs that you integrate as an SDK into your app. So yeah, so it's kind of come, it comes in waves, technology, and then, security comes in waves as well. [00:04:17] And yeah. So the latest, the latest we're seeing right now in terms of the evolution of software is that yeah, we know that software eats the world, but we are kind of feeling that it already ate the world? So, you know, you can do so much today that you couldn't have done, I mean, as little as three or four years ago, actually. You know, it can take a Lambda and you can pick up a bunch of SAS services and you're done. I mean, you build a product that used to be maybe three, four, five years ago, you know, used to take much more energy to build.[00:04:58] So in that sense, as a developer, you have so much more power and so many more paths to get to the same end goal that... I'm not sure, I mean, I feel it for myself. I'm not sure the security world can even begin to realize, because they need, I mean, if we, if we think about them as they, then they need to understand how to develop as well as developers in order to give, to create great solutions for that developer, that glue stuff together, and, you know, invent stuff from existing, existing parts.[00:05:37] Jason Gauci: Yeah, that that makes a bunch of sense. [00:05:39] Patrick Wheeler: I say, yeah, that covered, I mean, you, you went to the whole history of modern or last couple of decades of, computer software there, but I was going to say, so one of the interesting things I think before we get into the kind of specifics about, what needs to be secured, this, this kind of, thing you mentioned where people build a product first and then try to figure out security later.[00:06:02] I guess that's an interesting balance where, if you're building something until it's built, maybe it doesn't really need security. Right? If this was a thought in my head, I don't need security. If people are going to start using it though, immediately, you need to start having some amounts of security. Do you have opinion on like, what is the balance there?[00:06:19] So if you don't know yet what you're doing and what may be your risks, when is the right time to start considering security and what are some of the good, you know, first things to start considering? [00:06:30] Dotan Nahum: Yeah, so that, that's a great, great question. I mean, I think the balance is shifting towards really taking the time, in development time, in design time, and think about security on the security model.[00:06:46] So, you know, this was kind of theoretical, yeah, everyone should do threat modeling and everyone should do secure by design and so on. And, and frankly, you know, you'll, you'll find these people who are extremely into security that are actually doing these th...

Mar 31, 2021 • 1h 23min
Digital Marketing with Kevin Urrutia
Kevin Urrutia, a digital marketing expert, discusses the importance of marketing in projects, the difference between digital and traditional marketing, the impact of COVID-19 on the industry, the advantages of remote work, the challenges of working on projects simultaneously, early experiences in programming, the misconception of marketing, the importance of personalization, building software versus using existing tools, starting a business on a small budget, marketing tools like Photoshop and A Hrefs, and the process of publishing a book on Amazon.

Mar 3, 2021 • 1h 14min
Kotlin
We’re having a duo episode for this month! Patrick and I discuss the relevance of Kotlin, a JVM language used for web backends and android development, and why you should look into it. Also we are testing out adding transcripts to the show notes. Let us know what you think! Show notes: https://www.programmingthrowdown.com/2021/03/episode-108-kotlin.html
★ Support this podcast on Patreon ★

Jan 29, 2021 • 1h 7min
Holiday 2020!
Happy Holidays! In this show we make predictions about 2021 and take questions from YOU, our loyal fans! Show notes: https://www.programmingthrowdown.com/2021/01/episode-107-holiday-episode-2020.html
★ Support this podcast on Patreon ★

Nov 21, 2020 • 1h 23min
Augmented Reality
This month we are speaking with Connel Gauld from Zappar about Augmented Reality. Connel is an AR genius and blows our mind with details on how AR works under the hood and how it's easy for anyone to make AR apps and websites. AR is the next great platform, so it's good to get in early. Give it a listen and tell us what you built! Show notes: https://www.programmingthrowdown.com/2020/11/episode-106-augmented-reality-with.html Teamistry: https://link.chtbl.com/teamistry?sid=podcast.throwdown
★ Support this podcast on Patreon ★

Oct 15, 2020 • 1h 23min
A Chatbot with a Brain
The September episode did arrive.... somewhat delayed, but it's worth the wait!! We have NEW INTRO MUSIC by amazing recording artist Eric Barndollar. We have a NEW PODCAST DEPLOYMENT SCRIPT which means the podcast timestamp will be correct and people won't have to hunt for our latest episodes. Last but not least, we have an AMAZING EPISODE where we interview Peter Voss, founder and CEO of aigo.ai and inventor of the term "Artificial General Intelligence", to discuss chatbots and general AI. Geeking out about AI may be my favorite thing to do on Earth, so I can't put in words how incredibly excited I am to share this episode with everyone. Show notes: https://www.programmingthrowdown.com/2020/10/episode-105-chatbot-with-brain-with.html Teamistry: https://link.chtbl.com/teamistry?sid=podcast.throwdown
★ Support this podcast on Patreon ★