Code Podcast show

Code Podcast

Summary: Code Podcast is about ideas that shape the way we build software. It's like Planet Money for developers. Each episode we interview people with different views on a single topic. We break down complex ideas to present why and how they are used to build modern software.

Join Now to Subscribe to this Podcast

Podcasts:

 Bonus Episode: Richard Bartlett on Decentralised Organising | File Type: audio/mpeg | Duration: 00:52:44

Show notes: https://codepodcast.com/posts/2018-09-17-richard-bartlett-on-decentralised-organising/ This is the interview we did with Richard, founder of Enspiral, Loomio and The Hum. We got introduced after our episode on peer-to-peer tech was out. We thought it would great to talk about decentralisation in the social context, and that's what Rich has a lot of experience in. We talk about benefits and challenges of working in an organisation where responsibility, risk and reward are distributed across members. This is not a technical discussion, this is a conversation about how can a group of anarchists work together towards common goal.

 Bonus Episode: Mathias Buus on BitTorrent and Dat | File Type: audio/mpeg | Duration: 00:55:58

Show notes: https://codepodcast.com/posts/2018-08-30-mathias-buus-bittorrent-dat-protocol/ Mathias is the lead developer of Dat protocol. He also works on Torrent-stream (BitTorrent implementation in Javascript), Beaker Browser, Node.js and other projects. We talk about BitTorrent, Dat, Git and the future of decentralized software.

 Bonus Episode: Steve Klabnik on Concurrency and Rust | File Type: audio/mpeg | Duration: 00:40:40

Show notes: https://codepodcast.com/posts/2018-07-19-steve-klabnik-rust-concurrency/ Support us on Patreon: https://www.patreon.com/codepodcast This is the unabridged interview with Steve Klabnik that we originally did for the episode on concurrency in Jan 2016. Steve together with Carol Nichols just released a new book "The Rust Programming Language", so we decided to revisit the early stuff :) Music by @Mid_Air

 8: P2P People to People | File Type: audio/mpeg | Duration: 01:16:00

Show notes: http://codepodcast.com/posts/2018-07-05-p2p-people-to-people/ Patreon: http://codepodcast.com/patreon Slack servers are down and work stops. Facebook sells users' personal data to third-parties with no negative consequences to the company. Turkey successfully blocks citizens' access to Wikipedia. Those are all results of peoples' decisions of course, but there's also something else at play. Our mainstream technology stack makes execution on all of those decisions ridiculously easy. The Internet didn't quite deliver on its original promise and today we're talking with people who are fixing it. --- 00:07 Introducing the topic 01:57 Limitations of centralized systems 04:57 Introducing Jon-Kyle 05:57 Introducing Zenna 08:23 Introducing Mathias 11:20 BitTorrent and scale 14:19 Multiple versions of truths, version control systems (Jon-Kyle) 19:16 Introducing Christian 20:08 Git internal structure 22:03 Benefits of Git architecture 27:03 Why is Git not dicentralized 32:23 How Dat started, tech description of the protocol (back to Mathias) 45:28 Dat usecases (Mathias and Jon-Kyle) 51:42 Future of Dat (Mathias) 53:54 Introducing Mikey 55:07 History of Scuttlebutt 56:22 How Scuttlebutt works 65:30 Usecases for Scuttlebutt 69:29 Vision for the decentralized future (Zenna) 71:39 Final thoughts on the topic, summary, thanks

 7: $300M worth of bugs | File Type: audio/mpeg | Duration: 00:45:45

