Coding Blocks

We dig into all things Python, which Allen thinks is pretty good, and it’s rise in popularity, while Michael and Joe go toe-to-toe over a gripe, ahem, feature.

We realize that you _can_ use your podcast player to read these notes, but if you didn’t know, this episode’s show notes can be found at https://www.codingblocks.net/episode152. Check it out and join the conversation.

Sponsors

  • Datadog –  Sign up today for a free 14 day trial and get a free Datadog t-shirt after creating your first dashboard.
  • DataStax – Sign up today to get $300 in credit with promo code CODINGBLOCKS and make something amazing with Cassandra on any cloud.
  • Linode – Sign up for $100 in free credit and simplify your infrastructure with Linode’s Linux virtual machines.

Survey Says

What's your favorite Python feature?

Take the survey at: https://www.codingblocks.net/episode152.

 

News

  • The Coding Blocks Game Jam 2021 results are in! (itch.io)
  • Our review page has been updated! (/review)
  • Ergonomic keyboard reviews:
    • Kinesis Advantage 2 Full Review after Heavy Usage (YouTube)
    • Ergonomic Keyboard Zergotech Freedom Full Review (YouTube)

Why Python?

A Brief History of Python. Very Brief.

  • Python is a general-purpose high-level programming language, which can be used to develop desktop GUI applications, websites, and apps that run on sophisticated algorithms.
  • Python was created in 1991, before JavaScript or Java, but didn’t make major leaps in popularity until 1998 – 2003, according to the Tiobe index.
    • Coincidentally, this lines up with the early days of Google, where they had a motto of “Python where we can, C++ where we must”.
  • In 2009, MIT switched from Scheme to Python, and others in academia followed.

Some Python Benefits, But Only Some

  • It’s an easy language for new developers as well as those who don’t consider themselves developers, such as data scientists or hobbyists, but have a need write some code.
  • Python has a great standard library when compared to languages like JavaScript that largely rely on third party libraries to provide depth in functionality.
  • It’s cross platform. As long as we’re talking OS.
    • Mobile? Not really, as that space is consumed with Swift, Java, and Objective-C. But with things like Pythonista, you can write and execute Python on mobile.
    • Web? No, at least not on the client side. That space is dominated by JavaScript. But with frameworks like Django and Flask, you can use Python on the server side.
  • In addition to the standard library, there are also many great/popular third party libraries, like NumPy, that are available on PyPi.

The Downsides to Python

  • Performance when compared to a natively compiled application because it’s a dynamic, interpreted language.
    • Which brings up the late binding type system.
  • The lack of mobile and web presence as previously mentioned.
  • Legacy issues when dealing with v2, which is still in use.
  • Language features that haven’t aged well, such as PEP-8.
  • Quirks like self, or __init__, private functionality, and immutability.

Resources We Like

  • The Python Programming Language (Tiobe)
  • Heavy usage of Python at Google (Stack Overflow)
  • The Incredible Growth of Python (Stack Overflow)
  • 2020 Developer Survey, Top Paying Technologies (Stack Overflow)
  • What makes Python more popular than Ruby? (Reddit)
  • 2020 Developer Survey, Most Loved, Dreaded, and Wanted (Stack Overflow)
  • Top 10 Python Packages For Machine Learning (ActiveState.com)
  • 56 Groundbreaking Python Open-source Projects – Get Started with Python (data-flair.training)
  • Top 10 Python Packages Every Developer Should Learn (ActiveState.com)
  • Choosing the right estimator aka the scikit-learn algorithm cheat-sheet (scikit-learn.org)
    • Previously discussed as a Tip of the Week during episode 92, Azure Functions and CosmosDB from MS Ignite (/episode92)
  • Introduction to Celery (docs.celeryproject.org)
  • Is it possible to compile a program written in Python? (Stack Overflow)
  • Pythonista 3 – A Full Python IDE for iOS (omz-software.com)
    • Previously discussed as a Tip of the Week during episode 88, What is Algorithmic Complexity? (/episode88)
  • Flask – Web development, one drop at a time (flask.palletsprojects.com)
  • Django – A high-level Python Web framework that encourages rapid development and clean, pragmatic design. (DjangoProject.com)
  • PyPi – The Python Package Index (PyPI) is a repository of software for the Python programming language. (pypi.org)
  • Ten Reasons To Use Python (cuelogic.com)
  • Top 10 Reasons Why Python is So Popular With Developers in 2021 (upgrad.com)
  • Python – 12. Virtual Environments and Packages (docs.python.org)
    • Python’s virtual environments have been mentioned as a Tip of the Week twice: first during episode 102, Why Date-ing is Hard and again during episode 140, The DevOps Handbook – Enabling Safe Deployments. (/episode102/episode140)
  • PEP 8 — Style Guide for Python Code (python.org)
  • The Gary Gnu Intro With Knock Knock – The Great Space Coaster (YouTube)
  • Datadog has a blog article for everything:
    • Tracing asynchronous Python code with Datadog APM (Datadog)
    • How to collect, customize, and centralize Python logs (Datadog)

Tip of the Week

  • It’s easy to get the last character of a string in Python: last_char = sample_str[-1]
  • Follow us on Twitch:
  • Install the Git cheat NPM module to use git cheat to easily see a Git cheat sheet in your terminal. (GitHub)
    • gcloud has a built-in cheat sheet. Use gcloud cheat-sheet to access it. (Google Cloud)
Direct download: coding-blocks-episode-152.mp3
Category:Software Development -- posted at: 8:01pm EDT

