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.
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