Rolling Your Own Node.js Continuous Deployment on Linux
You don't need a bloated, expensive CI/CD platform to deploy your Node.js apps. You can roll your own "push-to-deploy" pipeline directly on your VPS. …
I'm a Data Scientist & Software Engineer passionate about cutting-edge technology. I collaborate with teams to solve complex problems through code.
You don't need a bloated, expensive CI/CD platform to deploy your Node.js apps. You can roll your own "push-to-deploy" pipeline directly on your VPS. …
I manage a multi-purpose Linux server. It hosts bare Git repositories, MariaDB databases, automated ETL scripts, and web applications. When a deployme…
This guide helps you make sure your Debian server stays in a high integrity state by following the conf.d drop-in pattern. With this method of configu…
Previously, I wrote about rendering Observable Plot server-side with SvelteKit. Today, I'm tackling client-side rendering. While it might seem straigh…
I've found that having a consistent version control workflow is crucial, no matter if I'm working solo or with other contributors. Lately I've been ex…
Both Flexbox and CSS Grid are powerful layout tools built into modern CSS. They are often discussed as if you must pick one or the other, but in pract…
Web apps have evolved beyond static documents, often relying on complex interfaces like dropdowns and modals built entirely with generic ` `s and …
For years, I relied on the official installer from python.org to manage my Python versions. Recently, however, I uninstalled everything to start fresh…
We all know DuckDB is fast. It feels like magic when you're working with millions of rows, even on a laptop. But we often treat data storage as an aft…
If you manage reporting databases in PostgreSQL, you've probably worked with nightly rebuilding of summary tables. This might involve a script that co…
If you've worked with SQLite before, you know how versatile a database system it can be. Its simplicity and serverless architecture make it the go-to …
With massive data, frontend visualization often means you either crush the browser with giant JSON payloads or get stuck waiting on slow API endpoints…
Here's a scenario: You have a dashboard open in two windows. In the first, you update a record, but when you switch to the second, nothing has changed…
Efficiency is the name of the game when you've got massive data volumes that include cross-border and regional aggregations like those you might find …
When anyone makes a purchase, whether it's online or in a brick-and-mortar store, the cardholder's bank (the issuer) and the merchant's bank (acquirer…
A query that works perfectly on a small development dataset can still bring the production database to a halt as data volumes scale. You must understa…
Schools need accurate enrollment forecasting for stability and success. Forecasting informs decisions they face annually: staffing, resource allocatio…
Most developers are used to spinning up a single instance of their database system and calling it a day. But what happens when you need true redundanc…
One of the most common yet complex challenges in application development is the "zone lookup" problem. It's used in processes like managing school dis…
I recently ran into a frustrating caching issue with Apache. I requested a page where the request headers included `If-Modified-Since` and the respons…
Imagine you need to run a report showing every student enrolled during the academic year. The catch? The report specification requires one row per stu…
When picking a primary key for a table in a database, sometimes there is an obvious choice. If you're creating a table of users, and users authenticat…
Recognizing data types is a foundational concept in statistics and data science because the type of data you have dictates the appropriate statistical…
Git is a powerful tool, but it can also be a source of frustration when things go wrong. I've documented the process I use to quickly fix some common …
DuckDB is an incredibly versatile, in-process database. Its powerful SQL engine and ability to read various file formats make it an excellent tool for…
I love the free and open-source software (FOSS) community. The idea that code can be freely shared, studied, modified, and redistributed for the benef…
Data is the lifeblood driving innovation in many industries, including healthcare. Machine learning algorithms are being used to predict patient outco…
I've been playing around with how ML techniques can be applied to logistics and e-commerce. One of the ideas I had floating around my head was to buil…
Cursor, the AI-first code editor, significantly speeds up my development workflow, especially when working with modern web frameworks. However, like m…
While powerful tools like virtualenv, pipenv, conda, and Poetry exist to provide extra advantages for dependency management, I've found a simple syste…
ESLint is a tool for "linting" your code. It can analyze your code and warn you of potential errors. In order for it to work, you need to configure it…
libsql Migrate is a database migration and seed management tool for libsql with configurable options, written in JavaScript and available as an npm pa…
As you develop software, having a development database that mirrors your production data is a game-changer. It allows you to work with realistic data …
Every system administrator would be wise to keep a close eye on the health and performance of their server infrastructure. Prometheus, an open-source …
Building dynamic applications often involves connecting to a database to store and retrieve data. Next.js provides an excellent platform for creating …
Ensuring the safety and integrity of data in your database management system should be one of the highest priorities. MariaDB, a powerful and widely u…
MariaDB is a great open-source relational database management system. This article will walk you through the process of installing and configuring Mar…
Today, online security is paramount. Configuring HTTPS/TLS/SSL on your web server is crucial to protect sensitive data and establish trust with your u…
Firewalls are an essential part of network security, and nftables is a powerful tool for configuring them. In this article, we'll explore how to confi…
Reverse proxying with nginx is a powerful way to manage and distribute web traffic. In this comprehensive guide, we'll walk you through the installati…
Continuous deployment involves frequently integrating code changes into a shared repository. This allows for your production app to be updated with th…
Using a web application framework like SvelteKit opens up possibilities to bring your data visualizations to life on the server side before sending th…
Node.js is a popular runtime environment for building scalable and high-performance applications. However, managing Node.js processes can be challengi…
In this tutorial, we will explore the process of serving Next.js apps on a Linux server. Next.js is a powerful framework for building server-side rend…
Installing Node.js is a crucial step for developers looking to leverage its powerful features and vast ecosystem. In this comprehensive guide, we will…
Recently, while working on a project, I needed to add a feature to allow users to upload a file and save it on the server. I did quite a bit of search…
If you're looking for a reliable and secure way to host your Git repositories, setting up your own server can be a great solution. In this step-by-ste…
Staying up-to-date with software updates and security patches is important for a secure computing experience. However, manually keeping track of updat…
Public key authentication is a fundamental aspect of secure and efficient communication in the realm of server administration. In today's interconnect…
VirtualBox is as a powerful tool to create and manage virtual machines. Using it, you may often encounter scenarios where you need to establish commun…