Month summary - July 2022

Posted by Tobiasz Kedzierski on 31.07.2022

July 2022

I am aggregating here some more or less interesting stuff of various IT related materials which I came across this month. Some of them are strictly related to the things I did or am currently doing.

Some thoughts

My repository with deployment Django on Google Cloud Platform [GCP] was published in PyCoders weekly #532 and in Django Newsletter #135. How awesome is that! :)

I also added infra described in Terraform for setting up Open ID Connect authorization for GitHub Actions and GCP to my repository dedicated to this topic.

The talk Making Badass Developers and blog post The Ferrari problem made me realize how important it is to minimize the impact of not important or less important things in our lives. We should not burn our limited brain capacity to make some trivial choices like choosing t-shirt to wear today. This is of course a very trivial example but goes to the point of scarcity of computing power. Apparently I already got rid of the t-shirt problem since 98% of my t-shirts are plain black -> no choice -> no problem.

Articles

Why new Macs break your Docker build, and how to fix it

Tt can be a little confusing when you try to build your Python-based Dockerfile on a new Mac, and everything starts failing. What used to work before—on an older Mac, or on a Linux machine—fails in completely unexpected ways.

3 Design Patterns Every Developer Should Learn

Design patterns are high-level answers to problems that we as software engineers encounter frequently. It isn’t code — I repeat, IT IS NOT CODE. It’s akin to explaining how to approach these issues and come up with a solution.

Shipping to Production

How you ship your code to production in a way that is fast and reliable, is a question more engineers and engineering leaders should educate themselves on. The teams and companies that can do both – ship quickly / frequently and with good quality – have a big advantage over competitors who struggle with either constraint.

10 Books Every Senior Engineer Should Read

Engineers are natural readers. They take enormous pleasure in learning about new things, and books are the perfect medium to cover complex ideas in depth.

Monitoring tiny web services

I’m not going to talk about how to monitor Big Serious Mission Critical websites at all, only tiny unimportant websites.

Morning thinking practice

A daily thinking practice that has made a tremendous impact on my life in the past 2.5y.

  • Vasili Shynkarenka

The Ferrari problem

.Don’t push the pedal to the metal on problems that don’t matter.

  • Vasili Shynkarenka

Luke Smith: The hardest technical solutions are right in front of your face

Since I was recently doing tutorials on Hugo, a static site generator, it’s funny to think that through the 90’s, no one really thought to invent a computationally simple static-site generator as they exist now. People moved pretty much directly from manually edditing HTML files manually into massive proprietary WYSIWYG editors and web “frameworks” that regenerate web pages on every single visit.

This lack of vision and inability to see the simpler solution has largely produced the slow-loading, content-minimal web of today and the bizarre culture of modern “webdevs” whose diets consist in anti-patterns.

Tuple’s Pair Programming Guide

Tips, tutorials, and resources for thoughtful pair programmers.

How Docker broke in half

The game changing container company is a shell of its former self. What happened to one of the hottest enterprise technology businesses of the cloud era?

12 Ways to Improve Your Monolith Before Transitioning to Microservices

A word of advice: don’t write off the monolith just yet. With some preparation, it can serve you well all the way through the transition. Here are 12 tips for making the transition to microservices as smooth as possible.

Workplaces are not for thinking

Cognitive learning basically means the same thing as “thinking,” and thinking is pretty much dead in the river at most companies.

What if work had mandatory “Stop And Think” periods?

It’s just a 20-minute stop. You stop working and go talk to people, go walk around and stretch, go play some ping-pong, maybe if it’s Friday you grab a beer from the office fridge, whatever. You just stop and disconnect, and then you reconnect. Simple.

Python

6 Usage Patterns for the ThreadPoolExecutor in Python

You can adopt one of the common usage patterns to get the most out of the ThreadPoolExecutor in Python.

Don't let dicts spoil your code

How often do your simple prototypes or ad-hoc scripts turn into fully-fledged applications?

The simplicity of organic code growth has a flip side: it becomes too hard to maintain. The proliferation of dicts as primary data structures is a clear signal of tech debt in your code. Fortunately, modern Python provides many viable alternatives to plain dicts.

Apache Airflow in 2022: 10 Rules to Make It Work

Airflow is by default very permissive and without strict rules you are likely to fail in your pipeline stack implementation.

Design by Contract in Python

Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software. It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions and invariants.

wikipedia.org (Design by Contract)

Yes, I have opinions on your open source contributions

