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

1