We step back to reflect on what we learned from our first game jam, while Joe’s bathroom is too close and Allen taught Michael something (again).

Stop squinting to read this via your device’s podcast player. This episode’s show notes can be found at https://www.codingblocks.net/episode151, where you can join the conversation.

Sponsors

  • Datadog –  Sign up today for a free 14 day trial and get a free Datadog t-shirt after creating your first dashboard.
  • DataStax – Sign up today to get $300 in credit with promo code CODINGBLOCKS and make something amazing with Cassandra on any cloud.
  • Linode – Sign up for $100 in free credit and simplify your infrastructure with Linode’s Linux virtual machines.

Survey Says

What is your favorite lesson learned from Game Jam?

Take the survey at: https://www.codingblocks.net/episode151.

News

  • We appreciate the new reviews, thank you!
    • iTunes: ddausdd
    • Audible: devops.rob
  • Kinesis Advantage 2 Full Review after Heavy Usage (YouTube)

Game Jam Tips

  • Aim for the browser and to be embedded.
  • Be careful sharing your custom URL when hosting somewhere other than the game jam as it splits your traffic and likely, your feedback.
  • Time management is super important.
    • Be realistic about how much time you have.
    • You’ll be tired by the end!
  • Start with the Game Loop.
  • Try to always be playable.
    • Aim small and prioritize the “must haves”.
  • Know what you want to learn.
  • Judge your game against what you can do.
  • Beware of graphics and animations! Inspiration is fine, but it can become a sinkhole.
    • Recall from the above tips about time management and focusing on a playable game.
  • Play into the theme. Or don’t.
  • Use tools, asset stores, and libraries, such as Tiled, PyGame, Photoshop, and/or Butler, to simplify your effort and make maximum use of your time.
  • Consider teamwork.
  • Borrowing ideas is fine.
  • Keep your “elevator pitch” in mind, and evolve it.
  • Publish early and save energy for playing.
    • Save time to write up your game’s description, take video/screenshots, etc. for the submission.
  • Keep your game testable by having a dev mode and/or the ability to initialize a certain game state.
  • Think about the player over and over and over. How do you teach them the game’s mechanics, physics, when the game is over, etc.
  • And again, save time and energy for publishing your game, as well as, playing and rating other’s games.

Resources We Like

  • The Coding Blocks Game Jam 2021 submissions (itch.io)

Tip of the Week

  • Sign up for a game jam! (itch.io)
  • Use -A number-B number, or -C number to include context with your next grep output. (gnu.org)
    • -A number will print number lines after the match.
    • -B number will print number lines before the match.
    • -C number will print number lines before and after the match.
  • Add your Git commit to your Docker images as a label like: docker build --tag 1.0.0.1 --label git-commit=$GIT_COMMIT .
    • Where $GIT_COMMIT might be something like:
      • GIT_COMMIT=$(git rev-parse HEAD) or GIT_COMMIT=$(git rev-parse --short HEAD) if you only want to use the abbreviated commit ID.
      • In Jenkins, you can use ${env.GIT_COMMIT} to get the current commit ID that the current build is building,
Direct download: coding-blocks-episode-151.mp3
Category:Software Development -- posted at: 8:01pm EDT

We discuss all things open-source, leaving Michael and Joe to hold down the fort while Allen is away, while Joe’s impersonations are spot on and Michael is on a first name basis, assuming he can pronounce it.

This episode of the Coding Blocks podcast is about the people and organizations behind open-source software. We talk about the different incentives behind projects, and their governance to see if we can understand our ecosystem better.

This episode’s show notes can be found at https://www.codingblocks.net/episode150, if you’re reading this via your podcast player.

Sponsors

  • Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after your first dashboard.
  • Linode – Sign up for $100 in free credit and simplify your infrastructure with Linode’s Linux virtual machines.

Survey Says

Which company has the best open source projects?

Take the survey at: https://www.codingblocks.net/episode150.

News

  • We appreciate the new reviews, thank you!
    • iTunes: @k_roll242, code turtle

Upcoming Events:

You Thought You Knew OSS

Q: What do most developers think about when they think of “open-source” software?

Q: Is the formal definition more important than the general perception?

Formal Definitions of Open-Source

  • opensource.org: Open source software is made by many people and distributed under an OSD-compliant license which grants all the rights to use, study, change, and share the software in modified and unmodified form. Software freedom is essential to enabling community development of open source software.
  • opensource.com: Open source commonly refers to software that uses an open development process and is licensed to include the source code

Pop Quiz, who created…?

  • C: Dennis Ritchie
  • Linux: Linus Torvolds
  • Curl: Daniel Sternberg
  • Python: Guido von Rossum
  • JavaScript: Brandon Eich (Netscape)
  • Node: Ryan Dahl
  • Java: James Gosling (Sun)
  • Git: Linus Torvalds
  • C#: Microsoft (Anders Hejlsberg)
  • Kubernetes: Google
  • Postgres: Michael Stonebraker
  • React: Facebook
  • Rust: Mozilla
  • Chromium: Google
  • Flutter: Google
  • TypeScript: Microsoft
  • Vue: Evan You

Q: It seems like most newer projects (with the exception of Vue) are associated with corporations or foundations. When and why did that change?

GitHub Star Distribution

Q: What are the most popular projects? Who were they made for, and why?

Who uses open-source software?

  • There are a lot of stats and surveys…none great
  • All surveys and stats agree that open-source is on the rise
  • You kinda can’t not use open-source software. Your OS, tools, networking hardware, etc all use copious amounts of open-souce software.

