Month summary - April 2022

Posted by Tobiasz Kedzierski on 30.04.2022

April 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

At the begging of the month I attended workshops called "Scrapowanie danych publicznych w Pythonie (Scraping public data in Python)". During the first part we created simple scrapers to fetch some data from chosen websites. They lacked many features like error handling or throttling. During the second part we wrote them with scrapy which was pretty awesome because with just a few adjustments we employed a very nice framework that handles a lot of stuff for us, like logging, storing data, following logs, error handling, throttling etc. Big thanks to Paweł Miech who conducted this amazing workshop. Materials are available on his github github.com/pawelmhm/warsztaty-medialab

The biggest part of the month was consumed by Google Cloud Platform [GCP]. Almost two years ago I passed the Google Cloud Associate Certified Engineer certification exam, and I thought April was a good time to improve and confirm my increasing competencies with Google Cloud Platform. I read tons of GCP documentation and websites.I did some udemy courses and completed a very good study book Official Google Cloud Certified Professional Cloud Architect Study Guide by Dan Sullivan, I played with the GCP infra as well to get practical experience with topics which I haven’t used so far. After all, I was happy to read on screen in the certification center that I passed the exam. I am especially proud because it was one of the hardest certification exams so far. I learned a lot not only from the technical perspective but also from the business point of view.

Google Professional Cloud Architect

Google Professional Cloud Architect.

Articles

Cargo Cult Software Engineering

In the South Seas there is a cargo cult of people. During the war they saw airplanes with lots of good materials, and they want the same thing to happen now. So they’ve arranged to make things like runways, to put fires along the sides of the runways, to make a wooden hut for a man to sit in, with two wooden pieces on his head for headphones and bars of bamboo sticking out like antennas—he’s the controller—and they wait for the airplanes to land. They’re doing everything right. The form is perfect. It looks exactly the way it looked before. But it doesn’t work. No airplanes land. So I call these things cargo cult science, because they follow all the apparent precepts and forms of scientific investigation, but they’re missing something essential, because the planes don’t land.

— Richard Feynman

4 ways we use GitHub Actions to build GitHub

From automating builds and releases to taking care of large-scale regression testing, here are a few ways we use GitHub Actions to build GitHub.

Hexagonal Architecture, there are always two sides to every story

The Hexagonal or Ports and Adapters Architecture, is not the silver bullet for all applications. It involves a certain level of complexity, that when handled with care, will bring great benefits to your system. But if broken windows are allowed, it might cause a lot of headaches.

BBC Online — A year with serverless

In this post I reflect on our progress so far, and some of the interesting challenges we are facing while building the BBC’s critical digital services.

Things I Use: Zsh - Just Abrahms

Nice bash / zsh config explained. Source files are on gh: justinabrahms/jlilly-bashy-dotfiles

Exit Interviews Are a Trap

Exit interviews are a trap. Unless you know you’re immune, don’t walk into the trap.

Take Your Github Repository To The Next Level 🚀️

I’ve been using Github for a very long time now, and along the way I’ve been gathering a step-by-step guide on creating the perfect Github repository. If you haven’t guessed already, this article is an enhanced version of that guide.

Writing for Engineers

Writing is key to have impact in large organizations. As a senior software engineer chances are that writing is the most important skill you have to acquire in order to increase your scope beyond the team and advance your career.

Python

Does elegance matter? | Pydon't 🐍

“How do we convince people that in programming simplicity and clarity – in short: what mathematicians call "elegance" – are not a dispensable luxury, but a crucial matter that decides between success and failure?”

― Edsger W. Dijkstra, "Selected Writings on Computing: A Personal Perspective", p347.

Providing Multiple Constructors in Your Python Classes

Sometimes you need to write a Python class that provides multiple ways to construct objects. In other words, you want a class that implements multiple constructors. This kind of class comes in handy when you need to create instances using different types or numbers of arguments. Having the tools to provide multiple constructors will help you write flexible classes that can adapt to changing needs.

Bite-sized refactoring | Pydon't 🐍

In this Pydon't I show you why refactoring is important and show you how to do it in little steps, so that it doesn't become too overwhelming.

Futures and easy parallelisation

Here is one small snippet that it’s very useful when dealing with quick scripts that perform slow tasks and can benefit from running in parallel.

20 Python Interview Questions To Challenge Your Knowledge

A peek into data structures, programming concepts, and best practices

A Tour of Python's itertools Library

The tools provided by itertools are fast and memory efficient. You will be able to take these building blocks to create your own specialized iterators that can be used for efficient looping.

10 must-know patterns for writing clean code with Python🐍

Python is one of the most elegant and clean programming languages, yet having a beautiful and clean syntax is not the same as writing clean code.

fstring.help/

Python fstring reference.

Django

How to Make Django Raise an Error for Missing Template Variables

It’s all too easy to forget to pass a variable to your template, or make a typo in a variable name. Unfortunately, it can be quite hard to debug such mistakes, since Django’s default behaviour is to ignore the problem and render an empty string.

You Probably Don’t Need Django’s get_user_model()

In most Django code, you do not need to use get_user_model(), and you can instead use a vanilla import.

Awesome Django Blogs

List of blogs about Django and related technologies.

Permissions in Django

In this article, we'll look at how to assign permissions to users and groups in order to authorize them to perform specific actions.

Python libraries

fastapi-events

Asynchronous event dispatching/handling library for FastAPI and Starlette

structlog

'structlog' makes logging in Python faster, less painful, and more powerful by adding structure to your log entries.

bpython

bpython is a lightweight Python interpreter that adds several features common to IDEs. These features include syntax highlighting, expected parameter list, auto-indentation, and autocompletion.

Tools

dependency-review-action

A GitHub Action for detecting vulnerable dependencies in your PRs.

Snyk GitHub Actions

A set of GitHub actions for checking your projects for vulnerabilities

delta

A syntax-highlighting pager for git, diff, and grep output

agones

Dedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes.

Cloud

Kubernetes The Hard Way

Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.

Other stuff

Ivaylo Durmonski

Run exclusively by Ivaylo Durmonski and supported by Library members, the goal of this site is simple: Rigorous production of easily digestible writing to save people from drowning in chaotic information.

mermaid

Generation of diagram and flowchart from text in a similar manner as markdown.

No Code

No code is the best way to write secure and reliable applications. Write nothing; deploy nowhere.

justinabrahms/jlilly-bashy-dotfiles

This is a collection of my dotfiles not related to either vim or emacs. Mostly just bashy stuff.

Brendan Gregg's Homepage

G'Day. I use this site to share and bookmark various things, mostly my work with computers. While I currently work on large scale cloud computing performance at Netflix, this site reflects my own opinions and work from over the years.

Julia Evans blog

Hey! I'm Julia. Welcome to my blog. Here's every post I've ever written, organized by category. Enjoy!

jmutai/dotfiles

My dotfiles collection used on Arch Linux box

Videos

The Missing Semester of Your CS Education - Lecture 4: Data Wrangling (2020)

SysOps/DevOps Online MeetUp #51 - [#347] "Jest GIT!" - Michał Wierba

Andy Baio: Cut, copy, paste