Month summary - April 2023

Posted by Tobiasz Kedzierski on 30.04.2023

April 2023

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

git rebase --interactive and fixups

I have seen how different people use Git, and each person has their own way of using it. However, I did not see many people using git rebase interactive and fixups. For a long time, I have been thinking about presenting how I use git rebase, git rebase interactive, and my beloved fixups. A long time ago, I wrote a short blog post about it (Changing history in Git), but I felt it was not enough. I wanted to show it in action and explain why I do it. Because of that, I decided to prepare a presentation about it. I presented it during one of the internal meetings at work, and I think it went well. I am planning to present it during one of the meetups in the future.

I was a little bit frustrated with Google Slides and how it handles code snippets. I decided to keep the text of the presentation in the repository, so it is easier to track changes, publish and share it. Inspired by Raymond Hettinger I decided to use the documentation generator MkDocs and Material for MkDocs. The presentation is available as a website under my domain: tobked.dev/git_rebase_interactive. Its source is on my Github: github.com/TobKed/git_rebase_interactive.

Google Cloud Developer Day Warsaw 2023

I attended Google Cloud Developer Day Warsaw 2023 on April 27th, 2023. It was a free event organized by Google Cloud at their Warsaw Campus. I wrote more about it in a separate blog post: Google Cloud Developer Day Warsaw 2023.


Articles

How to Make a Great Conference Talk

I have decided to write this guide to assist my readers who aspire to be conference speakers. I hope it will help you prepare for your first presentation or improve your talks further.

CAN Injection: keyless car theft

This is a detective story about how a car was stolen - and how it uncovered an epidemic of high-tech car theft.

Programista – pytania rekrutacyjne – bazy danych

Tematem tego wpisu są bazy danych. Z uwagi na ich popularność, głównym tematem wpisu będą relacyjne bazy danych i zagadnienia z nimi związane.

Saving Energy: Home Server That Automatically Suspends to RAM and Wakes Up Again which is used for Plex media streaming and Time Machine backups.

It does not sound like much, but running a 24/7 home server that draws 43 watts in idle is quiet expensive, considering the latest electricity prices of about 49 euro cent/kWh here in Germany (as of October, 2022). A simple solution to this problem is a script that automatically suspends the server, when it is not used, and another script to wake the server up again, in case there is work to do. To my surprise I could not find any out-of-the-box solution, so I thought, it is a worthwhile effort to write about it.

69 Ways to F*** Up Your Deploy

We hear about all the ways to make your deploys so glorious that your pipelines poop rainbows and services saunter off into the sunset together. But what we don’t see as much is folklore of how to make your deploys suffer.

I failed 3 job applications, here's what I learned

Tips and mistakes to avoid when applying software engineering jobs at top tech.

TikTok is a Time Bomb

The ultimate weapon of mass distraction

Bicycle by Bartosz Ciechanowski

In this article, I’ll focus on the delicate interplay between many of the forces that act on a bicycle and its parts when riding. We’ll witness how forces applied through tires make a bicycle accelerate, brake, and turn, and we’ll also investigate how the wheels and the frame handle those different forces without breaking.

Zmiana pracy w IT – kiedy warto się na to zdecydować?

Czy to czas, żeby zmienić coś w swoim życiu, czy lepiej zostać w obecnej firmie i poczekać na bardziej sprzyjający moment?

Productivity

The age of Agile must end

30 years ago the technology industry attempted to import Lean practices — it failed. Instead of “continuous improvement,” progress halted. Agile is incompatible with UX research, design, and scalable development. It always will be. It’s time to create a new operational standard.

AI

March 20 ChatGPT outage: Here’s what happened

An update on our findings, the actions we’ve taken, and technical details of the bug.

librarian-ai.com/

Discover your next favorite book effortlessly with the help of AI.

🧠 Awesome ChatGPT Prompts

This is a collection of prompt examples to be used with the ChatGPT model.

AI Incident Database

The AI Incident Database is dedicated to indexing the collective history of harms or near harms realized in the real world by the deployment of artificial intelligence systems.

TED: Greg Brockman - The inside story of ChatGPT's astonishing potential

In a talk from the cutting edge of technology, OpenAI cofounder Greg Brockman explores the underlying design principles of ChatGPT and demos some mind-blowing, unreleased plug-ins for the chatbot that sent shockwaves across the world.

regex.ai

AI-Powered Regular Expression Solver

Security

Sekurat: Jak narzędzia AI zmieniają OSINT [Czwartki z OSINTem]

Powstaje bowiem pytanie, czy ChatGPT, a także narzędzia generujące bardzo realistyczne obrazy, jak Midjourney czy DALL-E, zmienią sposób, w jaki prowadzone są działania OSINT-owe.

Python

Python Monorepo: an Example. Part 1: Structure and Tooling

For a software team to be successful, you need excellent communication. That is why we want to build systems that foster cross-team communication. Using a monorepo is an excellent way to do that

syntactic sugar blog posts by Tall, Snarky Canadian (Brett Cannon)

"In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express. It makes the language "sweeter" for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer." -- https://en.wikipedia.org/wiki/Syntactic_sugar

The different uses of Python type hints