Link to the website: https://codepodcast.com/posts/2018-03-12-episode-7-300m-worth-of-bugs/ Imagine – your company's code and data are exposed. How long will it take for malicious hackers to find vulnerabilities? To steal users' personal information? For developers that build on Ethereum that situation is not a distant possibility, it's an everyday reality. All the code, the state and the calls to their programs are publicly accessible and live forever on the blockchain. Add to it the fact that their code will manipulate money. Getting rid of *all* the bugs and holes becomes crucial. In this episode we'll talk about software that finds bugs in other software. Specifically ways of verifying Ethereum smart contracts. The story begins in the summer of 2017 when someone is able to steal $30M worth of ether. --- Episode was produced by [Andrey Salomatin](https://flpvsk.com). ## Support the podcast If you get value from the podcast, please consider supporting us on https://codepodcast.com/patreon Alternatively, you can also send us eth to this address: 0x730075d42c3BC0EA38c23A6D0D9611E9d78C5Af0 ## Guests * [Santiago Palladino](https://twitter.com/smpalladino) * [Matt Condon](https://twitter.com/mattgcondon) * [Yoichi Hirai](https://twitter.com/pirapira) ### Links * [Ethereum](https://ethereum.org/) * [Ethereum Development Tutorial](https://github.com/ethereum/wiki/wiki/Ethereum-Development-Tutorial) * [Parity](https://www.parity.io/) * EVM-compatible languages * [Solidity](https://github.com/ethereum/solidity) * [Serpent](https://github.com/ethereum/serpent) * [Vyper](https://github.com/ethereum/vyper) * [Bamboo](https://github.com/pirapira/bamboo) * Wiki: ["Abstract interpretation"](https://en.wikipedia.org/wiki/Abstract_interpretation) * Symbolic execution * Article ["Introducing Mythril: A framework for bug hunting on the Ethereum blockchain"](https://hackernoon.com/introducing-mythril-a-framework-for-bug-hunting-on-the-ethereum-blockchain-9dc5588f82f6) * [Manticore](https://github.com/trailofbits/manticore) * Wiki: ["Formal Verification"](https://en.wikipedia.org/wiki/Formal_verification) * [The Hydra Project](https://thehydra.io/) ### Links: Santiago * [OpenZeppelin website](https://openzeppelin.org/) * [OpenZeppelin Slack](https://slack.openzeppelin.org/) * [ZepellinOS](https://zeppelinos.org/) * Article ["The Parity Wallet Hack Explained"](https://blog.zeppelin.solutions/on-the-parity-wallet-multisig-hack-405a8c12e8f7) ### Links: Matt * [XLNT website](https://xlnt.co/) * Article ["Getting Up to Speed on Ethereum"](https://medium.com/@mattcondon/getting-up-to-speed-on-ethereum-63ed28821bbe) * Article ["Announcing the Steak Network"](https://medium.com/truebit/announcing-the-steak-network-c3d44290d53d) ### Links: Yoichi * Gist ["Formal Verification of Ethereum Contracts"](https://github.com/pirapira/ethereum-formal-verification-overview) * [Bamboo](https://github.com/pirapira/bamboo) * [A Lem formalization of EVM and some Isabelle/HOL proofs](https://github.com/pirapira/eth-isabelle) * Video ["Formal verification of EVM bytecodes"](https://www.youtube.com/watch?v=Mzh4fyoaBJ0) * Video ["Formal Verification of Smart Contracts"](https://www.youtube.com/watch?v=cCUGMAnCh7o) ### Music [Mid-Air!](https://soundcloud.com/mid_air)

 Announcement: Patreon Launch | File Type: audio/mpeg | Duration: 00:01:11

Exciting news! 1. Code Podcast will be back with a new episode next week. 2. We have launched a Patreon campaign to help us release episodes regularly. Check it out and contribute here: https://codepodcast.com/patreon

 6: Don't make me write UI! | File Type: audio/mpeg | Duration: 00:40:32

