Collection of all posts/articles published on the blog, ordered from the latest ones.
-
MySQL and PostgreSQL: different approaches to solve the same problem
2024-11-11
Both databases solve the same problem: how to most effectively store and provide access to data, in an ACID-compliant way? ACID compliance might be implemented in various ways and SQL databases can vary quite substantially how they choose to go about it.
-
HTMX with Shoelace Web Components: using framework-agnostic components in an example app
2024-10-12
As we already know, HTMX pairs really nicely with Web Components. Shoelace is a popular and mature collection of configurable Web Components, which by definition are framework agnostic. Since writing our own components library is a ton of work, we should rather prefer using something ready and battle tested. Let's then see how this library plays with HTMX by building a real application!
-
Programmer in Wonderland
2024-09-15
There are hundreds and thousands of tools and frameworks out there, often solving the same problems or struggling to explain what the problem they are trying to solve is ... Because of this diversity and how powerful some of these tools are, it often feels like Magic. So many things possible, so fast and seemingly without a cost, without tradeoffs. But is it really the case?
-
Who controls the Internet and How it works?
2024-08-31
We take the Internet, as it is, completely for granted. But have you ever wondered: what it is, how it works and who controls it? At its core, the Internet is just a...
-
Simple yet Scalable Web Analytics: JSON in SQL with batch inserts
2024-08-16
When building landing pages and blogs, we usually want to have some traffic data and its analytics. Monitoring activity on our web pages turns out to be quite useful ... Similarly, when we build web applications, we want to have analytical data to understand the behaviors and interactions of our users.
-
Modular Monolith: dependencies and communication between Modules
2024-05-19
Before talking about module communication, it is important to emphasize the consequences of chosen module design. Problems that we will face when communicating between modules, how often and how much of communication there will be, depend mostly on decided modules structure ... Assuming that we have modules that depend very little on each other, but sometimes they do need to talk with each other - how can they and when they should?
-
HTMX: a setup ready for Production
2024-05-04
HTMX is a promising technology that simplifies many things when building web applications/systems ... That is great when it comes to local development and simple experiments, but what about Production?
-
Load Testing: how many HTTP requests/second can a Single Machine handle?
2024-03-28
When designing systems and deciding on the architecture, I often hear justifying the use of microservices and other complex solutions because of the predicted performance and scalability needs. Out of curiosity then, let's test the limits of an extremely simple approach, the simplest possible one.
-
Kubernetes: maybe a few Bash/Python scripts is enough
2024-03-09
When it comes to the infrastructure of a software system, there are some features that are virtually always needed, independently of the project nature, and some that are additional, optional, or useful only in some projects and contexts ... Infrastructure is a crucial component of every software system: what do we need from it?
-
HTMX and Web Components: a Perfect Match
2023-12-21
Web Components are a set of browser APIs that allow us to create custom HTML elements. They are one of the major things that SPA (Single Page Application) frameworks have been giving us for a long time ... HTMX is highly interesting, useful and a promising technology. It simplifies many things and allows us to build SPA or SPA-like applications without complex tooling, dependencies, frameworks and mostly without writing application-specific JavaScript code.
-
Modular Monolith and Microservices: Modularity is what truly matters
2023-11-26
Modularity is a crucial concept when designing and creating software. Independent of whether our chosen architecture style is to have a single unit of deployment - Monolith or multiple units of deployment - Microservices/Services. It is a quality that should be treated completely independent of how many deployable units of software we choose to have.
-
Unit, Integration, E2E, Contract, X tests: what should we focus on?
2023-11-04
When we write software, we intend it to be used in some, usually predefined and desirable, way. All software has some specification, either explicitly described or implicitly assumed. How do we know that it (software) works? We can test it manually, using all of its features and functionalities. Unfortunately, this approach breaks down pretty fast.
-
Index: a crucial data structure for search performance
2023-10-08
There are many variations and types of it, depending on the underlying database/search engine and its purpose, but the core concept is always the same: let's have an additional data structure that points to/references the original data and makes searching fast.
-
HTMX: simpler web-based app/system
2023-09-22
Nowadays, when we develop web-based app/system it is most likely built as SPA, which is a single page application. We should ask, why have we done that? Why have we switched from multi page applications, where the browser supported all of these functions out of the box, functions that we now need to recreate by writing custom JavaScript code?
-
Indexing, Partitioning, Sharding - it is all about reducing the search space
2023-09-09
Whenever I think about optimizing certain data query, be it SQL (mostly) or NoSQL, I find it useful to think about these problems as search space problems. In other words, how much data need to be scanned/checked in order for my query to be fulfilled?