Month summary - October 2020

Posted by Tobiasz Kedzierski on 31.10.2020

October 2020

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

This month I worked on improving Google Cloud Dataflow within Apache Airflow project. It was not an easy task since Dataflow is a quite complex service itself and has limited API. I helped to introduce operators for SQL Queries and Flex Templates. I successfully added drain option when cancelling Dataflow pipelines and helped community with Google Cloud Memorystore Memcached Operators.

I am quite interested in CI and GitHub Actions and I created an action called Label When Approved action. It sets a label on an approved Pull Request and removes it when changes are requested. It supports checking if approvals (or change requests) are authored by people with write access to the target repository. It was created specifically for Apache Airflow where it is used for labeling pull requests approved by committers. These labels (or equivalent action outputs) are used to optimise the use of CI resources since not approved pull requests run only a subset of tests. It was introduced because the number of GitHub Actions jobs running in parallel is limited to 180 for all Apache projects so running full test suite every time seemed to be a waste. It was made in cooperation with Jarek Potiuk who is Apache Airflow Commiter and PMC Member. It was also my first time with TypeScript which I enjoyed a lot.

Meanwhile my blog post about Terraform and Infrastructure as Code was published [IaC]. If you want to know why IaC and Terraform is so popular, feel free to read it: Terraform Tutorial: Introduction to Infrastructure as Code.

Articles

A Short Story for Engineers (link not valid anymore)

You don’t have to be an engineer to appreciate this story.

The red-flag signs you may be burning out while working from home

In a remote-work world, setting up clear boundaries is integral to protecting your mental health and personal well-being.

Google updates Android smartphones to listen to houses for suspect sounds

Google says the update will make it easier for people with hearing issues to be notified of events.

How to Change Your Brain With Dr. Andrew Huberman (+ Utkarsh!)

Dr. Huberman is here to school us on all things neuroplasticity---and how we can use it to our advantage through intense focus, mindfulness, and restorative sleep. Enjoy!

Git scraping: track changes over time by scraping to a Git repository

We already have a great tool for efficiently tracking changes to text over time: Git. And GitHub Actions (and other CI systems) make it easy to create a scraper that runs every few minutes, records the current state of a resource and records changes to that resource over time in the commit history.

How to take meeting notes

Author does not take notes during the meeting. Instead, he takes notes after the meeting and shares tips how to do it.

'I'll Never Work The Same Way Again:' One Co-Founder's Remote Work Experiments

There's a lot of talk about structure and boundaries, but there's something to be said for flexibility, and embracing the messiness of your "life's work."

10 Tips From CEOs on Working From Home Effectively and Happily

Far beyond getting out of your pajamas, these tips encourage wellness when you are working from home.

How Google Drive Can Make Every Corner of Your Life Easier

The ultimate self-improvement tool is something you already have

Why Life Can’t Be Simpler

We’d all like life to be simpler. But we also don’t want to sacrifice our options and capabilities. Tesler’s law of the conservation of complexity, a rule from design, explains why we can’t have both.

You Don’t Have to Use Docker Anymore

Docker is not the only containerization tool out there and there might just be better alternatives…

How Harvard’s Star Computer-Science Professor Built a Distance-Learning Empire

David Malan, of the hit class CS50, was working to perfect online teaching long before the pandemic. Is his method a model for the future of higher education?

Surprising getattr recursion

It’s well-known that you have to be careful in getattr not to use an attribute that might be missing. That would cause an infinite recursion.

The psychology of learning to code

Build a habit of learning, find what you’re obsessed with, and crawl your way through The Suck.

16 Everyday Habits of Highly Productive People

A list of 16 tips and tricks that will help guide you to a more fulfilled life.

Django

Modern JavaScript for Django Developers

Working with Django in the modern JavaScript ecosystem without giving up the things that make it great

Django Day Copenhagen 2020

Videos from Django Day Copenhagen.

A Django REST API in a Single File

The third in a series of writing Django apps in a single file, following previous posts on synchronous and asynchronous use cases.

Tools

Triage Party: massively multi-player GitHub triage

Triage Party is a stateless web app to optimize issue and PR triage for large open-source projects using the GitHub API.

terraform-docs

A utility to generate documentation from Terraform modules in various output formats.

terraformer

A CLI tool that generates tf/json and tfstate files based on existing infrastructure (reverse Terraform).

terragrunt

Terragrunt is a thin wrapper for Terraform that provides extra tools for keeping your Terraform configurations DRY, working with multiple Terraform modules, and managing remote state.

Terraform Best Practices

Terraform Best Practices for AWS users.

Bringing-Old-Photos-Back-to-Life

Old Photo Restoration (Official PyTorch Implementation)

Darling

Darling is a translation layer that lets you run macOS software on Linux

Qubes OS

Qubes OS is a free and open-source, security-oriented operating system for single-user desktop computing.

Tails

Tails is a portable operating system that protects against surveillance and censorship.

dockle

Dockle - Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start

trivy

A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI.

devops-exercises

This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE

python-cheatsheet

Comprehensive Python Cheatshee

boundary-layer

boundary-layer is a tool for building Airflow DAGs from human-friendly, structured, maintainable yaml configuration.

Other stuff

Computer Stuff They Didn't Teach You - youtube playlist

Videos that will help you to fill in the gaps on all those little things that we should have learned in school but no one really sat down and took the time.

terraform-switcher

The tfswitch command line tool lets you switch between different versions of terraform.

Videos

"On a shoe-string and a t2.small: scaling on a [zero] budget." - Tom Eastman (PyConline AU 2020)

Praca w korporacji - jakie ponosimy szkody zdrowotne? - prof. Paweł Januszewicz

I used the reasonably-secure Qubes OS for 6 months and survived - Matty McFatty [@themattymcfatty]

Reuven M. Lerner - Practical decorators - PyCon 2019