Why is it so hard to write and maintain UI code? How can we make it easier? On one hand, we've talked with people who design UI APIs we all use. On the other, we've interviewed those who try to reinvent UI development. Discussion: https://discuss.codepodcast.com/t/episode-6-dont-make-me-write-ui/44 Episode produced by: Andrey Salomatin https://twitter.com/flpvsk Michael Beschastnov michael@codepodcast.com Guests: Steven Tomlinson https://www.linkedin.com/in/bowler-hat/ Casey Muratori https://twitter.com/cmuratori Rik Arends https://twitter.com/rikarends Domenic Denicola https://twitter.com/domenic Yegor Jbanov https://twitter.com/yegorjbanov ## Links: Casey ImGui introduction video https://mollyrocket.com/861 "IMGUI Yay or Nay" http://gamedev.stackexchange.com/questions/24103/immediate-gui-yae-or-nay dear imgui https://github.com/ocornut/imgui React https://facebook.github.io/react/ ## Links: Rik Makepad https://makepad.github.io/makepad Cloud 9 https://c9.io/ "Rik Arends: Beyond HTML and CSS: Fusing Javascript and shaders | JSConf EU 2014" https://www.youtube.com/watch?v=X8xxz-YeWtk ## Links: Domenic "The Extensible Web" article by Domenic https://blog.domenic.me/the-extensible-web/ "How to Win Friends and Influence Standards Bodies" talk by Domenic https://www.slideshare.net/domenicdenicola/how-to-win-friends-and-influence-standards-bodies ## Links: Yegor https://flutter.io https://flutter.io/design-principles https://flutter.io/testing ## Music Mid-Air! @mid_air

 Bonus Episode: Edwin Brady on Dependent Types And Idris | File Type: audio/mpeg | Duration: 00:51:58

An unabridged version of the interview with Edwin Brady, the creator of Idris. Talking about the language itself, the concept of Dependent Types and the future of Type Systems. Code Podcast Forum: https://discuss.codepodcast.com/t/episode-5-type-systems/22 Episode produced by: Andrey Salomatin twitter.com/flpvsk Michael Beschastnov michael@codepodcast.com Guest: Edwin Brady twitter.com/edwinbrady ## Links Type-Driven Development with Idris https://tinyurl.com/typedd Idris Tutorial http://docs.idris-lang.org/en/latest/tutorial/index.html#tutorial-index LightYear – Parser Combinator for Idris https://github.com/ziman/lightyear Quantities – Type-safe physical computations and unit conversions in Idris https://github.com/timjb/quantities ## Music Mid-Air! @mid_air

 5: Type Systems | File Type: audio/mpeg | Duration: 00:50:00

Your favorite features of Type Systems in one episode! Interfaces, Generics, ADT, Type Classes and Dependent Types. We'll talk about what they are and how they shape the way we work. Code Podcast Forum: https://discuss.codepodcast.com/t/episode-5-type-systems/22 Episode produced by: Andrey Salomatin https://twitter.com/flpvsk Michael Beschastnov michael@codepodcast.com Guests (in order of appearance): Joseph Abrahamson https://twitter.com/sdbo Radoslav Kirov https://twitter.com/radokirov Erlend Hamberg https://twitter.com/ehamberg Edwin Brady https://twitter.com/edwinbrady Special thanks to our reviewers, this time: Adriano Melo https://twitter.com/AdrianoMelo Roman Liutikov https://twitter.com/roman01la If you'd like to help us make the podcast better *and* get episodes earlier, consider becoming a reviewer: https://gist.github.com/filipovskii/f12685bc74a425ba651c736fb5e3e5ae ## Links: Basics Benjamin C. Pierce "Types and Programming Languages" https://www.cis.upenn.edu/~bcpierce/tapl/ A draft of the book available for free: http://ropas.snu.ac.kr/~kwang/520/pierce_book.pdf Rob Nederpelt and Herman Geuvers "Type Theory and formal proof" http://www.win.tue.nl/~wsinrpn/book_type_theory.htm Robert Harper "Practical Foundations for Programming Languages" https://www.cs.cmu.edu/~rwh/pfpl.html Interview with Jesper Louis Andersen about Erlang, Haskell, OCaml, Go, Idris, the JVM, software and protocol design — PART I https://notamonadtutorial.com/interview-with-jesper-louis-andersen-about-erlang-haskell-ocaml-go-idris-the-jvm-software-and-b0de06440fbd#.rawqi9bvp Paper by Xavier Leroy "Manifest Types, Modules, and Separate Compilation" (1994) http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.3950 Paper by Conor McBride and Ross Paterson "FUNCTIONAL PEARL: Applicative programming with effects" http://strictlypositive.org/IdiomLite.pdf ## Links: Idris Edwin Brady "Type-Driven Development with Idris" http://tinyurl.com/typedd ## Links: TypeScript http://www.typescriptlang.org/ ## Links: Haskell Christopher Allen and Julie Moronuki "Haskell Programming from First Principles" http://haskellbook.com/ Learn you some Haskell http://learnyouahaskell.com/ ## Links: Scala Paul Chiusano and Rúnar Bjarnason "Functional Programming in Scala" https://www.manning.com/books/functional-programming-in-scala ##Links: OCaml Yaron Minsky, Anil Madhavapeddy, Jason Hickey "Real World Ocaml" https://realworldocaml.org A chapter from "Real World Ocaml" about Objects https://realworldocaml.org/v1/en/html/objects.html OCaml Documentation http://caml.inria.fr/pub/docs/manual-ocaml/ Effective ML (video) https://blogs.janestreet.com/effective-ml-video/ ## Links: Discussions What exactly makes the Haskell type system so revered (vs say, Java)? http://softwareengineering.stackexchange.com/questions/279316/what-exactly-makes-the-haskell-type-system-so-revered-vs-say-java What is a Functor? http://stackoverflow.com/questions/2030863/in-functional-programming-what-is-a-functor#2031421 ADTs vs Inheritance http://stackoverflow.com/questions/3271974/why-adts-are-good-and-inheritance-is-bad Existential vs Universal Typess http://stackoverflow.com/questions/14299638/existential-vs-universally-quantified-types-in-haskell#14299983 Subclassing vs Subtyping http://www.cs.princeton.edu/courses/archive/fall98/cs441/mainus/node12.html Why Haskell has no subtyping https://www.reddit.com/r/haskell/comments/423o0c/why_no_subtypingsubtype_polymorphism/ Haskell vs Java type systems http://softwareengineering.stackexchange.com/questions/279316/what-exactly-makes-the-haskell-type-system-so-revered-vs-say-java ## Music Mid-Air! @mid_air

 4: How to Design Software | File Type: audio/mpeg | Duration: 00:33:45