There isn’t really a point of this post other than to say “be aware of these different use cases”. This awareness can be very important when you are in any discussion about the usefulness or necessity of type hints — which scenarios are you thinking about?

A Gentle Introduction to the Python Match Statement

When new features are added to Python, sometimes it can take a while to learn about and start using the feature. For me, the Python match statement (a.k.a. structural pattern matching) is a good example. Some features are very easy to grasp and use (for example, f-strings), but structural pattern matching is a bit more complex.

5 Common Asyncio Errors in Python (and how to avoid them)

In this tutorial, you will discover the most common errors encountered by beginners in asyncio in Python.

Google: Assured Open Source Software - List of supported Java and Python packages

Help reduce the risk to your software supply chain by using the same OSS packages that Google uses and secures in your own developer workflows.

authentik on Django: 500% slower to run but 200% faster to build

With the arrival of funding and the requirement to build a business that could sustain itself now and scale as the company evolved, I had to confront some of the technical choices I made when building authentik – in particular, the choice to build authentik using Python and Django.

Dependency Injection in Python

Building flexible and testable architectures in Python

Django

Django Performance Optimization Tips

This article addresses different aspects of Django performance and showcases some of the practices you can use to speed up your app. On top of that, it provides links to additional resources for further reading.

Ban 1+N in Django

I always thought of 1+N as a thing that you just keep in your head, catch on code reviews or via performance regressions. This worked well for a long time, however, the less control we have over our SQL queries the more likely it will sneak through those guards.

Building an Intelligent Education Platform with OpenAI, ChatGPT, and Django

In this tutorial, you'll learn how artificial intelligence (AI) can empower us to create educational platforms that are smarter, more personalized, and more effective than ever by leveraging the latest advancements in AI technology such as GPT-3 and ChatGPT.

Python/Django AsyncIO Tutorial with Examples

If for some reason you or your team of Python developers have decided to discover the asynchronous part of Python, welcome to our quick tutorial on using Async IO in Python/Django.

Running Tasks Concurrently in Django Asynchronous Views

Mariusz Felisiak, a Django and Python contributor and a Django Fellow, explores how to use recent async improvements in Django to run multiple async tasks in an asynchronous view!

How to have Python show warnings when running Django

I usually look for deprecation warnings when I see a newer Django version being prepared for release.

Tools

git-sim

Visually simulate Git operations in your own repos with a single terminal command.

Cloud

Why I think GCP is better than AWS

AWS is the best platform to showcase how great GCP is…

Cloud Functions Best Practices (3/4) : Secure the Cloud Functions

Protect your Function perfectly.

Best practices and a tutorial for using Google Cloud Functions with MongoDB Atlas

Connect your serverless functionality to your third-party databases for efficient and cost-effective cloud applications.

Hosting successful live events with Google Cloud

Hosting a live event requires a significant level of planning and preparedness. At Google Cloud, we've supported customers that delivered live tentpole events at planet scale, most recently, football matches for FIFA World Cup 2022 using Media CDN for worldwide distribution.

Promoting pre-prod to production in Cloud Run with Google Cloud Deploy

Deploying your first container to Cloud Run is famously intuitive. The magic of typing gcloud run deploy and watching your container run never really gets old for me.

How to identify and reduce costs of your Google Cloud observability in Cloud Monitoring

If it matters, you should measure it! This adage underpins an explosion of growth in the monitoring and observability market over the last decade. Unfortunately, many organizations struggle to realize the benefits of their tooling, leading to budget bloat without gaining much additional insight.

Klaster K8s na Raspberry Pi, czyli K3s na nowo

Mój domowy klaster K8s na Raspberry Pi

Defining Labelling strategy in GCP for gaining granularity into cloud costs

Labels act as metadata which lets you filter resources in Cloud Billing console. It’s important to note that labels and tags hold different meanings in GCP, refer this to know more.

AwesomeGCP [YouTube Channel]

Preparation of GCP certifications

How I Keep Myself Up-to-Date on Google Cloud Platform: A Personal Journey

As a GCP user, it’s important to stay up-to-date with the latest changes and advancements in the platform.

OWASP Kubernetes Top 10

The OWASP Kubernetes Top 10 puts all possible risks in an order of overall commonality or probability.

CloudSkills/Terraform-Projects

Other stuff

KNOW YOUR HTTP * WELL

HTTP encodings, headers, media types, methods, relations and status codes, all summarized and linking to their specification.

Google Python Style Guide

Python is the main dynamic language used at Google. This style guide is a list of dos and don’ts for Python programs.

Awesome Software and Architectural Design Patterns

A curated list of software and architecture related design patterns.

IPTV

Collection of publicly available IPTV channels from all over the world.

America Against America (USA) - Wang Huning

America critique.

Podcasts

The Real Python Podcast Episode 150: Lessons Learned From Four Years Programming With Python

What are the core lessons you’ve learned along your Python development journey? What are key takeaways you would share with new users of the language? This week on the show, Duarte Oliveira e Carmo is here to discuss his recent talk, “Four Years of Python.”

Videos

#FOSSBack: Wolfgang Gehring – A Vision of FOSS @MercedesBenz

OMH 2021: Służby, wpadki i OSIntowe kwiatki - Kamil Goryń