Recently the Python Package Index announced that they will be implementing new account-security policies, and hoo boy are some people ever worked up about it. This has already escalated to the author of at least one high-download-count package — one which was a dependency of pytest, thus likely to break a lot of people’s testing and CI right as the weekend started, always nice — deleting their package from PyPI out of anger and announcing they intend to stop maintaining it, though it has now, at the author’s request, been restored by the PyPI maintainers.

Organize Python code like a PRO

For every minute spent in organizing, an hour is earned. by Benjamin Franklin

It’s Time to Say Goodbye to These Obsolete Python Libraries

Forget about os.path, random, pytz, namedtuple and more and start using the latest and greatest Python libraries.

Django

How to Run a Django Migration “By Hand”

In this post we’ll cover the process for running a migration by hand, and adapting it to reversing migrations.

Six things I do every time I start a Django project

I start a lot of projects. A lot! Django is my go-to framework for spinning up a quick personal project, and while it's a fantastic framework, a big part of the reason I love Django is that it feels familiar.

How to learn Django for free in 2022

Learn Django for free with my list of recommended resources for all levels.

Python libraries

TomSchimansky/CustomTkinter

A modern and customizable python UI-library based on Tkinter.

everythingishacked/CheekyKeys

Use Python, OpenCV, and MediaPipe to control a keyboard with facial gestures.

Django libraries

django-rich-logging

A prettier way to see Django requests while developing.

Go

Golang Example

A nice collection of often useful examples done in Golang.

Tools

kindle2notion

Export all clippings from your Kindle device to a database in Notion.

Cloud

CI/CD for GKE using Cloud Deploy

This tutorial will guide you through creating a CI/CD Pipeline on the Google Cloud Platform using Cloud Build and Cloud Deploy.

Preparing for success with the GCP Professional Cloud Network Engineer Exam

If you are interested in learning networking on Google Cloud, then the Google Professional Cloud Network Engineer certification is the right challenge for you. The exam covers a lot of the core areas of networking in GCP and is rigorous enough to keep you thinking.

Authentication between microservices: Is it really that hard?

A microservice architecture is all about services that invoke each other. But how do you keep that secure, making sure that only your own services can call each of your services? How do you authenticate?

Serverless Spark ETL Pipeline Orchestrated by Airflow on GCP

In this article, I will discuss how a Spark ETL pipeline can be executed in a completely serverless mode on GCP.

3 DevOps Courses You Need in 2022

These courses will make you a beast in DevOps if you’re willing to take a challenge.

Why I definitively switched from Cloud Functions to Cloud Run

On Google Cloud, Cloud Functions is (was?) one of the most popular services to deploy a simple piece of code in HTTP mode or in Background mode (answer to events, like PubSub messages or Cloud Storage events).

However, the introduction of Cloud Run in 2019 and the very fast and very good feature additions to the product lead me to reconsider the use of Cloud Functions and, slowly, lead me to abandon it.

Eventarc - Google Cloud Platform

Eventarc lets you asynchronously deliver events from Google services, SaaS, and your own apps using loosely coupled services that react to state changes. Eventarc requires no infrastructure management — you can optimize productivity and costs while building a modern, event-driven solution.

Other stuff

Every Programmer Should Know

A collection of (mostly) technical things every software developer should know about.

Podcasts

The Untold Stories of Open Source - The Business Side of Open Source, with Patrick Debois

The first time Patrick Debois came into contact with Open Source was in the early stages of development of the Linux kernel, compiling it on floppies on his 486 machine. To tell you how long ago that was, the Intel 486 was introduced in 1989, It was the first chip in the line to include a built-in math coprocessor.

Patrick was an early adopter of computers, but one thing he missed was a community. In those days he had to copy software over electronic bulletin board systems. But with the Linux kernel, he found it amazing that you could just get it on a cd-rom and pass it around to friends.

From the Linux Foundation office in New York City, this is "The Untold Stories of Open Source". Each week we choose an open source project or a person behind a popular open source initiative, to uncover the untold stories and details about major open source initiatives. If you work with open source, and you do whether you know it or not, you're in the right place.

Videos

Luke Smith: Hugo Actually Explained (Websites, Themes, Layouts, and Intro to Scripting)

Making Badass Developers - Kathy Sierra (Serious Pony) keynote

Randy Pausch Last Lecture: Achieving Your Childhood Dreams

The Conflict and Burnout Survival Guide: Handling When Things Go Wrong

Jarek Potiuk: Contributing to Apache Airflow - Starting Your OSS Adventure

Jez Humble | Continuous Delivery

Why Do So Many Programmers Lose Hope?

Jonathan Haidt: Has Social Media Destroyed a Generation?