Podcasts about Python

Share on
Share on Facebook
Share on Twitter
Share on Reddit
Share on LinkedIn
Copy link to clipboard
  • 2,420PODCASTS
  • 8,582EPISODES
  • 45mAVG DURATION
  • 3DAILY NEW EPISODES
  • May 27, 2022LATEST

POPULARITY

20122013201420152016201720182019202020212022


Best podcasts about Python

Show all podcasts related to python

Latest podcast episodes about Python

The Real Python Podcast
Questions for New Dependencies & Comparing Python Game Libraries

The Real Python Podcast

Play Episode Listen Later May 27, 2022 51:37


What are the differences between the various Python game frameworks? Would it help to see a couple of game examples across several libraries to understand the distinctions? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder's Weekly articles and projects.

The Stack Overflow Podcast
Games are good, mods are immortal

The Stack Overflow Podcast

Play Episode Listen Later May 27, 2022 22:16


Following the success of the Mac Mini, Windows is getting into the tiny computer business. Oh, and it's running on ARM chips. Oh, and Visual Studio and VS Code will now offer native ARM support.Video games got a lot of us into programming thanks to their openness to mods. It's what made The Elder Scrolls: Morrowind such a hit 20 years ago. Minecraft may live forever thanks to its modding community and parent-friendly tools. Just don't be surprised when you have to ban local kids for virtual arson and murder. The old security exploit hits are still out there: cross-site scripting, SQL injection, and cross-site request forgery. Could be because 86% of developers do not view application security as a top priority.Two great questions today: Is it illegal to ride a drunk horse? and a Lifeboat-worthy response from Markus Meskanen on Checking if a number is not in range in Python

Adafruit Industries
Python on Hardware weekly video 182

Adafruit Industries

Play Episode Listen Later May 26, 2022 5:13


The wonderful world of Python on hardware! Episode 182 (May 25, 2022). This is our weekly Python video highlights! Ladyada and PT review the Python on hardware news of the week. The news comes from the Python community, Discord, Adafruit communities and more. It's part of the comprehensive newsletter we do each week. The video playlist of episodes is here: http://adafru.it/pohepisodes Sign up for the Python on Microcontrollers weekly email newsletter here: https://www.adafruitdaily.com/ Read the newsletters past and present at https://www.adafruitdaily.com/category/circuitpython/ Learn all about CircuitPython here: https://www.circuitpython.org/ https://adafruit.com/circuitpython/ Join us on Discord! https://adafru.it/discord/ Visit the Adafruit shop online, we're open for business - http://www.adafruit.com Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/

Contributor
Rasgo with Patrick Dougherty

Contributor

Play Episode Listen Later May 25, 2022 28:49


Eric Anderson (@ericmander) and Patrick Dougherty (@cpdough) talk about Rasgo, the data transformation platform for MLOps that makes generating SQL easy. The team at Rasgo recently open-sourced a package called RasgoQL, that allows users to execute SQL queries against a data warehouse using Python syntax. Tune in to find out how Rasgo aims to bridge an important gap in the Modern Data Stack. In this episode we discuss: The advantages of offering both a low-code/no-code UI and a Python interface "How can a data scientist, without needing full-time resources from data engineering, be somewhat self-sufficient in data prep and able to deliver those insights without a massive human capital investment needed?" Where Rasgo fits into the world of feature stores Why one Rasgo user took a trip to a wind farm in Texas Eric's predictions for the future of data prep and transformation Links: Rasgo RasgoQL DuckDB Delta Lake People mentioned: Jared Parker (@jaredtparker_)

Python Bytes
#285 Where we talk about UIs and Python

Python Bytes

Play Episode Listen Later May 25, 2022 50:54


Watch the live stream: Watch on YouTube About the show Sponsored: RedHat: Compiler Podcast Special guests Mark Little Ben Cosby Michael #1: libgravatar A library that provides a Python 3 interface to the Gravatar APIs. If you have users and want to show some sort of an image, Gravatar is OK PyPI uses this for example (gravatar, not necessarily this lib) Usage: >>> g = Gravatar('myemailaddress@example.com') >>> g.get_image() 'https://www.gravatar.com/avatar/0bc83cb571cd1c50ba6f3e8a78ef1346' Brian #2: JSON to Pydantic Converter Suggested by Chun Ly, “this awesome JSON to @samuel_colvin's pydantic is so useful. It literally saved me days of work with a complex nested JSON schema.“ “JSON to Pydantic is a tool that lets you convert JSON objects into Pydantic models.” It's a live site, where you can plop JSON on one the left, and Pydantic models show up on the right. There's a couple options: Specify every field as Optional Alias camelCase fields as snake_case It's also an open source project, built with FastAPI, Create React App, and a project called datamodel-code-generator. Mark #3: tailwindcss, tailwindui Not python, but helpful for web UI and open source business model example tailwindcss generates CSS Used on the Lexchart app Benefits of tailwindcss and tailwindui: Just-in-Time makes it fast. Output includes only classes used for the project. Stand on shoulders of design thinking from Steve Schoger and Adam Wathan. See also refactoingui.com. Use in current projects without CSS conflicts. Custom namespace with prefix in tailwind.config.js. Bonus: custom namespace prefixes work with the tailwind plug-ins for VS Code and PyCharm. Works well with template engines like, Chameleon. We use tailwind for our app UI. Toolbar template example. Another example of docs and tutorials being a strategic business asset. Resources tailwindcss.com tailwindlabs on YouTube, great tutorials from Simon at Tailwind Beginner friendly tutorials: Thirus, example of tailwind install methods Michael #4: PEP 690 – Lazy Imports From Itamar Discussion at https://discuss.python.org/t/pep-690-lazy-imports/15474 PEP proposes a feature to transparently defer the execution of imported modules until the moment when an imported object is used. PEP 8 says imports go a the top, that means you pay the full price of importing code This means that importing the main module of a program typically results in an immediate cascade of imports of most or all of the modules that may ever be needed by the program. Lazy imports also mostly eliminate the risk of import cycles or crashes. The implementation in this PEP has already demonstrated startup time improvements up to 70% and memory-use reductions up to 40% on real-world Python CLIs. Brian #5: Two small items pytest-rich Suggested by Brian Skinn Created by Bruno Oliveira as a proof of concept pytest + rich, what's not to love? Now we just need a maintainer or two or three…. Embedding images in GitHub README Suggested by Henrik Finsberg Video by Anthony Sottile This is WITHOUT putting the image in the repo. Upload or drop an image to an issue comment. Don't save the comment, just wait for GitHub to upload it to their CDN. GH will add a markdown link in the comment text box with a link to the now uploaded image. Now you can use that image in a README file. You can do the same while editing the README in the online editor. Ben #6: pyotp A library for generating and verifying one-time passwords (OTP). Helpful for implementing multi-factor authentication (MFA) in web applications. Supports HMAC-based one-time passwords (HOTP) and time-based one-time passwords (TOTP). While HOTP delivered via SMS text messages is a common approach to implementing MFA, SMS is not really secure. TOTP using an authenticator app on the user's device such as Google Authenticator or Microsoft Authenticator is more secure, fairly easy to implement, and free (no SMS messaging fees and multiple free authenticator apps available for users). TOTP works best by making a QR code available to simplify the setup for the user in their authenticator app. Lots of easy to implement QR code generators to choose from (qrcode is a popular one if you use javascript on the front end). TOTP quick reference: import pyotp def generate_shared_secret(): # securely store this shared secret with user account data return pyotp.random_base32() def generate_provisioning_uri(secret, email): # generate uri for a QR code from the user's shared secret and email address return pyotp.totp.TOTP(secret).provisioning_uri(name=email, issuer_name='YourApp') def verify_otp(secret, otp): # verify user's one-time password entry with their shared secret totp = pyotp.TOTP(secret) return totp.verify(otp) Extras Brian: PyConUS 2022 videos now up A few more Python related extensions for VSCode black, pylint, isort, and Jupyter PowerToys Work has begun on a pytest course Saying this in public to inspire me to finish it. No ETA yet Sad Python Girls Club podcast Michael: PyTorch M1 Mission Encodable PWAs and pyscript Michael's now released pyscript PWA YouTube video cal.com (open source calendly) Supabase (open source Firebase) Joke: Beginner problems

Talk Python To Me - Python conversations for passionate developers
#367: Say Hello to PyScript (WebAssembly Python)

Talk Python To Me - Python conversations for passionate developers

Play Episode Listen Later May 25, 2022 73:41


Despite Python being overwhelmingly popular and positive, there are major areas of computing where Python is not present. Most notably on mobile and on the frontend side of the web. PyScript, a new project launched by Fabio Pliger from Anaconda, just might change that. It was made public and announced at PyCon just two weeks ago by Peter Wang and now has over 10,000 GitHub stars. But what is hype vs. reality vs. projected hopes and dreams? We're going to find out on this episode. Fabio is here to tell us all about his new project. Links from the show Fabio on Twitter: @b_smoke PyScript: pyscript.net Birth and Death of Javascript: destroyallsoftware.com Power On: The Story of Xbox: xbox.com PyScript source: github.com JupyterLite: jupyterlite.readthedocs.io Compiling CPython for WebAssembly: python.org Space WebGL Demo: pyscript.net/examples Antigravity Demo: pyscript.net/examples D3 Demo: pyscript.net/examples Most examples: pyscript.net/examples Michael's pyscript PWA YouTube video: youtube.com Watch this episode on YouTube: youtube.com --- Stay in touch with us --- Subscribe to us on YouTube: youtube.com Follow Talk Python on Twitter: @talkpython Follow Michael on Twitter: @mkennedy Sponsors Microsoft Talk Python Training AssemblyAI

This Week in Health Tech
How To Implement Test Automation in Health Care || Part 1: Website Testing || Encore Presentation

This Week in Health Tech

Play Episode Listen Later May 24, 2022 42:48


For the month of May, Vik and Jimmy are focusing on Healthcare Web, Mobile, EHR Testing and Test Automation.  In this part 1 episode, they focus on healthcare web properties testing and test automation strategies and implementation.Vik starts with the basics and defining testing and test automation and testing reality in healthcare. Testing is underrated and not something organizations think about but it should be a top priority, especially in these times when more and more online applications are used by patients and providers.Typically regression testing is missing because there are never enough test / qa resources in an organization. So there is limited testing in reality. Performance testing is usually not done and could be a potential user satisfaction issue if the website cannot handle web traffic, for example, a COVID scheduling or registration web application.Jimmy asks who is involved in website management at a healthcare organization. Vik explains that it is a combination of marketing and IT departments. Sometimes the roles are clear but usually, IT provides development resources, either in-house or outsourced. The marketing team in many cases is expected to do testing and user acceptance testing.Vik then explains the different categories of testing: Continuous, Automated, and Live Testing. Continuous testing is where testing is utilized at every stage of development. When test script development is complete,  then those scripts can be used for automated testing against hundreds of combinations of devices and browsers. Live testing is used by QA staff to test websites on real devices which are running in the cloud.Vik and Jimmy then use a real-life example of a COVID registration web application to discuss the different types of web application testing. Vik explains how the selenium test framework is utilized for test automation. Test scripts are written in any of the major programming languages: Java, Python, C#, Ruby, Kotlin, etc. He also explains how this automation works with a real device cloud to test the scripts against hundreds of combinations of devices and browsers. Jimmy and Vik then talk about types of testing: Functional, Compatibility, and Performance testing.They go into briefly about upcoming mobile and EHR testing in the next episodes of This Week in Health Tech. Website: http://www.thisweekinhealthtech.comTwitter: @TWIHT1Tido Inc.: https://www.tidoinc.com/Music Provided by Soundstripe.comSupport the show (http://www.thisweekinhealthtech.com/)Support the showSupport the show