Individuals

  • Many (most) smaller libraries are written and maintained by individual authors, and have few or no contributors
  • Some large / important libraries have thousands of contributors
  • 10 most contributed GitHub projects in 2019
    • VS Code has almost 20k contributors
    • Flutter has 13k contributors
    • Kubernetes and Ansible have around 7k

Q: Why do individuals create open source? What do they get out of it?

Corporations

  • A lot of corporate “open source” that are utilities or tools for working with those companies (ie: Azure SDK)
  • Many open source projects are stewarded by a single company (Confluent, Elastic, MongoDB)
  • Many open source projects listed below are now run by a foundation

Let’s look at some of the most prominent projects that were started by corporations. Note: many of these projects came in through acquisitions, and many have since been donated to foundations.

Microsoft
Google
Facebook
Amazon
  • Well, lots of toolkits and sdks for AWS…
Oracle
Focused Corporations

Sometimes a company will either outright own, or otherwise build a business centered around a technology. These companies will typically offer services and support around open-source projects.

  • DataStax
  • Elasticsearch
  • Canonical
  • MongoDB

Q: Why do corporations publish open-source software? What do they get out of releasing projects?

Foundations

  • Foundations are organizations that own open-source projects
  • Foundations have many different kinds of governance models, but generally they are responsible for things like…
    • code stewardship (pull requests, versions, planning, contributors, lifecycle, support, certification*)
    • financial support (domains, hosting, marketing, grants)
    • legal issues (including protecting the contributors liability)
  • Most big open-source projects you can think of run under some sort of foundation
  • Typically they are funded by large corporate backers
  • There are a ton of foundations here. including many “one-offs”: https://opensource.com/resources/organizations ** WordPress Foundation, Python Foundation, Mozilla foundations
  • Foundations are run in a variety of ways, and for different reasons, some even offer many competing projects
  • https://opensource.guide/leadership-and-governance/ ** BDFL – Python, small projects, one person has final say ** “Meritocracy” (not a great term) – Active contributors are given decision making power, voting ** Liberal Contribution: Projects seek concensus rather than a pure vote, strive to be inclusive (Node, Rust)
Apache (1999)
Cloud Native Computing Foundation
  • Kubernetes, Helm, Prometheus, FluentD, Linkerd, OpenTracing
  • A whole bunch of others that start with a K

Linux Foundation

  • Linux Kernel
  • Kubernetes..? Ah, they’re over CNCF, and many, many, many other things
  • Let’s Encrypt, NodeJS (through the OpenJs Foundation)

Q: Why do corporations donate projects, why do individuals? Who really owns open-source code?

Resources We Like

Tip of the Week

Direct download: coding-blocks-episode-150.mp3
Category:Software Development -- posted at: 9:55pm EDT

We start off the year discussing our favorite developer tools of 2020, as Joe starts his traditions early, Allen is sly about his résumé updates, and Michael lives to stream.

For those that read the show notes via their podcast player and find themselves wondering where they can find these show notes on their computer, the answer is simple: https://www.codingblocks.net/episode149. Check it out and join the discussion.

Sponsors

  • Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after your first dashboard.

Survey Says

Which hand do you type the 6 key with?

Take the survey at: https://www.codingblocks.net/episode149.

News

  • Thank you for the new reviews we received this holiday!
    • iTunes: larsankile, 0xACE, Tbetcha33, The_Shrike_, shineycloud
  • Watch Joe speak at the virtual San Diego Elastic Meetup, Tuesday, January 19, 2021 at 5:00 PM PST, where he is talking about Easy Local Development with Elastic Cloud on Kubernetes using Skaffold.
  • Join our game jam January 21 – 24, 2021 and let’s make games!

The Top Tools of 2020

  • K9s – A terminal UI to interact with your Kubernetes cluster.
  • Popeye – A utility that scans a live Kubernetes cluster and reports potential issues with deployed resources and configurations.
  • All things JetBrains, especially IntelliJ IDEAPyCharm, and DataGrip. Amazing, cross-platform tools that developers from all tech stacks can use.
  • Skaffold – Handles the workflow for building, pushing, and deploying your application within Kubernetes, allowing you to focus on writing your code.
  • Kustomize – A template-free way to customize Kubernetes application configuration, built into kubectl.
  • Oh My Zsh – An open source, community-driven framework for managing your zsh configuration.
  • Netlify – Unites everything teams need to build and run dynamic web experiences, from preview to production, using an intuitive git-based workflow and a powerful serverless platform.
  • Jira StopWatch – A desktop tool for recording time spent on different Jira issues.
  • Lens – The Kubernetes IDE, Lens provides full situational awareness for everything that runs in Kubernetes, lowering the barrier of entry for those just getting started with Kubernetes, while radically improving productivity for the experienced users.
  • Zoom – Keeping you connected wherever you are. Hands down, the best video calling software out there for screen sharing; you can actually read the other person’s screen!
  • Prometheus – Power your metrics and alerting with a leading open-source monitoring solution.
  • Grafana – The world’s most popular technology used to compose observability dashboards.
  • Visual Studio Code – Code editing, redefined. Free and built on open source. Runs everywhere.
    • Favorite VS Code extensions:
      • Bracket Pair Colorizer – Matching brackets can be easily identified in color.
      • GitLens – Supercharges the Git capabilities built into Visual Studio Code.
      • Rainbow CSV – Highlight CSV files and run SQL-like queries.
  • Cmder – A software package created out of pure frustration over the absence of nice console emulators on Windows.
  • Unraid – Take control of your data, media, applications, and desktops, using just about any combination of hardware.

