September 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.
Articles
Customizing your shell
It is very common for programmers to tweak and customize their terminal and shell for hours, add or write new plug-ins, all in pursuit of the “perfect environment” and an increase of productivity. Others, on the contrary, avoid tweaking their shell altogether in order to always get the same experience on every machine.
Advanced Bash-Scripting Guide
An in-depth exploration of the art of shell scripting.
Building a Web server in Bash, part I - sockets
Have you ever wondered how a Web server works under the hood? Moreover, would you be willing to sharpen your Shell scripting skills?
Working locally with GitHub PRs
Working on a PR on django/djangoproject.com, a question came up about how to rebase if the GitHub UI doesn't offer exactly what you want:
What do you usually do in these situations?
Some ways to get better at debugging
I thought the categorization was a very useful structure for thinking about how to get better at debugging, so I’ve reframed the five categories in the paper into actions you can take to get better at debugging.
Why your website should be under 14kB in size
What is surprising is that a 14kB page can load much faster than a 15kB page — maybe 612ms faster — while the difference between a 15kB and a 16kB page is trivial.
This is because of the TCP slow start algorithm. This article will cover what that is, how it works, and why you should care. But first we'll quickly go over some of the basics.
Docker Tip #94: Docker Compose v2 and Profiles Are the Best Thing Ever
I switched to v2 it because it's faster and profiles let you easily start specific services in different environments.
Supercharging A/B Testing at Uber
“Immensely laborious calculations on inferior data may increase the yield from 95 to 100 percent. A gain of 5 percent, of perhaps a small total. A competent overhauling of the process of collection, or of the experimental design, may often increase the yield ten- or twelve-fold, for the same cost in time and labor. To consult the statistician after an experiment is finished is often merely to ask him to conduct a post mortem examination. He can perhaps say what the experiment died of. To utilize this kind of experience he must be induced to use his imagination, and to foresee in advance the difficulties and uncertainties with which, if they are not foreseen, his investigations will be beset.”
- R. A. Fisher’s Presidential address to the 1st Indian Statistical Congress
The Productivity Guide: Time Management Strategies That Work
Let's define productivity. Productivity is a measure of efficiency of a person completing a task. We often assume that productivity means getting more things done each day. Wrong. Productivity is getting important things done consistently. And no matter what you are working on, there are only a few things that are truly important.
Being productive is about maintaining a steady, average speed on a few things, not maximum speed on everything.
The Ivy Lee Method: The Daily Routine Experts Recommend for Peak Productivity
Lee was a successful businessman in his own right and is widely remembered as a pioneer in the field of public relations. As the story goes, Schwab brought Lee into his office and said,
“Show me a way to get more things done.”
“Give me 15 minutes with each of your executives,” Lee replied.
Warren Buffett’s “2 List” Strategy: How to Maximize Your Focus and Master Your Priorities
Let's talk about the simple 3-step productivity strategy that Warren Buffett uses to help his employees determine their priorities and actions.
Increasing development productivity with repository management
Do you have to manually clone all your repos? Of course not. This is where repository management comes in.
80 days to get into FAANG
This article will give a summary of my journey. More importantly, it will outline and address my main preparations, routine, struggles, and how I overcame those. I will mainly focus on the technical interviews. I hope this will be useful for any aspiring SWE/MLE looking to make the next big jump.
The Most Effective Creatives Maximize Leverage, Not Hours Worked
Forget ‘quiet quitting’: 3 strategies for creating more business impact with fewer hours
Why NoSQL Scales better than SQL
Why are SQL data stores not as scalable as NoSQL? What is the reason that we need ‘NoSQL’ now?
How Did REST Come To Mean The Opposite of REST?
REST must be the most broadly misused technical term in computer programming history.
Python
Using Mypy in production at Spring
At Spring, we maintain a large Python monorepo with complete Mypy coverage configured under Mypy’s strictest available settings. In short, that means every function signature is annotated and implicit Any conversions are disallowed.
Why You Should Use More Enums In Python
A gentle introduction to enumerations in Python.
Running Airflow on ARM M1/M2? Hell yes, but upgrade to Airflow 2.3+
Over the last few months I had a lot of questions and discussions at Airflow Slack and in Airflow GitHub Issues about running Airflow on ARM (which was really all about running Airflow on Apple Silicon (M1/M2). Does it work? Can we use it? What if I buy the new Apple Laptop for my users who want to run Airflow locally (mostly for DAG development)?
Airflow’s Magic Loop
A simple optimization that saves us a significant running time.
10 Python Interview Questions for Senior Developers
Dive into the internals
5 Levels of Understanding the Mutability of Python Objects
Every Python programmer may have been confused about the mutability of objects. This concept is indeed a little difficult to understand in Python.
Python String Methods to Know
Python's strings have 47 methods. That's almost as many string methods as there are built-in functions in Python! Which string methods should you learn first?
30 PyTricks I've Learned By Joining the Real Python Mailing List.
I subscribed to the Real Python mailing list two years ago, and I learned a lot of tips and tricks during that time. Even though it might seem like an odd way to learn Python, I have found it to be extremely helpful. I have written down some notes about the most useful tips and tricks that I have learned over the last two years, and I wanted to share them with you today.
Why You Should Use Data Classes in Python
Don’t you know what a Data Class is? You know how to use it? And what is the difference with a regular class? Here in this post I will try to answer these questions and many more.
Recipes from Python SQLite docs
While going through the documentation of Python's sqlite3 module, I noticed that it's quite API-driven, where different parts of the module are explained in a prescriptive manner. I, however, learn better from examples, recipes, and narratives. Although a few good recipes already exist in the docs, I thought I'd also enlist some of the examples I tried out while grokking them.
Heroku Alternatives for Python-based Applications
Unfortunately, starting November 28, 2022, Heroku will discontinue its free tier. This means you'll no longer be able to leverage free dynos, Postgres databases, and Redis instances.
Django
Django Shared Property
Properties that are both ORM expressions and python code.
Asynchronous Tasks With Django and Celery
You’ve built a shiny Django app and want to release it to the public, but you’re worried about time-intensive tasks that are part of your app’s workflow. You don’t want your users to have a negative experience navigating your app. You can integrate Celery to help with that.
Tools
dotfiles
Your unofficial guide to dotfiles on GitHub.
Awesome dotfiles
A curated list of dotfiles resources. Inspired by the awesome list thing. Note that some articles or tools may look old or old-fashioned, but this usually means they're battle-tested and mature (like dotfiles themselves). Feel free to propose new articles, projects or tools!
Cloud
Kubernetes examples
A series of YAML references with canonical and as-simple-as-possible demonstrations of kubernetes functionality and features.
Google Kubernetes Engine: 7 years and 7 amazing benefits
Today, as we celebrate seven years of general availability of the most automated and scalable managed Kubernetes, Google Kubernetes Engine (GKE), we present seven of the common ways that GKE helps customers do amazing things.
Make the most of your cloud deployment with Active Assist
The vastness of the cloud (hundreds of products within Google Cloud and counting!) can make it difficult to take full advantage of the wide range of opportunities and optimizations it brings. Constantly tuning your deployment can quickly become tedious work due to the sheer magnitude of options.
A visual tour of Google Cloud certifications
Interested in becoming Google Cloud certified? Wondering which Google Cloud certification is right for you? We’ve got you covered.
Preparing for the Google Cloud Professional Cloud DevOps Engineer Exam
If you want to learn about Site Reliability Engineering (SRE) and DevOps tools available in Google Cloud then the Google Professional Cloud DevOps Engineer certification is the right challenge for you.
Introducing Google Cloud Logging Python v3.0.0
Manage your app’s Python logs and related metadata using Google Cloud.
Streaming from Google Cloud Pub/Sub to Bigquery without the Middlemen
Thus, to simplify it further and for such simple use-cases, Google has now launched direct streaming capability from Pub/Sub via “BigQuery Subscription”. In addition, Pub/Sub topic schemas provide the option of writing Pub/Sub messages to BigQuery tables with compatible schemas. If the schema is not enabled for your topic, messages will be registered as bytes or strings to the given BigQuery table.
Google Cloud Global External HTTP(S) Load Balancer - Deep Dive
Load balancing in Google Cloud is a fully scalable, distributed and redundant managed service offered in different flavors such as global external, regional external, and regional internal.
What is Kubernetes HPA and How Can It Help You Save on the Cloud?
Autoscaling is a core capability of Kubernetes. The tighter you configure the scaling mechanisms – HPA, VPA, and Cluster Autoscaler – the lower the waste and costs of running your application.
Building a secure CI/CD pipeline using Google Cloud built-in services
In this blog, we will be focusing on the tools and technology side of DevOps. At the core of the technical aspect of DevOps, the concept is Continuous Integration and Continuous Delivery (CI/CD). The idea behind CI/CD concept is to create an automated software delivery pipeline that continuously deploys the new software releases in an automated fashion.
Kubernetes CLI (kubectl) tips you didn't know about
There are so many excellent tips I decided to collect the most interesting ones in a single post.
Other stuff
Docuseek
Docuseek streams essential independent, social-issue and environmental films to colleges, universities and K-12 schools, providing exclusive access to content from renowned leaders in documentary film distribution.