Programming Throwdown
134: Ephemeral Environments with Benjie De Groot

Programming Throwdown

Play Episode Listen Later May 24, 2022 67:54


134: Ephemeral Environments with Benjie De GrootDownloadHow do you test changes to your web backend or database?  Many people have a "production" and one "development" database, but the development database can easily become broken by one engineer and thus unusable for the rest of the team.  Also, how would two engineers make changes in parallel to the development environment?  What if you could spin up hundreds or thousands of development databases as you need them? Today we have Benjie De Groot, Co-Founder and CEO of Shipyard to explain ephemeral environments and how virtual machines and containers have made massive improvements in devops! 00:00:15 Introduction00:00:24 Introducing Benjie De Groot00:01:26 Benjie's Programming Background00:06:34 How Shipyard started00:09:17 Working in Startups vs. Tech Giants00:19:28 The difference between Virtual Machines and Containers00:26:17 Local Development Environment00:40:27 What is a DevOps engineer and what does it entail?00:45:42 Zencastr00:50:12 Shipyard as a company00:55:29 How Shipyard gets clients01:06:48 Farewells     Resources mentioned in this episode: Benjie De Groot, Co-Founder & CEO at Shipyard: LinkedIn: https://www.linkedin.com/in/bueller/ Podcast: https://www.heavybit.com/library/podcasts/the-kubelist-podcast/ Shipyard: Website: https://shipyard.build/ Careers: https://shipyard.build/careers/ LinkedIn: https://www.linkedin.com/company/shipyardbuild/ Twitter: https://twitter.com/shipyardbuild Community Website: https://ephemeralenvironments.io/ GitHub: https://github.com/shipyard Heavybit: Website: https://www.heavybit.com/ LinkedIn: https://www.linkedin.com/company/heavybit/ Twitter: https://twitter.com/heavybit                  If you've enjoyed this episode, you can listen to more on Programming Throwdown's website: https://www.programmingthrowdown.com/ Reach out to us via email: programmingthrowdown@gmail.com You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon★ Support this podcast on Patreon ★

X-Band: The Phantom Podcast
#219 - Regal Publishers & the new "Terror of the Python" TPB

X-Band: The Phantom Podcast

Play Episode Listen Later May 23, 2022 85:56


Jermayn Parker is joined by Ankit Mitra as they talk to Pratheesh from Regal Publishers, the Indian publisher bringing back the Phantom with great success. We end the podcast talking and exploring the ground breaking "Terror of the Python" TPB featuring 250+ pages of the collected stories of the battle between Chatu and the Phantom and his family.We learn that Regal Publishers actually first published the Phantom back in the 1980's with reprints of the Avon novels, then comics in the 1990's. We touch upon the family generation of Regal which sees the company passing the mantle from father to sons.If you are an Indian comic reader, this is not a podcast to miss. We would love your feedback on the topics we discussed in this podcast. You can email us at chroniclechamber@gmail.com or chat with us via our social media profiles with your feedback at Facebook, Twitter and or Instagram. Make sure you stay with us and do not forget to subscribe and leave a review on our podcast and or our YouTube Channel. Support the show

Sundial | WLRN
Merrick's contested history, a potential HIV cure and Wildlife Thursday: Python hunting and baking

Sundial | WLRN

Play Episode Listen Later May 20, 2022 49:52


The segregationist past behind the founder of 'The City Beautiful.' A New York cancer survivor becomes the third person to achieve remission from HIV. And it's Wildlife Thursday, we're talking about removing pythons … and using their eggs for a tasty cookie recipe.

DataTalks.Club
From Academia to Data Analytics and Engineering - Gloria Quiceno

DataTalks.Club

Play Episode Listen Later May 20, 2022 48:41


We talked about: Gloria's background Working with MATLAB, R, C, Python, and SQL Working at ICE Job hunting after the bootcamp Data engineering vs Data science Using Docker Keeping track of job applications, employers and questions Challenges during the job search and transition Concerns over data privacy Challenges with salary negotiation The importance of career coaching and support Skills learned at Spiced Retrospective on Gloria's transition to data and advice Top skills that helped Gloria get the job Thoughts on cloud platforms Thoughts on bootcamps and courses Spiced graduation project Standing out in a sea of applicants The cohorts at Spiced Conclusion Links: LinkedIn: https://www.linkedin.com/in/gloria-quiceno/ Github: https://github.com/gdq12 MLOps Zoomcamp: https://github.com/DataTalksClub/mlops-zoomcamp Join DataTalks.Club: https://datatalks.club/slack.html Our events: https://datatalks.club/events.html

The Real Python Podcast
Advantages of Protobuf for Serialization in Python

The Real Python Podcast

Play Episode Listen Later May 20, 2022 58:16


Would you like a way to send structured serialized data between different platforms and languages? What if the data was self-documenting, could automatically generate Python code, and would validate itself? This week on the show, Liran Haimovitch talks about protocol buffers and communicating with microservices through Remote Procedure Calls (RPC).

Talk Python To Me - Python conversations for passionate developers
#366: Optimizing PostgreSQL DB Queries with pgMustard

Talk Python To Me - Python conversations for passionate developers

Play Episode Listen Later May 20, 2022 74:06


Does your app have a database? Does that database play an important role in how the app operations and users perceive its quality? Most of you probably said yes to the first, and definitely to the second. But what if your DB isn't doing as well as it should? How would you know? And once you know, what do you do about it? On this episode, we're joined by Michael Christofides, co-creator of pgMustard, to discuss and explore the EXPLAIN command for Postgres and other databases as well as all the recommendations you might dig into as a result of understanding exactly what's happening with you queries. Links from the show Michael Christofides: @michristofides Datagrip: jetbrains.com pgMustard: pgmustard.com pgMustard example 1: app.pgmustard.com pgMustard example 2: app.pgmustard.com pgMustard example 3: app.pgmustard.com Arctype: arctype.com Postico: eggerapps.at/postico Laetitia Avrot Secrets of 'psql'— Video: youtube.com Beekeeper Studio: beekeeperstudio.io DBeaver: dbeaver.io SQLite Browser: sqlitebrowser.org Michael's new Up and Running with Git course: talkpython.fm/git Watch this episode on YouTube: youtube.com Episode transcripts: talkpython.fm --- Stay in touch with us --- Subscribe to us on YouTube: youtube.com Follow Talk Python on Twitter: @talkpython Follow Michael on Twitter: @mkennedy Sponsors Sentry Error Monitoring, Code TALKPYTHON Talk Python Training AssemblyAI

Adafruit Industries
Python on Hardware weekly video 181

Adafruit Industries

Play Episode Listen Later May 20, 2022 5:21


The wonderful world of Python on hardware! Episode 181 (May 19, 2022). This is our weekly Python video highlights! Ladyada and PT review the Python on hardware news of the week. The news comes from the Python community, Discord, Adafruit communities and more. It's part of the comprehensive newsletter we do each week. The video playlist of episodes is here: http://adafru.it/pohepisodes Sign up for the Python on Microcontrollers weekly email newsletter here: https://www.adafruitdaily.com/ Read the newsletters past and present at https://www.adafruitdaily.com/category/circuitpython/ Learn all about CircuitPython here: https://www.circuitpython.org/ https://adafruit.com/circuitpython/ Join us on Discord! https://adafru.it/discord/ Visit the Adafruit shop online, we're open for business - http://www.adafruit.com Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/

Streaming Audio: a Confluent podcast about Apache Kafka
Practical Data Pipeline: Build a Plant Monitoring System with ksqlDB

Streaming Audio: a Confluent podcast about Apache Kafka

Play Episode Listen Later May 19, 2022 33:56


Apache Kafka® isn't just for day jobs according to Danica Fine (Senior Developer Advocate, Confluent). It can be used to make life easier at home, too!Building out a practical Apache Kafka® data pipeline is not always complicated—it can be simple and fun. For Danica, the idea of building a Kafka-based data pipeline sprouted with the need to monitor the water level of her plants at home. In this episode, she explains the architecture of her hardware-oriented project and discusses how she integrates, processes, and enriches data using ksqlDB and Kafka Connect, a Raspberry Pi running Confluent's Python client, and a Telegram bot. Apart from the script on the Raspberry Pi, the entire project was coded within Confluent Cloud.Danica's model Kafka pipeline begins with moisture sensors in her plants streaming data that is requested by an endless for-loop in a Python script on her Raspberry Pi. The Pi in turn connects to Kafka on Confluent Cloud, where the plant data is sent serialized as Avro. She carefully modeled her data, sending an ID along with a timestamp, a temperature reading, and a moisture reading. On Confluent Cloud, Danica enriches the streaming plant data, which enters as a ksqlDB stream, with metadata such as moisture threshold levels, which is stored in a ksqlDB table.She windows the streaming data into 12-hour segments in order to avoid constant alerts when a threshold has been crossed. Alerts are sent at the end of the 12-hour period if a threshold has been traversed for a consistent time period within it (one hour, for example). These are sent to the Telegram API using Confluent Cloud's HTTP Sink Connector, which pings her phone when a plant's moisture level is too low.Potential future project improvement plans include visualizations, adding another Telegram bot to register metadata for new plants, adding machine learning to anticipate watering needs, and potentially closing the loop by pushing data backto the Raspberry Pi, which could power a visual indicator on the plants themselves. EPISODE LINKSGitHub: raspberrypi-houseplantsData Pipelines 101 courseTips for Streaming Data Pipelines ft. Danica FineWatch the video version of this podcastDanica Fine's TwitterKris Jenkins' TwitterStreaming Audio Playlist Join the Confluent CommunityLearn more with Kafka tutorials, resources, and guides at Confluent DeveloperLive demo: Intro to Event-Driven Microservices with ConfluentUse PODCAST100 to get an additional $100 of free Confluent Cloud usage (details)   

Adventures in DevOps
Progressions Through Programming Languages - DevOps 114

Adventures in DevOps

Play Episode Listen Later May 18, 2022 51:21