How to design software? What are the techniques we can use? How can we become better at it? We've interviewed 3 engineers with completely different backgrounds to find out. Host: Andrey Salomatin https://twitter.com/flpvsk Guests: Craig Andera https://twitter.com/craigandera Eric Elliott https://twitter.com/_ericelliott Mario Zechner https://twitter.com/badlogicgames Mentions by Craig: Cognitect http://cognitect.com Cognicast http://blog.cognitect.com/cognicast/ You Are Not So Smart Podcast https://youarenotsosmart.com/podcast/ Rich Hickey, creator of Clojure PL https://twitter.com/richhickey Mentions by Eric: Blog https://medium.com/@_ericelliott Online Course https://ericelliottjs.com/ Mentions by Mario: LibGDX https://libgdx.badlogicgames.com/ http://www.gamefromscratch.com/ Books and talks that shaped you as an engineer, Craig: A book by Martin Fowler "Patterns of Enterprise Application Architecture" http://www.goodreads.com/book/show/70156.Patterns_of_Enterprise_Application_Architecture Rich Hickey talks: https://changelog.com/rich-hickeys-greatest-hits/ Books and talks that shaped you as an engineer, Eric: A book by Kent Beck "Test Driven Development: By Example" http://www.goodreads.com/book/show/387190.Test_Driven_Development Collection of links "Required JavaScript Reading" https://github.com/ericelliott/essential-javascript-links/blob/master/README.md Books and talks that shaped you as an engineer, Mario: A book by Andre LaMothe "Tricks of the 3D Game Programming Gurus" http://www.goodreads.com/book/show/2042298.Tricks_of_the_3D_Game_Programming_Gurus "The dragon book" by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman, official name "Compilers: Principles, Techniques, and Tools" http://www.goodreads.com/book/show/703102.Compilers

 4: How to Design Software (mp3) | File Type: audio/mpeg | Duration: 00:33:45