Resources We Like

  • Streaming: Debugging C# in Kubernetes and Skaffold vs Kustomize (YouTube)

Tip of the Week

  • Challenging projects every programmer should try (utk.edu)
  • More challenging projects every programmer should try (utk.edu)
  • Duck DNS – A free dynamic DNS hosted on AWS (duckdns.org)
    • Honorable DNS mentions:
      • 8.8.8.8/8.8.4.4 – Google Public DNS (Wikipedia)
      • 9.9.9.9/9.9.9.10/9.9.9.11 – Quad9 (Wikipedia)
      • 1.1.1.1/1.1.1.2/1.1.1.3 – Cloudflare’s DNS (Wikipedia)
  • MIT’s Missing Semester of CS Education:
    • The Missing Semester of Your CS Education (mit.edu)
    • Missing Semester IAP 2020 (YouTube)
    • 2020 Lectures (mit.edu)
Direct download: coding-blocks-episode-149.mp3
Category:Software Development -- posted at: 8:01pm EDT

It’s the end of 2020. We’re all tired. So we phone it in for the last episode of the year as we discuss the State of the Octoverse, while Michael prepared for the wrong show (again), Allen forgot to pay his ISP bill and Joe’s game finished downloading.

In case you’re wondering where you can find these show notes in all there 1:1 pixel digital glory because you’re reading them via your podcast app, you can find them at https://www.codingblocks.net/episode148, where you can also join the conversation.

Sponsors

  • Educative.io – Learn in-demand tech skills with hands-on courses using live developer environments. Visit educative.io/codingblocks to get an additional 10% off an Educative Unlimited annual subscription.
  • xMatters – Sign up today to learn how to take control of your incident management workflow and get a free xMatters t-shirt.

Survey Says

What's your favorite Christmas movie?

Take the survey at: https://www.codingblocks.net/episode148.

News

  • Joe will be speaking at the virtual San Diego Elastic Meetup, Tuesday, January 19, 2021 at 5:00 PM PST, talking about Easy Local Development with Elastic Cloud on Kubernetes using Skaffold.
  • We’re hosting a game jam January 21 – 24, 2021 – let’s make games!
    • Follow all of our upcoming events! (/events)
  • Watch and learn with Joe and Michael as they dive into Kubernetes:
    • Local Kubernetes dev with Helm and Skaffold (YouTube)
    • Streaming: Debugging C# in Kubernetes and Skaffold vs Kustomize (YouTube)

Resources We Like

Tip of the Week

  • K9s, a terminal UI to interact with your Kubernetes clusters (GitHub)
  • Popeye, a utility that scans a live Kubernetes cluster and reports potential issues with deployed resources and configurations. (popeyecli.io)
  • IPython, a powerful interactive shell and so much more. (ipython.org)
  • The Google Authenticator app now makes it super easy to export your two factor settings to another device. (App StoreGoogle Play)
  • Dungeon Map Doodler, a free drawing tool that allows you to easily create maps for all your gaming needs. (dungeonmapdoodler.com)
Direct download: coding-blocks-episode-148.mp3
Category:Software Development -- posted at: 8:01pm EDT

We discuss the things we’re excited about for 2021 as Michael prepared for a different show, Joe can’t stop looking at himself, and Allen gets paid by the tip of the week.

For those that aren’t in the know, these show notes can be found at https://www.codingblocks.net/episode147. Stop by and join the conversation.

Sponsors

  • Command Line Heroes – A podcast that tells the epic true tales of developers, programmers, hackers, geeks, and open source rebels who are revolutionizing the technology landscape.
  • Educative.io – Learn in-demand tech skills with hands-on courses using live developer environments. Visit educative.io/codingblocks to get an additional 10% off an Educative Unlimited annual subscription.
  • xMatters – Sign up today to learn how to take control of your incident management workflow and get a free xMatters t-shirt.

Survey Says

What are the least amount of bits (or smallest data type) your annual salary, in whole dollars, could fit in?

Take the survey at: https://www.codingblocks.net/episode147.

News

Who’s Excited about What

  • Joe
    • Interactive online/streaming events
    • DevOps and SRE technologies
    • Python
    • Game development
  • Allen
    • .NET 5
    • DevOps technologies
    • Kubernetes
    • Game Jams
    • Big Data
    • Video content creation
    • Presentations
    • IoT
    • Machine Learning
  • Michael
    • Kubernetes all the things
    • Kotlin

Resources We Like

Must Buys

Price Description  
$17.99 Kasa Smart HS220 Dimmer Switch by TP-Link (AmazonBest Buy)
$17.46 Real-World Machine Learning (Amazon)



Tip of the Week

  • Manning Publications has a lot of their books available in audio form on Audible.
  • Top 9 companies that are hiring software engineers to work remotely (HackReactor.com)
  • iTerm2 – A terminal emulator for macOS that does amazing things. (item2.com)
    • Use CMD+SHIFT+. to edit the command being pasted before running it.
  • Some helpful tips for the holiday season:
    • Capital One Shopping: Save in seconds (chrome web store)
    • Automatically find and apply coupon codes with Honey. (chrome web store)
    • Use PayPal Key as a virtual credit card to use your PayPal account anywhere credit cards are accepted. (PayPal)
      • Use Privacy to create single or limited use credit cards (privacy.com)
  • Port forward services from your Kubernetes cluster for external access to debug and test, like kubectl port-forward svc/svc-name 7000:8000.
    • Use Port Forwarding to Access Applications in a Cluster (kubernetes.io)
