

Software Sessions
Jeremy Jung
Practical conversations about software development.
Episodes
Mentioned books

Oct 24, 2019 • 1h 9min
How the Ruby Runtime Works with Aaron Patterson
Aaron is on both the ruby and rails core teams. He's best known for making puns, teaching others, and his contributions to the internals of ruby. Lately he's been focusing on a compacting garbage collector for ruby.This episode originally aired on Software Engineering Radio.Timestamps:00:40 - What Aaron likes about Ruby04:43 - Interpreted vs Compiled07:00 - Why the ruby interpreter is written in C11:00 - Other good languages to write virtual machines?15:20 - Moving from an Interpreter (MRI) to Virtual Machine (YARV)18:50 - Why there's no manual compilation step in Ruby23:28 - Why compile to bytecode instead of directly to machine code?26:34 - Stack based vs Register based VM28:00 - Differences between Core and Standard Library29:46 - Do you program more in ruby or C as a member of the ruby/rails core teams?30:30 - The Global Interpreter Lock (GIL / GVL)37:40 - Concurrency options in Ruby45:55 - Just in Time Compilation49:29 - Evolution of Garbage Collection in Ruby53:40 - Compacting Garbage Collection61:40 - Building a Compacting Garbage Collector without breaking C Extensions65:20 - Ruby's future, resources for learningLinks:Blog@tenderloveRuby Under a Microscope

Oct 10, 2019 • 58min
Pod Hunt and Side Projects with Mubashar Iqbal
Mubs is an amazingly prolific creator. He's built 85 side projects which are all listed on his website and was Product Hunt's Maker of the Year in 2016. His output is inspiring and he offers great advice on how to approach building side projects of your own.Mubashar IqbalPersonal Site@mubashariqbalProjectsProjectsPod HuntHacker News DayWill Robots Take My Job?Pod Hunt StackLaravelLaravel ForgeTailwind CSSVueJSMySQLTimestamps01:14 - What's Pod Hunt?03:42 - How are people using Pod Hunt?08:42 - Why Pod Hunt isn't a native app yet11:25 - How long to build the prototype?15:50 - Pod Hunt's Stack16:55 - Why Pod Hunt isn't a Single Page Application22:18 - No CDN yet23:24 - MySQL as the datastore24:24 - Laravel Forge for hosting28:13 - What's Hacker News Day?34:06 - Choose a side project that solves your own problem40:43 - The difference between projects for fun vs money50:20 - Will Robots Take My Job?

Sep 27, 2019 • 1h 2min
How to Teach Programming with Felienne
Felienne is an associate professor at Leiden University who brings a unique perspective on programming education backed by scientific research. She also runs the Programming Education Research Lab (PERL) in order to study the best ways to teach programming.Keynote at Strange LoopHow to Teach Programming (and other things?)Related Research PapersHow is Programming Taught at Code ClubsThe Effect of Reading Code Aloud on Comprehension: An Empirical Study with School StudentsCode PhonologyWhy Minimal Guidance During Instruction Does Not WorkCognitive Architecture and Instructional Design: 20 Years LaterPapers by Brianna MorrisonFelienneBlogTwitterPublicationsSoftware Engineering Radio PodcastBonusSt. Louis City MuseumTimestamps00:56 - Spreadsheets as programming04:57 - When do you build software vs use what's already there?10:14 - Direct instruction vs independent learning20:28 - How should you start teaching kids?24:39 - Is teaching kids different than older students?30:15 - Using rote memorization and saying code out loud35:15 - What is the role of Computer Science education?40:42 - Teaching IDEs, Git, Debugging, and Code Review45:43 - Problems with teaching Open Source49:12 - Incorporating live coding into university lectures56:18 - Podcasting and conference speaking

Sep 16, 2019 • 1h 12min
How HTTP Works with Julia Evans
Julia Evans is best known for her zines and blog posts that break down technical topics in a friendly way. She has written educational material on everything from Linux system calls to working with managers.She joins us to talk about what she learned while writing her latest zine: HTTP: Learn your browser's language.Timestamps:0:50 - Why write a zine about HTTP?1:21 - What's a header that could break your site?2:50 - What does HTTP look like?5:58 - What headers are most important?8:39 - Response Codes12:26 - Authentication14:57 - Cookies18:37 - Using browser development tools19:46 - Caching and CDNs25:46 - Referrer Header and Hotlinking images27:34 - Resuming file downloads 30:00 - URLs32:11 - Why webpages show different languages34:34 - Same Origin Policy / CORS43:42 - Compression / GZIP45:58 - Intermediate Programming Education49:35 - Picking topics for blogs and zines57:10 - Picking an audience to write to59:54 - Types of educational material (zines, books)64:03 - Why Julia likes the zine format65:53 - Working on education full timeLinks:HTTP: Learn your browser's languageJulia's blogJulia's twitterWizard ZinesMozilla Developer Networknetcat

Sep 13, 2019 • 1h 2min
Rust in Production with Armin Ronacher
Topics:Deciding when to use RustConcurrency in RustWhen to create a separate serviceIntroducing Rust at SentryChallenges of writing Python modules in RustCreating Symbolicator, a Rust web service that processes debug filesUsing Actix to create SymbolicatorWhy Rust doesn't need a Django or Rails equivalentConcerns about the stability of the Rust ecosystem and the lack of shared solutionsWhat's missing in the Rust ecosystemWhy developers need better debugging toolsIf you're interested in helping Armin build an open source debugging community, reach out to him via e-mail or twitter.This episode is part of the Rustacean Station feed. Check it out if you're interested in Rust podcasts.Links:Armin's TwitterArmin's BlogSentryActixRocketBuilding Sentry: SymbolicatorSymbolicatorSemaphoreMilksnakeWasmerExistential TypesTokio TowerRFC to add Backtraces to standard errorFutureErlangShow timestamps:0:37 - What got you interested in Rust?2:19 - Abstraction with good performance in Rust vs Python4:11 - Rust doesn't need asynchronous code5:31 - Building thread safe applications6:26 - What excited you about using Rust?8:20 - Sentry11:02 - Introducing Rust to Sentry13:10 - Anything easier to write in Rust vs Python?16:14 - Writing extensions vs writing services19:22 - Flow of sending a minidump to Symbolicator21:56 - Symbolicator makes sense as a service23:26 - Building a better debugging world24:33 - More things symbolicator does25:27 - What's Milksnake28:04 - Other ways to embed Rust in Python30:08 - Why use Actix for Symbolicator?34:44 - Is it too early to write web applications?37:30 - What would you do differently in hindsight?42:20 - Don't want a Django or Rails43:58 - When to write a web application?47:34 - What do you wish existed in Rust?49:57 - Game backends51:44 - Anything else?53:26 - Why companies aren't using Rust for web development54:23 - Why async/await is not the only blocker for web development56:43 - Resources for web development in Rust58:24 - Wrap Up