How to design software? What are the techniques we can use? How can we become better at it? We've interviewed 3 engineers with completely different backgrounds to find out. Host: Andrey Salomatin https://twitter.com/flpvsk Guests: Craig Andera https://twitter.com/craigandera Eric Elliott https://twitter.com/_ericelliott Mario Zechner https://twitter.com/badlogicgames Mentions by Craig: Cognitect http://cognitect.com Cognicast http://blog.cognitect.com/cognicast/ You Are Not So Smart Podcast https://youarenotsosmart.com/podcast/ Rich Hickey, creator of Clojure PL https://twitter.com/richhickey Mentions by Eric: Blog https://medium.com/@_ericelliott Online Course https://ericelliottjs.com/ Mentions by Mario: LibGDX https://libgdx.badlogicgames.com/ http://www.gamefromscratch.com/ Books and talks that shaped you as an engineer, Craig: A book by Martin Fowler "Patterns of Enterprise Application Architecture" http://www.goodreads.com/book/show/70156.Patterns_of_Enterprise_Application_Architecture Rich Hickey talks: https://changelog.com/rich-hickeys-greatest-hits/ Books and talks that shaped you as an engineer, Eric: A book by Kent Beck "Test Driven Development: By Example" http://www.goodreads.com/book/show/387190.Test_Driven_Development Collection of links "Required JavaScript Reading" https://github.com/ericelliott/essential-javascript-links/blob/master/README.md Books and talks that shaped you as an engineer, Mario: A book by Andre LaMothe "Tricks of the 3D Game Programming Gurus" http://www.goodreads.com/book/show/2042298.Tricks_of_the_3D_Game_Programming_Gurus "The dragon book" by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman, official name "Compilers: Principles, Techniques, and Tools" http://www.goodreads.com/book/show/703102.Compilers

 3: Concurrency – Event Loop & Coroutines | File Type: audio/mpeg | Duration: 00:37:20

Let's escape the world where the Big Brother constantly interrupts us. Free ourselves from the oppression of consumerism. Let's leave behind preemptive multitasking and enter the world of collaboration! Host: Andrey Salomatin https://twitter.com/flpvsk Dark side: Michael Beschastnov Please send us stories about your awkward tech talks! https://twitter.com/podcastcode andrey@codepodcast.com michael@codepodcast.com ### Guests ### - **A. Jesse Jiryu Davis** * https://emptysqua.re/blog/ * https://github.com/ajdavis - **Saúl Ibarra Corretgé** * https://about.me/saghul * https://github.com/saghul A much smarter way to spend your money The Architecture of Open Source Applications aosabook.org/ ### Sources ### * **Event loop** * What the heck is the event loop anyway? by Philip Roberts https://www.youtube.com/watch?v=8aGhZQkoFbQ * An Introduction to libuv by Nikhil Marathe https://nikhilm.github.io/uvbook/ * Taming the asynchronous beast with ES7 by Nolan Lawson https://pouchdb.com/2015/03/05/taming-the-async-beast-with-es7.html * How the heck does async/await work in Python 3.5? by Brett Cannon http://www.snarky.ca/how-the-heck-does-async-await-work-in-python-3-5 * **Coroutines** * Coroutines Live-Coding Demonstration, at SCALE14x by A. Jesse Jiryu Davis https://emptysqua.re/blog/scale14x-coroutines-talk/ * A Web Crawler With asyncio Coroutines from The Architecture Of Open Source Applications by A. Jesse Jiryu Davis and Guido van Rossum http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html * Unyielding by Glyph Lefkowitz https://glyph.twistedmatrix.com/2014/02/unyielding.html * A Curious Course on Coroutines and Concurrency by David Beazley http://www.dabeaz.com/coroutines/ * Generator Tricks for Systems Programmers by David Beazley http://www.dabeaz.com/generators/ ### Projects to check out ### * **Python** * Pyuv https://github.com/saghul/pyuv * Pymongo https://api.mongodb.org/python/current/index.html * Python Async IO Resources http://asyncio.org/ * curio - concurrent I/O https://github.com/dabeaz/curio * Tornado Web Server https://github.com/tornadoweb/tornado * **Node.js** * libuv http://docs.libuv.org/en/v1.x/ ### Music ### Mid-Air! https://soundcloud.com/mid_air

 2: Concurrency – CSP & Actors | File Type: audio/mpeg | Duration: 00:20:56