Do I need to learn how to write code? What are the types of program languages required in DevOps? What are the pros and cons of each? Will, Jonathan, and Jillian discuss the progressions through programming languages and their insights and opinions with each. Learn about Bash, Go, Perl, Python, Python 2, Python 3, JavaScript, Node.js, Rust, Ruby, and Java. At the end, they provide their final concluding thoughts and share their top picks. Sponsors Top End Devs (https://topenddevs.com/) Raygun | Click here to get started on your free 14-day trial (https://raygun.com/?utm_medium=podcast&utm_source=adventuresdevops&utm_campaign=devchat&utm_content=homepage) Coaching | Top End Devs (https://topenddevs.com/coaching) Links How to program with Bash: Syntax and tools (https://opensource.com/article/19/10/programming-bash-syntax-tools) The Go Programming Language (https://go.dev/) The Perl Programming Language - www.perl.org (https://www.perl.org/) Welcome to Python.org (https://www.python.org/) JavaScript.com (https://www.javascript.com/) Node.js (https://nodejs.org/en/) Rust (https://www.rust-lang.org/) Ruby (https://www.ruby-lang.org/en/) Java | Oracle (https://www.java.com/en/) Picks Jillian- The Seven Basic Plots: Why We Tell Stories (https://amzn.to/3lrUtCt) Jonathan- Obviously Awesome (https://amzn.to/3Lx7aGS) Jonathan- neverworkintheory.org (https://neverworkintheory.org/) Jonathan- The Tiny DevOps Guy (https://www.youtube.com/channel/UC5UfX0EgUWlcdQ2RDsq_fcA) Will- Learning Go (https://www.oreilly.com/library/view/learning-go/9781492077206/) Will- DevOps for Developers (https://devopsfordevelopers.io/)

All Ruby Podcasts by Devchat.tv
The Joy Of Structs - RUBY 546

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later May 18, 2022 78:38


Is it a class? Is it a hash? No, it's Ruby Struct! Brooke Kuhlmann joins the Rogues to explore this often-overlooked object. We extend simple structs with refinements, use pattern matching to compress complex logic and close the door on OpenStructs. Brooke talks about the challenges and rewards of introducing busy teams to advanced techiques, software craftsmanship and the transformational philosophy of alchemists.io (https://www.alchemists.io/). Sponsors Top End Devs (https://topenddevs.com/) Raygun | Click here to get started on your free 14-day trial (https://raygun.com/platform/apm?utm_medium=podcast&utm_source=rubyrogues&utm_campaign=devchat&utm_content=apm) Coaching | Top End Devs (https://topenddevs.com/coaching) Links Ruby Refinements | Alchemists (https://www.alchemists.io/articles/ruby_refinements/) Refinements | Alchemists (https://www.alchemists.io/projects/refinements/) Class: Pathname (Ruby 2.6.3) (https://ruby-doc.org/stdlib-2.6.3/libdoc/pathname/rdoc/Pathname.html) dry-rb - dry-monads v1.3 - Introduction (https://dry-rb.org/gems/dry-monads/1.3/) What's New in Python 2.6 (https://docs.python.org/3/whatsnew/2.6.html#pep-343-the-with-statement) GitHub - troessner/reek (https://github.com/troessner/reek) Software Craftsmanship and Code Retreats with Corey Haines (https://hanselminutes.com/308/software-craftsmanship-and-code-retreats-with-corey-haines) Master the Object Oriented Mindset in Ruby and Rails - avdi.codes (https://avdi.codes/moom/) Picks Brooke- Polished Ruby Programming (https://www.amazon.com/Polished-Ruby-Programming-maintainable-high-performance-ebook/dp/B093TH9P7C) Brooke- Everdell (https://boardgamegeek.com/boardgame/199792/everdell) Luke- WarnerBros.co.uk | Fantastic Beasts: The Secrets of Dumbledore | Movies (https://www.warnerbros.co.uk/movies/fantastic-beasts-secrets-dumbledore) Luke- Ruby Pattern Matching by Brooke Kuhlmann of the Alchemists Collective - YouTube (https://www.youtube.com/watch?v=A3CvJYyWNEc) Valentino- GitHub - thisredone/rb (https://github.com/thisredone/rb) Valentino- What About A Plain Text Web - Earthly Blog (https://earthly.dev/blog/text-mode/) Valentino- A morse themed arcade rhythm game (https://twitter.com/perbyhring/status/1508716634382512137) Special Guest: Brooke Kuhlmann.

Coder Radio
466: Luxury Emotional Manipulation

Coder Radio

Play Episode Listen Later May 18, 2022 51:40


Why Mike feels like Heroku is in a failed state, what drove us crazy about Google I/O this year, how Chris botched something super important, and some serious Python love sprinkled throughout.

Python Bytes
#284 Spicy git for Engineers

Python Bytes

Play Episode Listen Later May 18, 2022 41:12


Watch the live stream: Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Test & Code Podcast Patreon Supporters Brian #1:distinctipy “distinctipy is a lightweight python package providing functions to generate colours that are visually distinct from one another.” Small, focused tool, but really cool. Say you need to plot a dynamic number of lines. Why not let distinctipy pick colors for you that will be distinct? Also can display the color swatches. Some example palettes here: https://github.com/alan-turing-institute/distinctipy/tree/main/examples from distinctipy import distinctipy # number of colours to generate N = 36 # generate N visually distinct colours colors = distinctipy.get_colors(N) # display the colours distinctipy.color_swatch(colors) Michael #2: Soda SQL Soda SQL is a free, open-source command-line tool. It utilizes user-defined input to prepare SQL queries that run tests on dataset in a data source to find invalid, missing, or unexpected data. Looks good for data pipelines and other CI/CD work! Daniel #3: Python in Nature There's a review article from Sept 2020 on array programming with NumPy in the research journal Nature. For reference, in grad school we had a fancy paper on quantum entanglement that got rejected from Nature Communications, a sub-journal to Nature. Nature is hard to get into. List of authors includes Travis Oliphant who started NumPy. Covers NumPy as the foundation, building up to specialized libraries like QuTiP for quantum computing. If you search “Python” on their site, many papers come up. Interesting to see their take on publishing software work. Brian #4: Supercharging GitHub Actions with Job Summaries From a tweet by Simon Willison and an article: GH Actions job summaries Also, Ned Batchelder is using it for Coverage reports “You can now output and group custom Markdown content on the Actions run summary page.” “Custom Markdown content can be used for a variety of creative purposes, such as: Aggregating and displaying test results Generating reports Custom output independent of logs” Coverage.py example: - name: "Create summary" run: | echo '### Total coverage: ${{ env.total }}%' >> $GITHUB_STEP_SUMMARY echo '[${{ env.url }}](${{ env.url }})' >> $GITHUB_STEP_SUMMARY Michael #5:Language Summit is write up out via Itamar, by Alex Waygood Python without the GIL: A talk by Sam Gross Reaching a per-interpreter GIL: A talk by Eric Snow The "Faster CPython" project: 3.12 and beyond: A talk by Mark Shannon WebAssembly: Python in the browser and beyond: A talk by Christian Heimes F-strings in the grammar: A talk by Pablo Galindo Salgado Cinder Async Optimisations: A talk by Itamar Ostricher The issue and PR backlog: A talk by Irit Katriel The path forward for immortal objects: A talk by Eddie Elizondo and Eric Snow Lightning talks, featuring short presentations by Carl Meyer, Thomas Wouters, Kevin Modzelewski, Samuel Colvin and Larry Hastings Daniel #6:AllSpice is Git for EEs Software engineers have Git/SVN/Mercurial/etc None of the other engineering disciplines (mechanical, electrical, optical, etc), have it nearly as good. Altium has their Vault and “365,” but there's nothing with a Git-like UX. Supports version history, diffs, all the things you expect. Even self-hosting and a Gov Cloud version. “Bring your workflow to the 21st century, finally.” Extras Brian: Will McGugan talks about Rich, Textual, and Textualize on Test & Code 188 Also 3 other episodes since last week. (I have a backlog I'm working through.) Michael: Power On-Xbox Documentary | Full Movie The 4 Reasons To Branch with Git - Illustrated Examples with Python A Python spotting - via Jason Pecor 2022 StackOverflow Developer Survey is live, via Brian TextSniper macOS App PandasTutor on webassembly Daniel: I know Adafruit's a household name, shout-out to Sparkfun, Seeed Studio, OpenMV, and other companies in the field. Joke: A little awkward

All Jupiter Broadcasting Shows
Luxury Emotional Manipulation | Coder Radio 466

All Jupiter Broadcasting Shows

Play Episode Listen Later May 18, 2022


Why Mike feels like Heroku is in a failed state, what drove us crazy about Google I/O this year, how Chris botched something super important, and some serious Python love sprinkled throughout.

Coder Radio Video
Luxury Emotional Manipulation | Coder Radio 466

Coder Radio Video

Play Episode Listen Later May 18, 2022


Why Mike feels like Heroku is in a failed state, what drove us crazy about Google I/O this year, how Chris botched something super important, and some serious Python love sprinkled throughout.

Test & Code - Python Testing & Development
188: Python's Rich, Textual, and Textualize - Innovating the CLI

Test & Code - Python Testing & Development

Play Episode Listen Later May 17, 2022 35:36


Will McGugan has brought a lot of color to CLIs within Python due to Rich. Then Textual started rethinking full command line applications, including layout with CSS. And now Textualize, a new startup, is bringing CLI apps to the web. Special Guest: Will McGugan.

CapTech Trends
Keep Your Data Lake from Becoming a Data Swamp

CapTech Trends

Play Episode Listen Later May 17, 2022 20:18


In this episode, we bring Calli Rogers, director in our data and analytics practice, back by popular demand. Listen in as we dig deeper into metadata-driven ingestion and discuss topics such as:Why Python is the preferred language in the analytics space.The importance of having a full-time role in data governance.Trivia: Why is our data butler named Alfred?

Egyptian iBook of the Dead
Star Trek :: Discovery

Egyptian iBook of the Dead

Play Episode Listen Later May 17, 2022


Musique Mécanique par le Théâtre Électrique ::"Star Trek :: Discovery" by Jeff Russo

Kopec Explains Software

By several measures, including a 2021 survey by IEEE, Python is the most popular programming language in the world. But why? What's special about it? In this episode we'll go over Python's history, key technical aspects of the language, and the niches within software development that it dominates. We also discuss some problems in the Python world. Show Notes Episode 11: What is a Programming Language? Episode 87: Compilers and Interpreters Episode 35: The C Programming Language Top Programming Languages 2021 via IEEE Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Maintainable
Chelsea Troy - All Code Has Maintenance Load

Maintainable

Play Episode Listen Later May 16, 2022 51:37


Robby has a chat with Chelsea Troy, the Staff Software Engineer on machine learning and backend systems at Mozilla. Chelsea also maintains the Zooniverse Citizens Science mobile app, the NASA landslide data processing pipeline, and a few other open-source projects. She is a maintainer for the rock programming language and mentors formerly incarcerated technologists through Emergent Works. She teaches Python and mobile development at the University of Chicago's Master's program in Computer Science, hosts workshops for O'Reilly, and writes at ChelseaTroy.com  For Chelsea, one of the most important characteristics of well-maintained software is a conscious effort to ensure that enough context remains available for engineers who come in without existing familiarity with the system to gain that context and maintain it. She shares more of her valuable insights on how we can go about making software more maintainable and explains why she's not a proponent of the term “Technical debt”. She also talks about some of the strategies she uses to quantify maintenance work, how engineers can document their code with more helpful error messages that provide more context, and how to discuss the removal of features to reduce long-term maintenance load with a product team. To learn more, including what you should do when you join a new team with existing software, stay tuned. Book Recommendations:Cork Dork by Bianca Bosker - http://www.biancabosker.com/cork-dorkHelpful LinksChelsea on Twitter - https://twitter.com/HeyChelseaTroyChelsea's Website - chelseatroy.com"A Rubric for Evaluating Team Members' Contributions to a Maintainable Code Base" - https://chelseatroy.com/2021/10/29/a-rubric-for-evaluating-team-members-contributions-to-a-maintainable-code-base/"Quantifying Technical Debt" - https://chelseatroy.com/2021/01/14/quantifying-technical-debt/"Reducing Technical Debt" - https://chelseatroy.com/2021/01/21/reducing-technical-debt/Subscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.

Vanishing Gradients
Episode 8: The Open Source Cybernetic Revolution

Vanishing Gradients

Play Episode Listen Later May 16, 2022 65:57


Hugo speaks with Peter Wang, CEO of Anaconda, about what the value proposition of data science actually is, data not as the new oil, but rather data as toxic, nuclear sludge, the fact that data isn't real (and what we really have are frozen models), and the future promise of data science. They also dive into an experimental conversation around open source software development as a model for the development of human civilization, in the context of developing systems that prize local generativity over global extractive principles. If that's a mouthful, which it was, or an earful, which it may have been, all will be revealed in the conversation. LInks Peter on twitter (https://twitter.com/pwang) Anaconda Nucleus (https://anaconda.cloud/) Jordan Hall on the Jim Rutt Show (https://www.jimruttshow.com/jordan-greenhall-hall/): Game B Meditations On Moloch (https://slatestarcodex.com/2014/07/30/meditations-on-moloch) -- On multipolar traps Here Comes Everybody: The Power of Organizing Without Organizations (https://en.wikipedia.org/wiki/Here_Comes_Everybody_(book)) by Clay Shirky Finite and Infinite Games (https://en.wikipedia.org/wiki/Finite_and_Infinite_Games) by James Carse Governing the Commons: The Evolution of Institutions for Collective Action (https://www.cambridge.org/core/books/governing-the-commons/7AB7AE11BADA84409C34815CC288CD79) by Elinor Olstrom Elinor Ostrom's 8 Principles for Managing A Commmons (https://www.onthecommons.org/magazine/elinor-ostroms-8-principles-managing-commmons) Haunted by Data (https://idlewords.com/talks/haunted_by_data.htm), a beautiful and mesmerising talk by Pinboard.in founder Maciej Ceglowski

Hacker Public Radio
HPR3596: Extracting text, tables and images from docx files using Python

Hacker Public Radio

Play Episode Listen Later May 16, 2022


Tools to extract data from docx files: docx2txt python-docx2txt python-docx Code Snippets text = docx2txt.process(src, img_dest) with open("data.txt", "wt") as f: f.write(text) document = docx.Document(src) tables = document.tables data = [] for table in tables: table_data = [] for row in table.rows: row_data = [] for cell in row.cells: row_data.append(cell.text) table_data.append(row_data) data.append(table_table) for i, table in enumerate(tables): with open(f"{i}.csv", "wt") as f: writer = csv.writer(f) writer.writerows(table)

The Changelog
Run your home on a Raspberry Pi

The Changelog

Play Episode Listen Later May 13, 2022 80:43


This week we're joined by Mike Riley and we're talking about his book Portable Python Projects (Running your home on a Raspberry Pi). We breakdown the details of the latest Raspberry Pi hardware, various automation ideas from the book, why Mike prefers Python for scripting on a Raspberry Pi, and of course why the Raspberry Pi makes sense for home labs concerned about data security. Use the code PYPROJECTS to get a 35% discount on the book. That code is valid for approximately 60 days after the episode's publish date.

DataTalks.Club
Teaching Data Engineers - Jeff Katz

DataTalks.Club

Play Episode Listen Later May 13, 2022 52:33


We talked about: Jeff's background Getting feedback to become a better teacher Going from engineering to teaching Jeff on becoming a curriculum writer Creating a curriculum that reinforces learning Jeff on starting his own data engineering bootcamp Shifting from teaching ML and data science to teaching data engineering Making sure that students get hired Screening bootcamp applicants Knowing when it's time to apply for jobs The curriculum of JigsawLabs.io The market demand of Spark, Kafka, and Kubernetes (or lack thereof) Advice for data analysts that want to move into data engineering The market demand of ETL/ELT and DBT (or lack thereof) The importance of Python, SQL, and data modeling for data engineering roles Interview expectations How to get started in teaching The challenges of being a one-person company Teaching fundamentals vs the “shiny new stuff” JigsawLabs.io Finding Jeff online Links: Jigsaw Labs: https://www.jigsawlabs.io/free Teaching my mom to code: https://www.youtube.com/watch?v=OfWwfTXGjBM Getting a Data Engineering Job Webinar with Jeff Katz: https://www.eventbrite.de/e/getting-a-data-engineering-job-tickets-310270877547 MLOps Zoomcamp: https://github.com/DataTalksClub/mlops-zoomcamp Join DataTalks.Club: https://datatalks.club/slack.html Our events: https://datatalks.club/events.html

Sailor Noob
SN 111: "The Holy Grail's Mystical Power: Moon's Double Transformation"

Sailor Noob

Play Episode Listen Later May 13, 2022 92:00


Sailor Noob is the podcast where a Sailor Moon superfan and a total noob go episode by episode through the original Sailor Moon series!It's a final confrontation and a new beginning this week as the Sailor Senshi clash with the Death Busters! Eudial has two of the sacred Talismans and Sailor Moon will have to find new strength within herself to prevent the end of the world!In this episode, we discuss the Imperial Regalia of Japan, the Kenji-tō-Shōkei-no-gi ceremony, and the "Hare of Inaba". We also talk Shoujo Commmando Izumi, Python material, the Anti-Messiah, nonchalant floating, the Suck-u-Lux 300, yadda yaddaing the best part, Laser Lighthouse, immanentizing the eschaton, atomic anime therapy, Pluto tracts, a multi-denominational apocalypse, Japanese Klingons, International Treasure, Japan's Voltron origin, being down with Watership, and adding a laugh track!#JusticeforEudialEDITOR'S NOTE: This episode was recorded during an epic thunderstorm so there are sounds of thunder and a bit of occasional electric buzz.We're on iTunes and your listening platform of choice! Please subscribe and give us a rating and a review! Arigato gozaimasu!https://podcasts.apple.com/us/podcast/sailor-noob/id1486204787Become a patron of the show and get access to our Pretty Guardian Sailor Moon live-action show and our Animedification podcast!http://www.patreon.com/sailornoobSailor Noob is a part of the Just Enough Trope podcast network. Check out our other shows about your favorite pop culture topics and join our Discord!http://www.twitter.com/noob_sailorhttp://www.justenoughtrope.comhttp://www.instagram.com/noob_sailorhttps://discord.gg/49bzqdpBpxBuy us a Kōhī on Ko-Fi!https://ko-fi.com/E1E01M2UA

The Real Python Podcast
Start Testing Your Python with doctest & Pagination in Django

The Real Python Podcast

Play Episode Listen Later May 13, 2022 56:39


Did you know you can add testing to your Python code while simultaneously documenting it? Using docstrings, you can create examples of how your functions should interact in a Python REPL and test them with the built-in doctest module. This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder's Weekly articles and projects.

The Irish Tech News Podcast
Conducting Early Stage Market Validation and Building No-Code Storefronts for NFTs and Web 3.0

The Irish Tech News Podcast

Play Episode Listen Later May 13, 2022 31:58


Alex Kehaya is a technical entrepreneur capable of developing high level product strategy and communicating technical requirements to engineering teams and key stakeholders. He is Founder at NFT MarketPlace HolaPlex and an Advisor for the Solana Blockchain. Alex is currently working in the blockchain space and has spent the past several years working as a consultant and entrepreneur with Fortune 500's and startups to accelerate the development of new software products and go-to-market strategies. His work has been featured in Entrepreneur, Forbes, FastCompany, Product Hunt, Pando.com, and several large Medium publications. Core Skills: Market Validation: Leading Fortune 500 companies and startup teams through a data driven customer discovery process to accelerate development of new business models. Working with stakeholders and engineering teams to take products from concept to prototype Marketing and Sales: 8 years of sales experience, and proficiency in Business Development, Facebook Advertising, Content Marketing, Viral Marketing, Influencer Marketing, and PR Full Stack Developer: Proficient in Ruby on Rails, JavaScript, HTML, CSS, and Bootstrap. Experience working with AngularJS, Ionic, and Agile Development. Currently learning Smart Contract Development, Python and ReactJS Jamil Hasan is a crypto and blockchain focused podcast host at the Irish Tech News and spearheads our weekend content “The Crypto Corner” where he interviews founders, entrepreneurs and global thought leaders. Prior to his endeavors into the crypto-verse in July 2017, Jamil built an impressive career as a data, operations, financial, technology and business analyst and manager in Corporate America, including twelve years at American International Group and its related companies. Since entering the crypto universe, Jamil has been an advisor, entrepreneur, investor and author. His books “Blockchain Ethics: A Bridge to Abundance” (2018) and “Re-Generation X” (2020) not only discuss the benefits of blockchain technology, but also capture Jamil's experience on how he has transitioned from being a loyal yet downsized former corporate employee to a self sovereign individual. With over one hundred podcasts under his belt since he joined our team in February 2021, and with four years of experience both managing his own crypto portfolio and providing crypto guidance and counsel to select clients, Jamil continues to seek opportunities to help others navigate this still nascent industry. Jamil's primary focus outside of podcast hosting is helping former corporate employees gain the necessary skills and vision to build their own crypto portfolios and create wealth for the long-term.

Python Bytes
#283 The sports episode

Python Bytes

Play Episode Listen Later May 12, 2022 32:58


Watch the live stream: Watch on YouTube About the show Sponsored: RedHat: Compiler Podcast Special guest: Tonya Sims Michael #1: Pathy: a Path interface for local and cloud bucket storage via Spencer Pathy is a python package (with type annotations) for working with Cloud Bucket storage providers using a pathlib interface. It provides an easy-to-use API bundled with a CLI app for basic file operations between local files and remote buckets. It enables a smooth developer experience by letting developers work against the local file system during development and only switch over to live APIs for deployment. Also has optional local file caching. From Spenser The really cool function is "Pathy.fluid" which can take any type of local, GCS, or S3 path string and then just give you back a Path object that you can interact with agnostic of what platform it was. So this has worked amazingly for me in local testing since i can just change the file path from the "s3://bucket/path" that i use in prod to a local "test_dir/path" and it works automatically. Brian #2: Robyn “Robyn is a fast, high-performance Python web framework with a Rust runtime.” Hello, Robyn! - intro article docs, repo Neat things doesn't need WSGI or ASGI async very Flask-like Early, so still needs some TLC docs, etc. getting started and demo apps would be good. Tonya #3: Python package 'nba_api' is a package to access data for NBA.com This package is maintained by Swar Patel API Client package for NBA.com, more accessible endpoints, and better documentation The NBA.com API's are not well documented and change frequently (player traded, injured, retired, points per game, stats, etc) The nba_api package has tons of features: The nba_api starts with static data on players and teams (Full name, team name, etc). Each player and Team has an id. Can get game data from the playergamelog API endpoint The package also has many different API endpoints that it can hit by passing in features from the static data to the API endpoints as parameters Michael #4: Termshot From Jay Miller Creates screenshots based on terminal command output Just run termshot YOUR_CMD or termshot --show-cmd -- python program.py Even termshot /bin/zsh for full interactive “recording” Example I made: Brian #5: When Python can't thread: a deep-dive into the GIL's impact Itamar Turner-Trauring Building a mental model of the GIL using profiler graphs of simple two thread applications. The graphs really help a lot to see when the CPU is active or waiting on each thread. Tonya #6: Sportsipy: A free sports API written for python Free python API that pulls the stats from www.sports-reference.com sports-reference.com - great website for getting sports stats for professional sports(NBA, NFL, NHL, MLB, college sports) Looks like an HTML website for the 90s - great for scraping (email site owners) You can get API queries for every sport (North American sports) like the list of teams for that sport, the date and time of a game, the total number of wins for a team during the season, and many more team-related metrics. You can also get stats from players and box scores - so you can build cool stuff around how a team performed during a game or during a season. Extras Michael: Python 3.11.0 beta 1 is out Test with GitHub Actions against Python 3.11 Joke: Finding my family

Talk Python To Me - Python conversations for passionate developers
#365: Solving Negative Engineering Problems with Prefect

Talk Python To Me - Python conversations for passionate developers

Play Episode Listen Later May 12, 2022 64:10


How much time do you spend solving negative engineering problems? And can a framework solve them for you? Think of negative engineering as things you do to avoid bad outcomes in software. At the lowest level, this can be writing good error handling with try / except. But it's broader than that: logging, observability (like Sentry tools), retries, failover (as in what you might get from Kubernetes), and so on. We have a great chat with Chris White about Prefect, a tool for data engineers and data scientists meaning to solve many of these problems automatically. But it's a conversation applicable to a broader software development community as well. Links from the show Chris White: @markov_gainz Prefect: prefect.io Fermat's Enigma Book (mentioned by Michael): amazon.com Prefect Docs (2.0): orion-docs.prefect.io Prefect source code: github.com A Brief History of Dataflow Automation: prefect.io/blog Watch this episode on YouTube: youtube.com Episode transcripts: talkpython.fm --- Stay in touch with us --- Subscribe to us on YouTube: youtube.com Follow Talk Python on Twitter: @talkpython Follow Michael on Twitter: @mkennedy Sponsors Microsoft Talk Python Training AssemblyAI

Teaching Python
Episode 90: Equitable Learning

Teaching Python

Play Episode Listen Later May 12, 2022 56:09


We welcome David Cavallo an entrepreneur in using technologies to improve learning and promote social equitable development. Our topic this week is equitable computation learning and the reasons and methods for it. Special Guest: David Cavallo.

Adafruit Industries
Python on Hardware weekly video 180

Adafruit Industries

Play Episode Listen Later May 12, 2022 4:22


The wonderful world of Python on hardware! Episode 180 (May 11, 2022). This is our weekly Python video highlights! Ladyada and PT review the Python on hardware news of the week. The news comes from the Python community, Discord, Adafruit communities and more. It's part of the comprehensive newsletter we do each week. The video playlist of episodes is here: http://adafru.it/pohepisodes Sign up for the Python on Microcontrollers weekly email newsletter here: https://www.adafruitdaily.com/ Read the newsletters past and present at https://www.adafruitdaily.com/category/circuitpython/ Learn all about CircuitPython here: https://www.circuitpython.org/ https://adafruit.com/circuitpython/ Join us on Discord! https://adafru.it/discord/ Visit the Adafruit shop online, we're open for business - http://www.adafruit.com Adafruit on Instagram: https://www.instagram.com/adafruit Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/

Coder Radio
465: Mike's Magic Mom

Coder Radio

Play Episode Listen Later May 11, 2022 59:47


After solving a moral dilemma in our particular kind of way, Mike dishes on some ambitious plans that might kick off a new era of development for him.

Screaming in the Cloud
Reliability Starts in Cultural Change with Amy Tobey

Screaming in the Cloud

Play Episode Listen Later May 11, 2022 46:37


About AmyAmy Tobey has worked in tech for more than 20 years at companies of every size, working with everything from kernel code to user interfaces. These days she spends her time building an innovative Site Reliability Engineering program at Equinix, where she is a principal engineer. When she's not working, she can be found with her nose in a book, watching anime with her son, making noise with electronics, or doing yoga poses in the sun.Links Referenced: Equinix Metal: https://metal.equinix.com Personal Twitter: https://twitter.com/MissAmyTobey Personal Blog: https://tobert.github.io/ TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: This episode is sponsored in part by our friends at Vultr. Optimized cloud compute plans have landed at Vultr to deliver lightning-fast processing power, courtesy of third-gen AMD EPYC processors without the IO or hardware limitations of a traditional multi-tenant cloud server. Starting at just 28 bucks a month, users can deploy general-purpose, CPU, memory, or storage optimized cloud instances in more than 20 locations across five continents. Without looking, I know that once again, Antarctica has gotten the short end of the stick. Launch your Vultr optimized compute instance in 60 seconds or less on your choice of included operating systems, or bring your own. It's time to ditch convoluted and unpredictable giant tech company billing practices and say goodbye to noisy neighbors and egregious egress forever. Vultr delivers the power of the cloud with none of the bloat. “Screaming in the Cloud” listeners can try Vultr for free today with a $150 in credit when they visit getvultr.com/screaming. That's G-E-T-V-U-L-T-R dot com slash screaming. My thanks to them for sponsoring this ridiculous podcast.Corey: Finding skilled DevOps engineers is a pain in the neck! And if you need to deploy a secure and compliant application to AWS, forgettaboutit! But that's where DuploCloud can help. Their comprehensive no-code/low-code software platform guarantees a secure and compliant infrastructure in as little as two weeks, while automating the full DevSecOps lifestyle. Get started with DevOps-as-a-Service from DuploCloud so that your cloud configurations are done right the first time. Tell them I sent you and your first two months are free. To learn more visit: snark.cloud/duplo. Thats's snark.cloud/D-U-P-L-O-C-L-O-U-D.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. Every once in a while I catch up with someone that it feels like I've known for ages, and I realize somehow I have never been able to line up getting them on this show as a guest. Today is just one of those days. And my guest is Amy Tobey who has been someone I've been talking to for ages, even in the before-times, if you can remember such a thing. Today, she's a Senior Principal Engineer at Equinix. Amy, thank you for finally giving in to my endless wheedling.Amy: Thanks for having me. You mentioned the before-times. Like, I remember it was, like, right before the pandemic we had beers in San Francisco wasn't it? There was Ian there—Corey: Yeah, I—Amy: —and a couple other people. It was a really great time. And then—Corey: I vaguely remember beer. Yeah. And then—Amy: And then the world ended.Corey: Oh, my God. Yes. It's still March of 2020, right?Amy: As far as I know. Like, I haven't checked in a couple years.Corey: So, you do an awful lot. And it's always a difficult question to ask someone, so can you encapsulate your entire existence in a paragraph? It's—Amy: [sigh].Corey: —awful, so I'd like to give a bit more structure to it. Let's start with the introduction: You are a Senior Principal Engineer. We know it's high level because of all the adjectives that get put in there, and none of those adjectives are ‘associate' or ‘beginner' or ‘junior,' or all the other diminutives that companies like to play games with to justify paying people less. And you're at Equinix, which is a company that is a bit unlike most of the, shall we say, traditional cloud providers. What do you do over there and both as a company, as a person?Amy: So, as a company Equinix, what most people know about is that we have a whole bunch of data centers all over the world. I think we have the most of any company. And what we do is we lease out space in that data center, and then we have a number of other products that people don't know as well, which one is Equinix Metal, which is what I specifically work on, where we rent you bare-metal servers. None of that fancy stuff that you get any other clouds on top of it, there's things you can get that are… partner things that you can add-on, like, you know, storage and other things like that, but we just deliver you bare-metal servers with really great networking. So, what I work on is the reliability of that whole system. All of the things that go into provisioning the servers, making them come up, making sure that they get delivered to the server, make sure the API works right, all of that stuff.Corey: So, you're on the Equinix cloud side of the world more so than you are on the building data centers by the sweat of your brow, as they say?Amy: Correct. Yeah, yeah. Software side.Corey: Excellent. I spent some time in data centers in the early part of my career before cloud ate that. That was sort of cotemporaneous with the discovery that I'm the hardware destruction bunny, and I should go to great pains to keep my aura from anything expensive and important, like, you know, the SAN. So—Amy: Right, yeah.Corey: Companies moving out of data centers, and me getting out was a great thing.Amy: But the thing about SANs though, is, like, it might not be you. They're just kind of cursed from the start, right? They just always were kind of fussy and easy to break.Corey: Oh, yeah. I used to think—and I kid you not—that I had a limited upside to my career in tech because I sometimes got sloppy and I was fairly slow at crimping ethernet cables.Amy: [laugh].Corey: That is very similar to growing up in third grade when it became apparent that I was going to have problems in my career because my handwriting was sloppy. Yeah, it turns out the future doesn't look like we predicted it would.Amy: Oh, gosh. Are we going to talk about, like, neurological development now or… [laugh] okay, that's a thing I struggle with, too right, is I started typing as soon as they would let—in fact, before they would let me. I remember in high school, I had teachers who would grade me down for typing a paper out. They want me to handwrite it and I would go, “Cool. Go ahead and take a grade off because if I handwrite it, you're going to take two grades off my handwriting, so I'm cool with this deal.”Corey: Yeah, it was pretty easy early on. I don't know when the actual shift was, but it became more and more apparent that more and more things are moving towards a world where you could type. And I was almost five when I started working on that stuff, and that really wound up changing a lot of aspects of how I started seeing things. One thing I think you're probably fairly well known for is incidents. I want to be clear when I say that you are not the root cause as—“So, why are things broken?” “It's Amy again. What's she gotten into this time?” Great.Amy: [laugh]. But it does happen, but not all the time.Corey: Exa—it's a learning experience.Amy: Right.Corey: You've also been deeply involved with SREcon and a number of—a lot of aspects of what I will term—and please don't yell at me for this—SRE culture—Amy: Yeah.Corey: Which is sometimes a challenging thing to wind up describing or putting a definition around. The one that I've always been somewhat partial to is, “SRE is DevOps, except you worked at Google for a while.” I don't know how necessarily accurate that is, but it does rile people up.Amy: Yeah, it does. Dave Stanke actually did a really great talk at SREcon San Francisco just a couple weeks ago, about the DORA report. And the new DORA report, they split SRE out into its own function and kind of is pushing against that old model, which actually comes from Liz Fong-Jones—I think it's from her, or older—about, like, class SRE implements DevOps, which is kind of this idea that, like, SREs make DevOps happen. Things have evolved, right, since then. Things have evolved since Google released those books, and we're all just figured out what works and what doesn't a little bit.And so, it's not that we're implementing DevOps so much. In fact, it's that ops stuff that kind of holds us back from the really high impact work that SREs, I think, should be doing, that aren't just, like, fixing the problems, the symptoms down at the bottom layer, right? Like what we did as sysadmins 20 years ago. You know, we'd go and a lot of people are SREs that came out of the sysadmin world and still think in that mode, where it's like, “Well, I set up the systems, and when things break, I go and I fix them.” And, “Why did the developers keep writing crappy code? Why do I have to always getting up in the middle of the night because this thing crashed?”And it turns out that the work we need to do to make things more reliable, there's a ceiling to how far away the platform can take us, right? Like, we can have the best platform in the world with redundancy, and, you know, nine-way replicated data storage and all this crazy stuff, and still if we put crappy software on top, it's going to be unreliable. So, how do we make less crappy software? And for most of my career, people would be, like, “Well, you should test it.” And so, we started doing that, and we still have crappy software, so what's going on here? We still have incidents.So, we write more tests, and we still have incidents. We had a QA group, we still have incidents. We send the developers to training, and we still have incidents. So like, what is the thing we need to do to make things more reliable? And it turns out, most of it is culture work.Corey: My perspective on this stems from being a grumpy old sysadmin. And at some point, I started calling myself a systems engineer or DevOps or production engineer, or SRE. It was all from my point of view, the same job, but you know, if you call yourself a sysadmin, you're just asking for a 40% pay cut off the top.Amy: [laugh].Corey: But I still tended to view the world through that lens. I tended to be very good at Linux systems internals, for example, understanding system calls and the rest, but increasingly, as the DevOps wave or SRE wave, or Google-isation of the internet wound up being more and more of a thing, I found myself increasingly in job interviews, where, “Great, now, can you go wind up implementing a sorting algorithm on the whiteboard?” “What on earth? No.” Like, my lingua franca is shitty Bash, and no one tends to write that without a bunch of tab completions and quick checking with manpages—die.net or whatnot—on the fly as you go down that path.And it was awful, and I felt… like my skill set was increasingly eroding. And it wasn't honestly until I started this place where I really got into writing a fair bit of code to do different things because it felt like an orthogonal skill set, but the fullness of time, it seems like it's not. And it's a reskilling. And it made me wonder, does this mean that the areas of technology that I focused on early in my career, was that all a waste? And the answer is not really. Sometimes, sure, in that I don't spend nearly as much time worrying about inodes—for example—as I once did. But every once in a while, I'll run into something and I looked like a wizard from the future, but instead, I'm a wizard from the past.Amy: Yeah, I find that a lot in my work, now. Sometimes things I did 20 years ago, come back, and it's like, oh, yeah, I remember I did all that threading work in 2002 in Perl, and I learned everything the very, very, very hard way. And then, you know, this January, did some threading work to fix some stability issues, and all of it came flooding back, right? Just that the experiences really, more than the code or the learning or the text and stuff; more just the, like, this feels like threads [BLEEP]-ery. Is a diagnostic thing that sometimes we have to say.And then people are like, “Can you prove it?” And I'm like, “Not really,” because it's literally thread [BLEEP]-ery. Like, the definition of it is that there's weird stuff happening that we can't figure out why it's happening. There's something acting in the system that isn't synchronized, that isn't connected to other things, that's happening out of order from what we expect, and if we had a clear signal, we would just fix it, but we don't. We just have, like, weird stuff happening over here and then over there and over there and over there.And, like, that tells me there's just something happening at that layer and then have to go and dig into that right, and like, just basically charge through. My colleagues are like, “Well, maybe you should look at this, and go look at the database,” the things that they're used to looking at and that their experiences inform, whereas then I bring that ancient toiling through the threading mines experiences back and go, “Oh, yeah. So, let's go find where this is happening, where people are doing dangerous things with threads, and see if we can spot something.” But that came from that experience.Corey: And there's so much that just repeats itself. And history rhymes. The challenge is that, do you have 20 years of experience, or do you have one year of experience repeated 20 times? And as the tide rises, doing the same task by hand, it really is just a matter of time before your full-time job winds up being something a piece of software does. An easy example is, “Oh, what's your job?” “I manually place containers onto specific hosts.” “Well, I've got news for you, and you're not going to like it at all.”Amy: Yeah, yeah. I think that we share a little bit. I'm allergic to repeated work. I don't know if allergic is the right word, but you know, if I sit and I do something once, fine. Like, I'll just crank it out, you know, it's this form, or it's a datafile I got to write and I'll—fine I'll type it in and do the manual labor.The second time, the difficulty goes up by ten, right? Like, just mentally, just to do it, be like, I've already done this once. Doing it again is anathema to everything that I am. And then sometimes I'll get through it, but after that, like, writing a program is so much easier because it's like exponential, almost, growth in difficulty. You know, the third time I have to do the same thing that's like just typing the same stuff—like, look over here, read this thing and type it over here—I'm out; I can't do it. You know, I got to find a way to automate. And I don't know, maybe normal people aren't driven to live this way, but it's kept me from getting stuck in those spots, too.Corey: It was weird because I spent a lot of time as a consultant going from place to place and it led to some weird changes. For example, “Oh, thank God, I don't have to think about that whole messaging queue thing.” Sure enough, next engagement, it's message queue time. Fantastic. I found that repeating myself drove me nuts, but you also have to be very sensitive not to wind up, you know, stealing IP from the people that you're working with.Amy: Right.Corey: But what I loved about the sysadmin side of the world is that the vast majority of stuff that I've taken with me, lives in my shell config. And what I mean by that is I'm not—there's nothing in there is proprietary, but when you have a weird problem with trying to figure out the best way to figure out which Ruby process is stealing all the CPU, great, turns out that you can chain seven or eight different shell commands together through a bunch of pipes. I don't want to remember that forever. So, that's the sort of thing I would wind up committing as I learned it. I don't remember what company I picked that up at, but it was one of those things that was super helpful.I have a sarcastic—it's a one-liner, except no sane editor setting is going to show it in any less than three—of a whole bunch of Perl, piped into du, piped into the rest, that tells you one of the largest consumers of files in a given part of the system. And it rates them with stars and it winds up doing some neat stuff. I would never sit down and reinvent something like that today, but the fact that it's there means that I can do all kinds of neat tricks when I need to. It's making sure that as you move through your career, on some level, you're picking up skills that are repeatable and applicable beyond one company.Amy: Skills and tooling—Corey: Yeah.Amy: —right? Like, you just described the tool. Another SREcon talk was John Allspaw and Dr. Richard Cook talking about above the line; below the line. And they started with these metaphors about tools, right, showing all the different kinds of hammers.And if you're a blacksmith, a lot of times you craft specialized hammers for very specific jobs. And that's one of the properties of a tool that they were trying to get people to think about, right, is that tools get crafted to the job. And what you just described as a bespoke tool that you had created on the fly, that kind of floated under the radar of intellectual property. [laugh].So, let's not tell the security or IP people right? Like, because there's probably billions and billions of dollars of technically, like, made-up IP value—I'm doing air quotes with my fingers—you know, that's just basically people's shell profiles. And my God, the Emacs automation that people have done. If you've ever really seen somebody who's amazing at Emacs and is 10, 20, 30, maybe 40 years of experience encoded in their emacs settings, it's a wonder to behold. Like, I look at it and I go, “Man, I wish I could do that.”It's like listening to a really great guitar player and be like, “Wow, I wish I could play like them.” You see them just flying through stuff. But all that IP in there is both that person's collection of wisdom and experience and working with that code, but also encodes that stuff like you described, right? It's just all these little systems tricks and little fiddly commands and things we don't want to remember and so we encode them into our toolset.Corey: Oh, yeah. Anything I wound up taking, I always would share it with people internally, too. I'd mention, “Yeah, I'm keeping this in my shell files.” Because I disclosed it, which solves a lot of the problem. And also, none of it was even close to proprietary or anything like that. I'm sorry, but the way that you wind up figuring out how much of a disk is being eaten up and where in a more pleasing way, is not a competitive advantage. It just isn't.Amy: It isn't to you or me, but, you know, back in the beginning of our careers, people thought it was worth money and should be proprietary. You know, like, oh, that disk-checking script as a competitive advantage for our company because there are only a few of us doing this work. Like, it was actually being able to, like, manage your—[laugh] actually manage your servers was a competitive advantage. Now, it's kind of commodity.Corey: Let's also be clear that the world has moved on. I wound up buying a DaisyDisk a while back for Mac, which I love. It is a fantastic, pretty effective, “Where's all the stuff on your disk going?” And it does a scan and you can drive and collect things and delete them when trying to clean things out. I was using it the other day, so it's top of mind at the moment.But it's way more polished than that crappy Perl three-liner. And I see both sides, truly I do. The trick also, for those wondering [unintelligible 00:15:45], like, “Where is the line?” It's super easy. Disclose it, what you're doing, in those scenarios in the event someone is no because they believe that finding the right man page section for something is somehow proprietary.Great. When you go home that evening in a completely separate environment, build it yourself from scratch to solve the problem, reimplement it and save that. And you're done. There are lots of ways to do this. Don't steal from your employer, but your employer employs you; they don't own you and the way that you think about these problems.Every person I've met who has had a career that's longer than 20 minutes has a giant doc somewhere on some system of all of the scripts that they wound up putting together, all of the one-liners, the notes on, “Next time you see this, this is the thing to check.”Amy: Yeah, the cheat sheet or the notebook with all the little commands, or again the Emacs config, sometimes for some people, or shell profiles. Yeah.Corey: Here's the awk one-liner that I put that automatically spits out from an Apache log file what—the httpd log file that just tells me what are the most frequent talkers, and what are the—Amy: You should probably let go of that one. You know, like, I think that one's lifetime is kind of past, Corey. Maybe you—Corey: I just have to get it working with Nginx, and we're good to go.Amy: Oh, yeah, there you go. [laugh].Corey: Or S3 access logs. Perish the thought. But yeah, like, what are the five most high-volume talkers, and what are those relative to each other? Huh, that one thing seems super crappy and it's coming from Russia. But that's—hmm, one starts to wonder; maybe it's time to dig back in.So, one of the things that I have found is that a lot of the people talking about SRE seem to have descended from an ivory tower somewhere. And they're talking about how some of the best-in-class companies out there, renowned for their technical cultures—at least externally—are doing these things. But there's a lot more folks who are not there. And honestly, I consider myself one of those people who is not there. I was a competent engineer, but never a terrific one.And looking at the way this was described, I often came away thinking, “Okay, it was the purpose of this conference talk just to reinforce how smart people are, and how I'm not,” and/or, “There are the 18 cultural changes you need to make to your company, and then you can do something kind of like we were just talking about on stage.” It feels like there's a combination of problems here. One is making this stuff more accessible to folks who are not themselves in those environments, and two, how to drive cultural change as an individual contributor if that's even possible. And I'm going to go out on a limb and guess you have thoughts on both aspects of that, and probably some more hit me, please.Amy: So, the ivory tower, right. Let's just be straight up, like, the ivory tower is Google. I mean, that's where it started. And we get it from the other large companies that, you know, want to do conference talks about what this stuff means and what it does. What I've kind of come around to in the last couple of years is that those talks don't really reach the vast majority of engineers, they don't really apply to a large swath of the enterprise especially, which is, like, where a lot of the—the bulk of our industry sits, right? We spend a lot of time talking about the darlings out here on the West Coast in high tech culture and startups and so on.But, like, we were talking about before we started the show, right, like, the interior of even just America, is filled with all these, like, insurance and banks and all of these companies that are cranking out tons of code and servers and stuff, and they're trying to figure out the same problems. But they're structured in companies where their tech arm is still, in most cases, considered a cost center, often is bundled under finance, for—that's a whole show of itself about that historical blunder. And so, the tech culture is tend to be very, very different from what we experience in—what do we call it anymore? Like, I don't even want to say West Coast anymore because we've gone remote, but, like, high tech culture we'll say. And so, like, thinking about how to make SRE and all this stuff more accessible comes down to, like, thinking about who those engineers are that are sitting at the computers, writing all the code that runs our banks, all the code that makes sure that—I'm trying to think of examples that are more enterprise-y right?Or shoot buying clothes online. You go to Macy's for example. They have a whole bunch of servers that run their online store and stuff. They have internal IT-ish people who keep all this stuff running and write that code and probably integrating open-source stuff much like we all do. But when you go to try to put in a reliability program that's based on the current SRE models, like SLOs; you put in SLOs and you start doing, like, this incident management program that's, like, you know, you have a form you fill out after every incident, and then you [unintelligible 00:20:25] retros.And it turns out that those things are very high-level skills, skills and capabilities in an organization. And so, when you have this kind of IT mindset or the enterprise mindset, bringing the culture together to make those things work often doesn't happen. Because, you know, they'll go with the prescriptive model and say, like, okay, we're going to implement SLOs, we're going to start measuring SLIs on all of the services, and we're going to hold you accountable for meeting those targets. If you just do that, right, you're just doing more gatekeeping and policing of your tech environment. My bet is, reliability almost never improves in those cases.And that's been my experience, too, and why I get charged up about this is, if you just go slam in these practices, people end up miserable, the practices then become tarnished because people experienced the worst version of them. And then—Corey: And with the remote explosion as well, it turns out that changing jobs basically means their company sends you a different Mac, and the next Monday, you wind up signing into a different Slack team.Amy: Yeah, so the culture really matters, right? You can't cover it over with foosball tables and great lunch. You actually have to deliver tools that developers want to use and you have to deliver a software engineering culture that brings out the best in developers instead of demanding the best from developers. I think that's a fundamental business shift that's kind of happening. If I'm putting on my wizard hat and looking into the future and dreaming about what might change in the world, right, is that there's kind of a change in how we do leadership and how we do business that's shifting more towards that model where we look at what people are capable of and we trust in our people, and we get more out of them, the knowledge work model.If we want more knowledge work, we need people to be happy and to feel engaged in their community. And suddenly we start to see these kind of generational, bigger-pie kind of things start to happen. But how do we get there? It's not SLOs. It maybe it's a little bit starting with incidents. That's where I've had the most success, and you asked me about that. So, getting practical, incident management is probably—Corey: Right. Well, as I see it, the problem with SLOs across the board is it feels like it's a very insular community so far, and communicating it to engineers seems to be the focus of where the community has been, but from my understanding of it, you absolutely need buy-in at significantly high executive levels, to at the very least by you air cover while you're doing these things and making these changes, but also to help drive that cultural shift. None of this is something I have the slightest clue how to do, let's be very clear. If I knew how to change a company's culture, I'd have a different job.Amy: Yeah. [laugh]. The biggest omission in the Google SRE books was [Ers 00:22:58]. There was a guy at Google named Ers who owns availability for Google, and when anything is, like, in dispute and bubbles up the management team, it goes to Ers, and he says, “Thou shalt…” right? Makes the call. And that's why it works, right?Like, it's not just that one person, but that system of management where the whole leadership team—there's a large, very well-funded team with a lot of power in the organization that can drive availability, and they can say, this is how you're going to do metrics for your service, and this is the system that you're in. And it's kind of, yeah, sure it works for them because they have all the organizational support in place. What I was saying to my team just the other day—because we're in the middle of our SLO rollout—is that really, I think an SLO program isn't [clear throat] about the engineers at all until late in the game. At the beginning of the game, it's really about getting the leadership team on board to say, “Hey, we want to put in SLIs and SLOs to start to understand the functioning of our software system.” But if they don't have that curiosity in the first place, that desire to understand how well their teams are doing, how healthy their teams are, don't do it. It's not going to work. It's just going to make everyone miserable.Corey: It feels like it's one of those difficult to sell problems as well, in that it requires some tooling changes, absolutely. It requires cultural change and buy-in and whatnot, but in order for that to happen, there has to be a painful problem that a company recognizes and is willing to pay to make go away. The problem with stuff like this is that once you pay, there's a lot of extra work that goes on top of it as well, that does not have a perception—rightly or wrongly—of contributing to feature velocity, of hitting the next milestone. It's, “Really? So, we're going to be spending how much money to make engineers happier? They should get paid an awful lot and they're still complaining and never seem happy. Why do I care if they're happy other than the pure mercenary perspective of otherwise they'll quit?” I'm not saying that it's not worth pursuing; it's not a worthy goal. I am saying that it becomes a very difficult thing to wind up selling as a product.Amy: Well, as a product for sure, right? Because—[sigh] gosh, I have friends in the space who work on these tools. And I want to be careful.Corey: Of course. Nothing but love for all of those people, let's be very clear.Amy: But a lot of them, you know, they're pulling metrics from existing monitoring systems, they are doing some interesting math on them, but what you get at the end is a nice service catalog and dashboard, which are things we've been trying to land as products in this industry for as long as I can remember, and—Corey: “We've got it this time, though. This time we'll crack the nut.” Yeah. Get off the island, Gilligan.Amy: And then the other, like, risky thing, right, is the other part that makes me uncomfortable about SLOs, and why I will often tell folks that I talk to out in the industry that are asking me about this, like, one-on-one, “Should I do it here?” And it's like, you can bring the tool in, and if you have a management team that's just looking to have metrics to drive productivity, instead of you know, trying to drive better knowledge work, what you get is just a fancier version of more Taylorism, right, which is basically scientific management, this idea that we can, like, drive workers to maximum efficiency by measuring random things about them and driving those numbers. It turns out, that doesn't really work very well, even in industrial scale, it just happened to work because, you know, we have a bloody enough society that we pushed people into it. But the reality is, if you implement SLOs badly, you get more really bad Taylorism that's bad for you developers. And my suspicion is that you will get worse availability out of it than you would if you just didn't do it at all.Corey: This episode is sponsored by our friends at Revelo. Revelo is the Spanish word of the day, and its spelled R-E-V-E-L-O. It means “I reveal.” Now, have you tried to hire an engineer lately? I assure you it is significantly harder than it sounds. One of the things that Revelo has recognized is something I've been talking about for a while, specifically that while talent is evenly distributed, opportunity is absolutely not. They're exposing a new talent pool to, basically, those of us without a presence in Latin America via their platform. It's the largest tech talent marketplace in Latin America with over a million engineers in their network, which includes—but isn't limited to—talent in Mexico, Costa Rica, Brazil, and Argentina. Now, not only do they wind up spreading all of their talent on English ability, as well as you know, their engineering skills, but they go significantly beyond that. Some of the folks on their platform are hands down the most talented engineers that I've ever spoken to. Let's also not forget that Latin America has high time zone overlap with what we have here in the United States, so you can hire full-time remote engineers who share most of the workday as your team. It's an end-to-end talent service, so you can find and hire engineers in Central and South America without having to worry about, frankly, the colossal pain of cross-border payroll and benefits and compliance because Revelo handles all of it. If you're hiring engineers, check out revelo.io/screaming to get 20% off your first three months. That's R-E-V-E-L-O dot I-O slash screaming.Corey: That is part of the problem is, in some cases, to drive some of these improvements, you have to go backwards to move forwards. And it's one of those, “Great, so we spent all this effort and money in the rest of now things are worse?” No, not necessarily, but suddenly are aware of things that were slipping through the cracks previously.Amy: Yeah. Yeah.Corey: Like, the most realistic thing about first The Phoenix Project and then The Unicorn Project, both by Gene Kim, has been the fact that companies have these problems and actively cared enough to change it. In my experience, that feels a little on the rare side.Amy: Yeah, and I think that's actually the key, right? It's for the culture change, and for, like, if you really looking to be, like, do I want to work at this company? Am I investing my myself in here? Is look at the leadership team and be, like, do these people actually give a crap? Are they looking just to punt another number down the road?That's the real question, right? Like, the technology and stuff, at the point where I'm at in my career, I just don't care that much anymore. [laugh]. Just… fine, use Kubernetes, use Postgres, [unintelligible 00:27:30], I don't care. I just don't. Like, Oracle, I might have to ask, you know, go to finance and be like, “Hey, can we spend 20 million for a database?” But like, nobody really asks for that anymore, so. [laugh].Corey: As one does. I will say that I mostly agree with you, but a technology that I found myself getting excited about, given the time of the recording on this is… fun, I spent a bit of time yesterday—from when we're recording this—teaching myself just enough Go to wind up being together a binary that I needed to do something actively ridiculous for my camera here. And I found myself coming away deeply impressed by a lot of things about it, how prescriptive it was for one, how self-contained for another. And after spending far too many years of my life writing shitty Perl, and shitty Bash, and worse Python, et cetera, et cetera, the prescriptiveness was great. The fact that it wound up giving me something I could just run, I could cross-compile for anything I need to run it on, and it just worked. It's been a while since I found a technology that got me this interested in exploring further.Amy: Go is great for that. You mentioned one of my two favorite features of Go. One is usually when a program compiles—at least the way I code in Go—it usually works. I've been working with Go since about 0.9, like, just a little bit before it was released as 1.0, and that's what I've noticed over the years of working with it is that most of the time, if you have a pretty good data structure design and you get the code to compile, usually it's going to work, unless you're doing weird stuff.The other thing I really love about Go and that maybe you'll discover over time is the malleability of it. And the reason why I think about that more than probably most folks is that I work on other people's code most of the time. And maybe this is something that you probably run into with your business, too, right, where you're working on other people's infrastructure. And the way that we encode business rules and things in the languages, in our programming language or our config syntax and stuff has a huge impact on folks like us and how quickly we can come into a situation, assess, figure out what's going on, figure out where things are laid out, and start making changes with confidence.Corey: Forget other people for a minute they're looking at what I built out three or four years ago here, myself, like, I look at past me, it's like, “What was that rat bastard thinking? This is awful.” And it's—forget other people's code; hell is your own code, on some level, too, once it's slipped out of the mental stack and you have to re-explore it and, “Oh, well thank God I defensively wound up not including any comments whatsoever explaining what the living hell this thing was.” It's terrible. But you're right, the other people's shell scripts are finicky and odd.I started poking around for help when I got stuck on something, by looking at GitHub, and a few bit of searching here and there. Even these large, complex, well-used projects started making sense to me in a way that I very rarely find. It's, “What the hell is that thing?” is my most common refrain when I'm looking at other people's code, and Go for whatever reason avoids that, I think because it is so prescriptive about formatting, about how things should be done, about the vision that it has. Maybe I'm romanticizing it and I'll hate it and a week from now, and I want to go back and remove this recording, but.Amy: The size of the language helps a lot.Corey: Yeah.Amy: But probably my favorite. It's more of a convention, which actually funny the way I'm going to talk about this because the two languages I work on the most right now are Ruby and Go. And I don't feel like two languages could really be more different.Syntax-wise, they share some things, but really, like, the mental models are so very, very different. Ruby is all the way in on object-oriented programming, and, like, the actual real kind of object-oriented with messaging and stuff, and, like, the whole language kind of springs from that. And it kind of requires you to understand all of these concepts very deeply to be effective in large programs. So, what I find is, when I approach Ruby codebase, I have to load all this crap into my head and remember, “Okay, so yeah, there's this convention, when you do this kind of thing in Ruby”—or especially Ruby on Rails is even worse because they go deep into convention over configuration. But what that's code for is, this code is accessible to people who have a lot of free cognitive capacity to load all this convention into their heads and keep it in their heads so that the code looks pretty, right?And so, that's the trade-off as you said, okay, my developers have to be these people with all these spare brain cycles to understand, like, why I would put the code here in this place versus this place? And all these, like, things that are in the code, like, very compact, dense concepts. And then you go to something like Go, which is, like, “Nah, we're not going to do Lambdas. Nah”—[laugh]—“We're not doing all this fancy stuff.” So, everything is there on the page.This drives some people crazy, right, is that there's all this boilerplate, boilerplate, boilerplate. But the reality is, I can read most Go files from top to the bottom and understand what the hell it's doing, whereas I can go sometimes look at, like, a Ruby thing, or sometimes Python and e—Perl is just [unintelligible 00:32:19] all the time, right, it's there's so much indirection. And it just be, like, “What the [BLEEP] is going on? This is so dense. I'm going to have to sit down and write it out in longhand so I can understand what the developer was even doing here.” And—Corey: Well, that's why I got the Mac Studio; for when I'm not doing A/V stuff with it, that means that I'll have one core that I can use for, you know, front-end processing and the rest, and the other 19 cores can be put to work failing to build Nokogiri in Ruby yet again.Amy: [laugh].Corey: I remember the travails of working with Ruby, and the problem—I have similar problems with Python, specifically in that—I don't know if I'm special like this—it feels like it's a SRE DevOps style of working, but I am grabbing random crap off a GitHub constantly and running it, like, small scripts other people have built. And let's be clear, I run them on my test AWS account that has nothing important because I'm not a fool that I read most of it before I run it, but I also—it wants a different version of Python every single time. It wants a whole bunch of other things, too. And okay, so I use ASDF as my version manager for these things, which for whatever reason, does not work for the way that I think about this ergonomically. Okay, great.And I wind up with detritus scattered throughout my system. It's, “Hey, can you make this reproducible on my machine?” “Almost certainly not, but thank you for asking.” It's like ‘Step 17: Master the Wolf' level of instructions.Amy: And I think Docker generally… papers over the worst of it, right, is when we built all this stuff in the aughts, you know, [CPAN 00:33:45]—Corey: Dev containers and VS Code are very nice.Amy: Yeah, yeah. You know, like, we had CPAN back in the day, I was doing chroots, I think in, like, '04 or '05, you know, to solve this problem, right, which is basically I just—screw it; I will compile an entire distro into a directory with a Perl and all of its dependencies so that I can isolate it from the other things I want to run on this machine and not screw up and not have these interactions. And I think that's kind of what you're talking about is, like, the old model, when we deployed servers, there was one of us sitting there and then we'd log into the server and be like, I'm going to install the Perl. You know, I'll compile it into, like, [/app/perl 558 00:34:21] whatever, and then I'll CPAN all this stuff in, and I'll give it over to the developer, tell them to set their shebang to that and everything just works. And now we're in a mode where it's like, okay, you got to set up a thousand of those. “Okay, well, I'll make a tarball.” [laugh]. But it's still like we had to just—Corey: DevOps, but [unintelligible 00:34:37] dev closer to ops. You're interrelating all the time. Yeah, then Docker comes along, and add dev is, like, “Well, here's the container. Good luck, asshole.” And it feels like it's been cast into your yard to worry about.Amy: Yeah, well, I mean, that's just kind of business, or just—Corey: Yeah. Yeah.Amy: I'm not sure if it's business or capitalism or something like that, but just the idea that, you know, if I can hand off the shitty work to some other poor schlub, why wouldn't I? I mean, that's most folks, right? Like, just be like, “Well”—Corey: Which is fair.Amy: —“I got it working. Like, my part is done, I did what I was supposed to do.” And now there's a lot of folks out there, that's how they work, right? “I hit done. I'm done. I shipped it. Sure. It's an old [unintelligible 00:35:16] Ubuntu. Sure, there's a bunch of shell scripts that rip through things. Sure”—you know, like, I've worked on repos where there's hundreds of things that need to be addressed.Corey: And passing to someone else is fine. I'm thrilled to do it. Where I run into problems with it is where people assume that well, my part was the hard part and anything you schlubs do is easy. I don't—Amy: Well, that's the underclass. Yeah. That's—Corey: Forget engineering for a second; I throw things to the people over in the finance group here at The Duckbill Group because those people are wizards at solving for this thing. And it's—Amy: Well, that's how we want to do things.Corey: Yeah, specialization works.Amy: But we have this—it's probably more cultural. I don't want to pick, like, capitalism to beat on because this is really, like, human cultural thing, and it's not even really particularly Western. Is the idea that, like, “If I have an underclass, why would I give a shit what their experience is?” And this is why I say, like, ops teams, like, get out of here because most ops teams, the extant ops teams are still called ops, and a lot of them have been renamed SRE—but they still do the same job—are an underclass. And I don't mean that those people are below us. People are treated as an underclass, and they shouldn't be. Absolutely not.Corey: Yes.Amy: Because the idea is that, like, well, I'm a fancy person who writes code at my ivory tower, and then it all flows down, and those people, just faceless people, do the deployment stuff that's beneath me. That attitude is the most toxic thing, I think, in tech orgs to address. Like, if you're trying to be like, “Well, our liability is bad, we have security problems, people won't fix their code.” And go look around and you will find people that are treated as an underclass that are given codes thrown over the wall at them and then they just have to toil through and make it work. I've worked on that a number of times in my career.And I think just like saying, underclass, right, or caste system, is what I found is the most effective way to get people actually thinking about what the hell is going on here. Because most people are just, like, “Well, that's just the way things are. It's just how we've always done it. The developers write to code, then give it to the sysadmins. The sysadmins deploy the code. Isn't that how it always works?”Corey: You'd really like to hope, wouldn't you?Amy: [laugh]. Not me. [laugh].Corey: Again, the way I see it is, in theory—in theory—sysadmins, ops, or that should not exist. People should theoretically be able to write code as developers that just works, the end. And write it correct the first time and never have to change it again. Yeah. There's a reason that I always like to call staging environments in places I work ‘theory' because it works in theory, but not in production, and that is fundamentally the—like, that entire job role is the difference between theory and practice.Amy: Yeah, yeah. Well, I think that's the problem with it. We're already so disconnected from the physical world, right? Like, you and I right now are talking over multiple strands of glass and digital transcodings and things right now, right? Like, we are detached from the physical reality.You mentioned earlier working in data centers, right? The thing I miss about it is, like, the physicality of it. Like, actually, like, I held a server in my arms and put it in the rack and slid it into the rails. I plugged into power myself; I pushed the power button myself. There's a server there. I physically touched it.Developers who don't work in production, we talked about empathy and stuff, but really, I think the big problem is when they work out in their idea space and just writing code, they write the unit tests, if we're very lucky, they'll write a functional test, and then they hand that wad off to some poor ops group. They're detached from the reality of operations. It's not even about accountability; it's about experience. The ability to see all of the weird crap we deal with, right? You know, like, “Well, we pushed the code to that server, but there were three bit flips, so we had to do it again. And then the other server, the disk failed. And on the other server…” You know? [laugh].It's just, there's all this weird crap that happens, these systems are so complex that they're always doing something weird. And if you're a developer that just spends all day in your IDE, you don't get to see that. And I can't really be mad at those folks, as individuals, for not understanding our world. I figure out how to help them, and the best thing we've come up with so far is, like, well, we start giving this—some responsibility in a production environment so that they can learn that. People do that, again, is another one that can be done wrong, where it turns into kind of a forced empathy.I actually really hate that mode, where it's like, “We're forcing all the developers online whether they like it or not. On-call whether they like it or not because they have to learn this.” And it's like, you know, maybe slow your roll a little buddy because the stuff is actually hard to learn. Again, minimizing how hard ops work is. “Oh, we'll just put the developers on it. They'll figure it out, right? They're software engineers. They're probably smarter than you sysadmins.” Is the unstated thing when we do that, right? When we throw them in the pit and be like, “Yeah, they'll get it.” [laugh].Corey: And that was my problem [unintelligible 00:39:49] the interview stuff. It was in the write code on a whiteboard. It's, “Look, I understood how the system fundamentally worked under the hood.” Being able to power my way through to get to an outcome even in language I don't know, was sort of part and parcel of the job. But this idea of doing it in artificially constrained environment, in a language I'm not super familiar with, off the top of my head, it took me years to get to a point of being able to do it with a Bash script because who ever starts with an empty editor and starts getting to work in a lot of these scenarios? Especially in an ops role where we're not building something from scratch.Amy: That's the interesting thing, right? In the majority of tech work today—maybe 20 years ago, we did it more because we were literally building the internet we have today. But today, most of the engineers out there working—most of us working stiffs—are working on stuff that already exists. We're making small incremental changes, which is great that's what we're doing. And we're dealing with old code.Corey: We're gluing APIs together, and that's fine. Ugh. I really want to thank you for taking so much time to talk to me about how you see all these things. If people want to learn more about what you're up to, where's the best place to find you?Amy: I'm on Twitter every once in a while as @MissAmyTobey, M-I-S-S-A-M-Y-T-O-B-E-Y. I have a blog I don't write on enough. And there's a couple things on the Equinix Metal blog that I've written, so if you're looking for that. Otherwise, mainly Twitter.Corey: And those links will of course be in the [show notes 00:41:08]. Thank you so much for your time. I appreciate it.Amy: I had fun. Thank you.Corey: As did I. Amy Tobey, Senior Principal Engineer at Equinix. I'm Cloud Economist Corey Quinn, and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice, or on the YouTubes, smash the like and subscribe buttons, as the kids say. Whereas if you've hated this episode, same thing, five-star review all the platforms, smash the buttons, but also include an angry comment telling me that you're about to wind up subpoenaing a copy of my shell script because you're convinced that your intellectual property and secrets are buried within.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.Announcer: This has been a HumblePod production. Stay humble.