January 2025
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
Ken Whitesell: Database optimization isn't always obvious
One of the issues of working with abstractions is that what you think may be logically true, isn’t.
Why Big Tech And Their 9–5 Jobs Are Not Tempting Anyone Anymore
"Climbing the corporate ladder only to realize it was leaning against the wrong wall"
The Hitchhiker’s Guide to Online Anonymity
Or “How I learned to start worrying and love privacy anonymity”
The Ars Technica guide to mechanical keyboards
Want a mechanical keyboard but don't know where to start? We've got you covered.
How to create your own VPN server using OpenVPN and AWS?
Building your own VPN may sound technical, but with the right guidance, it becomes straightforward and highly rewarding.
225. Systems Ideas that Sound Good But Almost Never Work—"Let's just…"
Some engineering patterns that sound good but almost never work as intended.
Rules for Writing Software Tutorials
You can stand out in a sea of mediocre guides by following a few simple rules.
Allegro Tech Blog: Circuit Breaker not only for HTTP calls! (based on resilience4j)
... we show how to use Circuit Breaker from Resilience4j for handling cases other than HTTP calls. With that ~70 lines of code, we were able to significantly improve our response time to failures, redirect users to functioning payment providers, meet business requirements regarding reliability, and take the manual switching off of payment methods off from developers’ shoulders.
An Efficient Framework to Approach System Design Problems
In my experience as either a software developer or a mentor for software developers, the buzz word “system design” has been popped up quite frequently. Actually, no matter for real-life software development or software engineering interviews, “system design” is right in the center of the stage.
I Feel Like a Hacker Using These Cool Linux Terminal Tools
Get ready to look like a hacker with me using these Linux terminal tools!
Making Beautiful API Keys
tl;dr - Since developers are our customers, we wanted them to have beautiful API keys. We couldn't find a suitable standard solution so we made our own package - uuidkey - that you can use to encode & format UUIDs into human-readable keys. If you use UUIDv7, you can also decode the keys to store them as sortable, indexable IDs in your database.
Today I learned that bash has hashmaps
I was horrified to find out that bash has hashmaps, and decided to write this note to tell you how to use them.
Categories of leadership on technical teams
One framework I’ve referenced repeatedly is to break down team leadership into a few different categories of responsibility.
System Design Codex: Eventual Consistency is Tricky
But there are great patterns to handle it...
A free upgrade could let Philips Hue and other Zigbee bulbs act as motion sensors
The secret is technology which can detect the interference in radio signals created by someone walking into a room. This interference can then be used as a trigger to control the light bulbs in the same way as existing motion sensors.
architecture notes: Database Sharding Explained
Many people don't understand database sharding, which could solve their difficulties. This article explains database sharding, its benefits, including ho
blinry: Building a tiny Linux from scratch
Last week, I built a tiny Linux system from scratch, and booted it on my laptop!
Productivity
Cassidy Williams: The Productivity apps I use in 2024
I often get asked what my favorite tools are and how I use them to get my work done, and I’m writing this both to answer that question, and also for me to just paste a link to this post next time I’m asked. Efficiency!
How to improve your WFH lighting to reduce eye strain
Having a working environment that’s as easy on my eyes as possible is of critical importance
AI
ChatGPT search vs. Google: A deep dive analysis of 62 queries
A detailed analysis of ChatGPT search and Google's performance across 62 queries, with scoring metrics and practical examples.
How to Create a Claude Chat with Dynamic Knowledge (No API Required!)
Let's Cook Up Some Basic AI Automation Magic.
Security
Building AI Agents to Solve Security Challenges
this article, I would like to bring closer a topic of AI Agents and demonstrate how to build an agent that can solve security challenges...
Python
Adam Johnson: Python: create temporary files and directories in unittest
Sometimes, tests need temporary files or directories. You can do this in Python’s unittest with the standard library tempfile module.
heapq — Heap queue algorithm
This module provides an implementation of the heap queue algorithm, also known as the priority queue algorithm.
Heaps are binary trees for which every parent node has a value less than or equal to any of its children. We refer to this condition as the heap invariant.
Django
Show Django flash messages as toasts with Htmx
Learn how to display Django messages as user friendly toasts with Htmx
Complex Django filters with Subquery
Django’s Subquery expression is one of the most powerful tools in the ORM. The documentation does a good job of explaining it at a high level, but unless you have a decent understanding of SQL, you may not fully understand it’s power.
How to show a modal in Django + HTMX
Learn how to show a modal with minimal Javascript in Django + HTMX
Database Indexing in Django
This article explores the basics of database indexing, its advantages and disadvantages, and how to apply it in a Django application.
Tools
👻 Ghostty
👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
k3d
Little helper to run CNCF's k3s in Docker.
dsRAG
High-performance retrieval engine for unstructured data.
LNAV -- The Logfile Navigator
A log file viewer for the terminal
Merge, tail, search, filter, and query log files with ease.
No server. No setup. Still featureful.
Portainer Templates
The largest single collection, of ready-to-go Portainer templates
Cloud
Pub/Sub to BigQuery with BigQuery Subscription
Real-time data ingestion and analysis are becoming increasingly critical for modern businesses, whether in retail, finance, or logistics.
Create a CI/CD Pipeline using GitHub Actions and Google Cloud
In this guide, I’m going to show you how to create a CI/CD pipeline that automates the test and build of our application code, and then deploys to Google Cloud services.
Exposing GKE Apps Using GCP HTTP Load Balancer, Cloud Armor, Cloud CDN, and Istio — part 1
But deploying on GKE is just the first step. The true challenge lies in ensuring your applications are accessible to users — securely, efficiently, and reliably. That’s where the magic happens!
Cloud Build + Cloud Deploy
Cloud Build and Cloud Deploy, in particular, are essential components for implementing a strong CI/CD (Continuous Integration/Continuous Delivery) pipeline.
Other stuff
Template0
All the free web templates you need for product, business, landing pages, blogs, portfolios, ecommerce, and admin dashboards.
t3dotgg/stripe-recommendations
How I Stay Sane Implementing Stripe
Doodles-as-A-Service Repo
I am trying to describe complex matters in simple doodles!
Dan McKinley: Egoless Engineering
Digging the Ditch Towards Enlightenment
GitPodcast
Convert any git repository into an engaging podcast.
Professional Programming
A collection of learning resources for curious software engineers
letsnotdothat.com
Master the Art of the Product Manager "No"
Keep your meetings smooth and your priorities on track!
devnoname120/My macOS setup.md
Quality of life improvements
Podcasts
The Real Python Podcast: Episode 236: Simon Willison: Using LLMs for Python Development
Simon has been researching LLMs over the past two and a half years and documenting the results on his blog. He shares which models work best for writing Python versus JavaScript and compares coding tools and environments.
Videos
MIT 6.824 Distributed Systems (Spring 2020)
6.824 is a core 12-unit graduate subject with lectures, readings, programming labs, an optional project, a mid-term exam, and a final exam. It will present abstractions and implementation techniques for engineering distributed systems. Major topics include fault tolerance, replication, and consistency. Much of the class consists of studying and discussing case studies of distributed systems.
MIT 6.006 Introduction to Algorithms, Spring 2020
This course is an introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. It emphasizes the relationship between algorithms and programming and introduces basic performance measures and analysis techniques for these problems.
David Amos: Graph Theory With Python
Join me as we explore the world of Graph Theory with a focus on graph algorithms and using Python as a tool for mathematical research!
Liber Indigo: The Affordances of Magic
Liber Indigo leads us down a winding path through interface design, semantics, dreams, rainbows, materialism, magic, divination, and poetry, intersecting with the ideas of Aldous Huxley, Carl Jung, Albert Einstein, Max Planck, William James, Alan Turing, and others along the way.
38C3: Illegal Instructions
The 38th Chaos Communication Congress (38C3) takes place in Hamburg, 27.-30.12.2024, and is the 2024 edition of the annual four-day conference on technology, society and utopia organised by the Chaos Computer Club (CCC) and volunteers. Congress offers lectures and workshops and various events on a multitude of topics including (but not limited to) information technology and generally a critical-creative attitude towards technology and the discussion about the effects of technological advances on society.