Multithreading is not the only approach we use to deal with concurrency. Single-purpose processes is our next frontier. Processes, that don't have shared state. To coordinate, they pass messages to each other. We can build complex concurrent systems using simple principles of CSP or Actors model. We break down programs into independent processes, each performing some specific job, talking to each other. How they talk to each is the point of contention here. That's where the differences between CSP and Actors arise. Host: Andrey Salomatin http://twitter.com/flpvsk Guests: - Aaron Schlesinger http://arschles.com/ - Jörgen Brandt http://www.joergen-brandt.de/ Sources: - CSP - “Communicating Sequential Processes” orignial paper by C. A. R. Hoare http://www.usingcsp.com/cspbook.pdf - Go - “Go in 5 minutes” screencast by Aaron https://www.youtube.com/channel/UC2GHqYE3fVJMncbrRd8AqcA - “Effective Go” https://golang.org/doc/effective_go.html - “Go Concurrency Patterns” talk by Rob Pike https://talks.golang.org/2012/concurrency.slide#1 - net.Context documentation: https://godoc.org/golang.org/x/net/context - WebSockets documentation: https://godoc.org/golang.org/x/net/websocket - Actors - “A Universal Modular Actor Formalism for Artificial Intelligence” original paper by Carl Hewitt; Peter Bishop; Richard Steiger http://worrydream.com/refs/Hewitt-ActorModel.pdf - Erlang - “Learn You Some Erlang for great good!” by Fred Hébert http://learnyousomeerlang.com/ - “Programming Erlang” by Joe Armstrong http://amzn.to/1UnfJpB Projects to check out: - Go - Docker https://github.com/docker/docker - “Awesome Go” – a curated list of awesome Go frameworks, libraries and software https://github.com/avelino/awesome-go - Parallelism - Cuneiform http://www.cuneiform-lang.org/ Music: Mid-Air! @mid_air ---------- PS: Links to Amazon are referral. You can use them to support the show.

 1: Concurrency – Multithreading | File Type: audio/mpeg | Duration: 00:23:44

Laws of Newtonian mechanics don't make sense as we get closer to the speed of light. Laws of serial execution are useless once we enter the world of concurrency. In this episode we'll define concurrency and talk about why is it hard to write concurrent programs. With the help of Daniel and Steve we'll explore tools that are there in Clojure and Rust to help engineers deal with multiple threads of execution. Host: Andrey Salomatin https://twitter.com/flpvsk ## Guests ## * Daniel Higginbotham http://www.flyingmachinestudios.com/ https://twitter.com/nonrecursive * Steve Klabnik http://www.steveklabnik.com/ https://twitter.com/steveklabnik IRC: steveklabnik ## Recommended Reading ## * Clojure for the Brave and True, Daniel Higginbotham Online: http://www.braveclojure.com/concurrency/ Chapter about concurrency: http://www.braveclojure.com/concurrency/ Amazon: http://amzn.to/1UOB49u * Java Concurrency in Practice, Brian Goetz http://amzn.to/1PVlDbm
 * Rust Documentation: https://www.rust-lang.org/documentation.html ## Projects to Check Out ## * intermezzOS intermezzOS is a teaching operating system, specifically focused on introducing systems programming concepts to experienced developers from other areas of programming. https://intermezzos.github.io Issues: https://github.com/intermezzOS/book/issues https://github.com/intermezzOS/kernel/issues ## Music ## Mid-Air! https://soundcloud.com/mid_air --- PS: Links to Amazon are referral. You can use them to support the show.

 0: main() | File Type: audio/mpeg | Duration: 00:01:07

Code is about concepts behind programming languages, frameworks and libraries. Same beautiful patterns that are present in completely different environments. Occasionally we'll invite clever programmers to talk about their favourite techniques. Code is hosted by Andrey Salomatin. The show launches on the first week of February. Music by @mid_air

Comments

Login or signup comment.