Direct download: coding-blocks-episode-147.mp3
Category:Software Development -- posted at: 8:01pm EDT

We learn all the necessary details to get into the world of developer game jams, while Michael triggers all parents, Allen’s moment of silence is oddly loud, and Joe hones his inner Steve Jobs.

If you’re reading these show notes via your podcast player and wondering where you can find them in your browser, well wonder no more. These show notes can be found at https://www.codingblocks.net/episode146 in all their 8-bit glory. Check it out and join the conversation.

Sponsors

  • Educative.io – Learn in-demand tech skills with hands-on courses using live developer environments. Visit educative.io/codingblocks to get an additional 10% off an Educative Unlimited annual subscription.
  • xMatters – Sign up today to learn how to take control of your incident management workflow and get a free xMatters t-shirt.
  • Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after your first dashboard.

Survey Says

What kind of game do you want to make?

News

  • Thank you to everyone that left us a new review!
    • iTunes: AbhishekN12, shkpstrbtorurn, Herkamer’s dad, Bamers22
    • Stitcher: Pour one out for Stitcher reviews, as sadly, they no longer have them. 8(
  • Follow our upcoming events! (/events)
  • Unlimited Google Photos’ … for a limited time. (blog.google)
  • Woo-hoo! We cracked the top 15 in the Apple Podcasts Technology category somehow!

Is Game Dev your Jam?

What are Game Jams?

  • A timed challenged to create and publish games.
  • Similar to a musical jam, people bring in their own perspectives and skills, and making new stuff for the world
  • Did you know there is an International Game Jam conference?
  • When’s the next game jam?

Popular Game Jams

  • Ludum Dare (ldjam.com)
    • An online event where games are made from scratch in a weekend. Check it out every April and October!
  • Global Game Jam (https://globalgamejam.org)
    • Empowers individuals worldwide to learn, experiment, and create together through the medium of games.
    • January 2020, they had 934 locations in 118 countries create 9,601 games in one weekend!
    • GGJ 2021 is scheduled for January 29-31, 2021.
  • 7DRL (7drl.com)
    • The 7DRL Challenges are NOT about being a fast coder, but rather proving you can release a finished, playable roguelike to the world.
  • itch.io (itch.io)
    • itch.io is a simple way to find and share indie games online for free.
    • GMTK is 48hours, with 18k entrants.
    • Anyone can instantly create and host a jam.
    • 109,365 games have been created for jams hosted on itch.io.

Why Should You do a Game Jam?

  • Meet new people, see how they solved similar problems.
  • Learn something new.
  • Maybe you’ll love it?
  • Great for your GitHub, blog, Twitch, etc. content.
  • Maybe make millions of $$$.
    • Step 1. enter game jam,
    • Step 2. … something about making a game …, and
    • Step 3. profit!

How can you Game Jam?

  • Check Indie Game Jams for a jam that interests you.
  • No need to take time off, just do what you can.
  • You can even make your own jams.

Popular Tools

  • Unity
  • Unreal
  • Godot
  • Game Maker
  • RPG Maker
  • App Game Kit

Resources We Like

Tip of the Week

  • Some places to learn python (pyatl.dev)
  • JSONPath StatusBar (marketplace.visualstudio.com)
  • An awesome curated list of chaos engineering resources (GitHub)
  • Ultra portable 13″ laptops that Michael has his eye one:
Mentioned on-air
  Description Starting Price
Dell XPS 13 Developer Edition (Dell) $1,049.00
Razer Blade Stealth 13 (Best Buy) online/clearance at $1,299.99 (seen for less in the store)
Razer Book 13 (Razer) $1,199.99


Honorable (and/or forgotten) mentions
Starting Price Description  
$999.00 Samsung Galaxy Book Flex 13.3″ (Amazon)
$999.99 Apple MacBook Air 13.3″ with Apple M1 Chip (Amazon)
Direct download: coding-blocks-episode-146.mp3
Category:Software Development -- posted at: 8:01pm EDT

We wrap up our deep dive into The DevOps Handbook, while Allen ruined Halloween, Joe isn’t listening, and Michael failed to… forget it, it doesn’t even matter.

If you’re reading this via your podcast player, this episode’s full show notes can be found at https://www.codingblocks.net/episode145 where you can join the conversation, as well find past episode’s show notes.

Sponsors

  • Command Line Heroes – A podcast that tells the epic true tales of developers, programmers, hackers, geeks, and open source rebels who are revolutionizing the technology landscape.
  • Educative.io – Learn in-demand tech skills with hands-on courses using live developer environments. Visit educative.io/codingblocks to get an additional 10% off an Educative Unlimited annual subscription.
  • xMatters – Sign up today to learn how to take control of your incident management workflow and get a free xMatters t-shirt.

Survey Says

How often _should_ you update your resume?
How often _do_ you update your resume?

Take the surveys at: https://www.codingblocks.net/episode145.

News

  • Thank you to everyone that left us a new review!
    • iTunes: AbhishekN12, Streichholzschächtelchen Mann
    • Stitcher: emirdev
  • Zoom introduces the Podtrak P8. (zoomcorp.com)

Wrapping up The Third Way

Use Chat Rooms and Bots to Automate and Capture Organizational Knowledge

  • Chat rooms have been increasingly used for triggering actions.
    • One of the first to do this was ChatOps at GitHub. By integrating automation tools within the chat, it was easy for people to see exactly how things were done.
  • Everyone sees what’s happening.
  • Onboarding is nice because people can look through the history and see how things work.
  • This helps enable fast organizational learning.
  • Another benefit is that typically chat rooms are public. so it creates an environment of transparency.
  • One of the more beneficial outcomes was that ops engineers were able to discover problems quickly and help each other out more easily.

“Even when you’re new to the team, you can look in the chat logs and see how everything is done. It’s as if you were pair-programming with them all the time.”

Jesse Newland

Automate Standardized Processes in Software for Re-Use

  • Often times developers document things in wikis, SharePoint systems, word documents, excel documents, etc., but other developers aren’t aware these documents exist so they do things a different way, and you end up with a bunch of disparate implementations.
  • The solution is to put these processes and standards into executable code stored in a repository.

Create a Single, Shared Source Code Repository for Your Entire Organization

  • This single repository enables quick of sharing amongst an entire organization.
  • In 2015, Google had a single repository with over 1 billion files over 2 billion lines of code. This single repository is used by every software engineer and every product.
    • This repository doesn’t just include code, but also:
      • Configuration standards for libraries, infrastructure and environments like Chef, Ansible, etc.,
      • Deployment tools,
      • Testing standards and tools as well as security,
      • Deployment pipeline tools,
      • Monitoring and analysis tools, and
      • Tutorials and standards.
    • Whenever a commit goes in, everything is built from code in the shared repo: no dynamic linking. This ensures everything works with the latest code in the repository.
    • By building everything off a single source tree, Google eliminates the problems you encounter when you use external dependency management systems like Artifactory, Nuget, etc.

Spread Knowledge by Using Automated Tests as Documentation and Communities of Practice

  • Sharing libraries throughout an organization means you need a good way of sharing expertise and improvements.
    • Automated tests are a great way to ensure things work with new commits and they are self-documenting.
    • TDD turns tests into up-to-date specifications of a system.
      • Want to know how to use the library? Take a look at the test suites.
  • Ideally you want to have one group responsible for owning and supporting a library.
    • Ideally you only ever have one version of that code out in production. It will contain the current best collaborative knowledge of the organization.
    • The owner is also responsible for migrating each consumer of the library to the next version.
    • This requires the consumers to have a good suite of automated testing as well.
  • Another great use of chat rooms is to have one for each library.

Design for Operations Through Codified Non-Functional Requirements

  • When developers are responsible for incident response in their deployed applications, their applications become better designed for operations.
  • As developers are involved in non-functional requirements, we design our systems for faster deployment, better reliability, the ability to detect problems, and allow for graceful degradation.
  • Some of these non-functionals are:
    • Production telemetry,
    • Ability to track dependencies,
    • Resilient and gracefully degrading services,
    • Forward and backward compatibility between versions,
    • Ability to archive data to reduce size requirements,
    • Ability to search and understand log messages,
    • Ability to trace requests through multiple services, and
    • Centralized runtime configurations.

Build Reusable Operations User Stories into Development

  • When there is ops works that needs to be done but can’t be fully automated, we need to make them as repeatable and deterministic as we can.
    • Automate as much as possible.
    • Document the rest for operations.
  • Automation for handoffs is also helpful.
  • By having these workflows and handoffs in place, it’s easier to measure and forecast future needs and ETAs.

Ensure Technology Choices Help Achieve Organizational Goals

  • Any technology introduced, introduces more pressure on operations for support.
  • If operations cannot support it, then the group that owns the service or library becomes a bottleneck, which could be a major problem.
  • Always be identifying technologies that appear to be the problem areas. Maybe they:
    • Slow the flow of work,
    • Create high levels of unplanned work (i.e. fire fighting),
    • Unbalanced number of support requests, and/or
    • Don’t really meet organizational goals, such as stability, throughput, etc.
  • This doesn’t mean don’t use new technologies or languages, but know that your level of support greatly diminishes as you go into uncharted territories.

Reserve time to Create Organizational Learning and Improvement

  • Dedicate time over several days to attack and resolve a particular problem or issue.
  • Use people outside the process to assist those inside the process.
  • The most intense methodology is a 30 day focus group with coaches and engineers that focus on solving real company problems.
    • Not uncommon to solve in days what used to take months

Institutionalize Rituals to Pay Down Technical Debt

  • Schedule time, a few days, a week, whatever, to fix problems you care about. No feature work allowed.
  • Could be code problems, environment, configuration, etc.
  • Usually want to include people from different teams working together, i.e. operations, developers, InfoSec, etc.
  • Present accomplishments at the end of the blitz

Enable Everyone to Teach and Learn

  • Everyone should be encouraged to teach and learn in their own ways.
  • It’s becoming more important than ever for folks to have knowledge in more than just one area to be successful.
  • Encourage cross functional pollination, i.e. have operations show developers how they do something, or vice versa.

Share Your Experiences from DevOps Conferences

  • Organizations should encourage their employees to attend and/or speak at conferences.
  • Hold your own company conference, even if it’s just for your small team.

Create Internal Consulting and Coaches to Spread Practices

  • Encourage your SME’s to have office hours where they’ll answer technical questions.
  • Create groups with missions to help the organization move forward.

Resources We Like

  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations (Amazon)
  • The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win (Amazon)
  • The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data (Amazon)
  • Comparing Git Workflows (episode 90)
  • Git Large File Storage (GitHub)
  • Devopsdays (devopsdays.org)
  • DevOps: Job Title or Job Responsibility? (episode 118)

Tip of the Week

  • Diff syntax highlighting in Github Markdown (Stack Overflow)
  • Code Chefs – Hungry Web Developer Podcast (Apple Podcasts)
  • Maria, a coding environment for beginners (maria.cloud)
  • CodeWorld, create drawings, animations, and games using math, shapes, colors, and transformations. (code.world)
  • Generation numbers and preconditions – Apply preconditions to guarantee atomicity of multi-step transactions with object generation numbers to uniquely identify data resources. (cloud.google.com)
  • helm search repo – Search repositories for a keyboard in charts. (helm.sh)
  • Use -cur_console:p5 in your cmder WSL profile to ensure that the arrow keys work as expected on Windows 10 (GitHub)
    • cmder – A portable console emulator for Windows (cmder.net)
Direct download: coding-blocks-episode-145.mp3
Category:Software Development -- posted at: 9:21pm EDT

It’s our favorite time of year where we discuss all of the new ways we can spend our money in time for the holidays, as Allen forgets a crucial part, Michael has “neons”, and Joe has a pet bear.

Reading this via your podcast player? If so, you can find this episode’s full show notes at https://www.codingblocks.net/episode144, where you can join the conversation.

Sponsors

  • Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after your first dashboard.
  • Teamistry – A podcast that tells the stories of teams who work together in new and unexpected ways, to achieve remarkable things.

Survey Says

Which do you want the most?

Take the survey at: https://www.codingblocks.net/episode144.

News

  • Thank you for the latest new review!
    • Stitcher: wsha

And I’m Spent

Allen’s List for the Content Creators

Price Description  
$149.99 Elgato Stream Deck (Amazon)
$69.99 TDisplay Capture Card (Amazon)
$329.00 Oktava MK-012 Small Diaphragm Condenser mic (Amazon)
$199.99 Zoom Podtrak P4 (Best Buy)
$7.00 Oktava WS-012 foam Wind-Screen for MK-012 (Amazon)
$16.99 LYRCRO Microphone Shock Mount Holder (Amazon)
$274.99 product (TechSmith)
$26.99 Kasa Smart Plugs 4 Pack (Amazon)
$14.99 3 prong extension cables 1′ (Amazon)
$29.99 Toazoe Articulating 11″ Arm (Amazon)
$12.99 Mounting pole (Amazon)
$14.99 Desk mounting bracket for pole (Amazon)
$199.99 Elgato Key Light (Amazon)
$90.00 Aputure Amaran MC RGBWW (Amazon)
$186.20 Silverstone ATX CS380B (Amazon)
$139.99 Ryzen 5 3400G (Amazon)
$99.99 Silicon Power 32GB 3200Mhz (Amazon)
$217.99 WD Easy Store 12TB (Amazon)
$44.99 Thermaltake 500w 80+ (Amazon)
$365.00 ZSA Moonlander (ZSA)



Michael’s List to Pimp Your Desk

  Description Price
Apple iPad Pro (12.9-inch, WiFi, 256GB) (Amazon) $1,079.00
amFilm (2 Pack) Glass Screen Protector for iPad Pro 12.9 inch (2020 & 2018 Models) (Amazon) $12.99
ProCase iPad Pro 12.9 Case 4th Generation 2020 & 2018 (Amazon) $21.99
Apple AirPods with Charging Case (Wired) (Amazon) $129.00
Honorable mention: Apple AirPods Pro (Amazon) $219.00
Philips Hue 555334 BLE Lightstrip LED Light strip, 2m / 6ft Base Kit (Amazon) $79.99
Philips Hue Indoor Motion Sensor for Smart Lights (Amazon) $38.95
Elgato Stream Deck (15 Keys) (Amazon) $149.99
Knox Microphone Shock Mount for Audio-Technica ATR2100-USB and Samson Q2U (Amazon) $19.99
On-Stage Foam Ball-Type Microphone Windscreen (Amazon) $2.99
ZSA Moonlander (ZSA) $365.00
Glorious 3XL Extended Gaming Mouse Mat/Pad (Amazon) $49.99
Razer Gaming Mouse Bungee v2 (Amazon) $19.99
ALIENWARE AW3420DW Curved 34 Inch WQHD 3440 X 1440 120Hz Monitor (Amazon) $1,029.99
Honorable mention:Dell AW3418DW Alienware 34 Curved Gaming Monitor (Amazon) n/a
Microsoft Xbox Series X (Amazon) $499.99



Castle Grayskull …

  Description Price
Tilted Nation RGB Headset Stand and Gaming Headphone Display with Mouse Bungee Cord Holder with USB 3.0 HUB (Amazon) n/a



Joe’s List to Make Bank

Well, first there’s *the* chair …

Price Description  
$3,299.00 Cluvens Scorpion Computer Cockpit (Cluvens)



  • Flippa – Buy an online business, become an acquisition entrepreneur, and invest in digital real estate.
  • Start Engine – Invest and buy shares in startups and small businesses.
  • (DEFUNCT) Gratipay – An open source startup helping open source projects.
  • Liberapay – A recurrent donations platform. Fund the creators and projects you appreciate.
  • Wefunder – Back founders solving the problems you care about and help their startups grow.
  • Crowdfunder – Where entrepreneurs and investors meet.
  • Fundrise – The future of real estate investing.
  • Localstake – Connecting businesses and local investors.
  • SeedInvest – Own a piece of your favorite startups.

Resources We Like

  • Indoor Boom Microphones: Oktava MK-012, RODE NT5, Audio Technica AT4053b (YouTube)
  • The Aputure MC Video LED Light is Amazing! (YouTube)

Tip of the Week

  • The Docker image for Google Cloud SDK is the easiest way to interact with the Google cloud. (hub.docker.com)
  • Play Hades. Play it now. (Steam)
  • Use git log --reverse to see the repo history from the beginning. (git-scm.com)
Direct download: coding-blocks-episode-144.mp3
Category:Software Development -- posted at: 9:09pm EDT

We dive into the benefits of enabling daily learning into our processes, while it's egregiously late for Joe, Michael's impersonation is awful, and Allen's speech is degrading.

This episode’s show notes can be found at https://www.codingblocks.net/episode143, for those reading this via their podcast player, where you can join the conversation.

Sponsors

  • Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after your first dashboard.
  • Teamistry – A podcast that tells the stories of teams who work together in new and unexpected ways, to achieve remarkable things.

Survey Says

How often do you change jobs?

Take the survey at: https://www.codingblocks.net/episode143.

News

  • Thank you to everyone that left us a new review!
    • iTunes: John Roland, Shefodorf, DevCT, Flemon001, ryanjcaldwell, Aceium
    • Stitcher: Helia
  • Allen saves your butt with his latest chair review on YouTube.

Enable and Inject Learning into Daily Work

  • To work on complex systems effectively and safely we must get good at:
    • Detecting problems,
    • Solving problems, and
    • Multiplying the effects by sharing the solutions within the organization.
  • The key is treating failures as an opportunity to learn rather than an opportunity to punish.

Establish a Just, Learning Culture

  • By promoting a culture where errors are “just” it encourages learning ways to remove and prevent those errors.
  • On the contrary, an “unjust” culture, promotes bureaucracy, evasion, and self-protection.
    • This is how most companies and management work, i.e. put processes in place to prevent and eliminate the possibility of errors.
  • Rather than blaming individuals, take moments when things go wrong as an opportunity to learn and improve the systems that will inevitably have problems.
    • Not only does this improve the organization’s systems, it also strengthens relationships between team members.
  • When developers do cause an error and are encouraged to share the details of the errors and how to fix them, it ultimately benefits everyone as the fear of consequences are lowered and solutions on ensuring that particular problem isn’t encountered again increase.

Blameless Post Mortem

  • Create timelines and collect details from many perspectives.
  • Empower engineers to provide details of how they may have contributed to the failures.
  • Encourage those who did make the mistakes to share those with the organization and how to avoid those mistakes in the future.
  • Don’t dwell on hindsight, i.e. the coulda, woulda, and shoulda comments.
  • Propose countermeasures to ensure similar failures don’t occur in the future and schedule a date to complete those countermeasures.

Stakeholders that should be present at these meetings

  • People who were a part of making the decisions that caused the problem.
  • People who found the problem.
  • People who responded to the problem.
  • People who diagnosed the problem.
  • People who were affected by the problem.
  • Anyone who might want to attend the meeting.

The meeting

  • Must be rigorous about recording the details during the process of finding, diagnosing, and fixing, etc.
  • Disallow phrases like “could have” or “should have” because they are counterproductive.
  • Reserve enough time to brainstorm countermeasures to implement.
    • These must be prioritized and given a timeline for implementation.
  • Publish the learnings and timelines, etc. from the meeting so the entire organization can gain from them.

Finding more Failures as Time Moves on

  • As you get better at resolving egregious errors, the errors become more subtle and you need to modify your tolerances to find weaker signals indicating errors.
  • Treat applications as experiments where everything is analyzed, rather than stringent compliance and standardization.

Redefine Failure and Encourage Calculated Risk Taking

  • Create a culture where people are comfortable with surfacing and learning from failures.
  • It seems counter-intuitive, but by allowing more failures this also means that you’re moving the ball forward.

Inject Production Failures

  • The purpose is to make sure failures can happen in controlled ways.
    • We should think about making our systems crash in a way that keeps the key components protected as much as possible i.e. graceful degradation.

Use Game Days to Rehearse Failures

“A service is not really tested until we break it in production.”

Jesse Robbins
  • Introduce large-scale fault injection across your critical systems.
  • These gamedays are scheduled with a goal, like maybe losing connectivity to a data center.
    • This gives everyone time to prepare for what would need to be done to make sure the system still functions, failovers, monitoring, etc.
    • Take notes of anything that goes wrong, find, fix, and retest.
  • On gameday, force an outage.
    • This exposes things you may have missed, not anticipated, etc.
    • Obviously the goal is to create more resilient systems.

Resources We Like

  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations (Amazon)
  • The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win (Amazon)
  • The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data (Amazon)
  • Netflix Chaos Monkey (GitHub)
  • Chaos Mesh, a cloud-native platform that orchestrates chaos on Kubernetes environments. (GitHub)
  • Alexey Golub’s Twitter response (thread) to our discussion of his article Unit Testing is Overrated during episode 141.
  • Esty’s post mortem tracker: morgue (GitHub)
  • 1987 Crash Test Dummies PSA – Buckle Up (YouTube)

Tip of the Week

  • Firefox Relay – Hide your real email address to help protect your identity (relay.firefox.com)
  • How I Built this with Guy Raz – Khan Academy: Sal Khan (NPR)
  • Automate your world at the push of a button with the Elgato Stream Deck. (Elgato)
  • /the social dilemma – A hybrid documentary-drama that explores the dangerous human impact of social networking. (Netflix)
  • Migrate your repos from TFVC (aka Team Foundation Version Control) to Git using git-tfs. (GitHub)
  • What’s the difference between git-tf and git-tfs? (Stack Overflow)
Direct download: coding-blocks-episode-143.mp3
Category:Software Development -- posted at: 8:01pm EDT