All posts

RHEL Basics #2: Setup — Installing RHEL 9, Subscription Manager, First Login
13 min read

RHEL Basics #2: Setup — Installing RHEL 9, Subscription Manager, First Login

Grab the RHEL 9 ISO via Developer Subscription, build a VM in UTM or VirtualBox, walk through the Anaconda installer, register with subscription-manager, and clean up the small post-install items (hostname / time / dnf update / sudo user) — all in one pass.

Docker Basics #3: Images and Containers — build, run, ps, logs, exec
8 min read

Docker Basics #3: Images and Containers — build, run, ps, logs, exec

The day-to-day Docker CLI commands in one place. build options, the run flags you actually use (-d, --name, --rm, -e), and the lifecycle that runs through ps , logs , exec , stop , rm.

Modern React + Next.js #6 Server Actions and Forms (Wrap-up)
11 min read

Modern React + Next.js #6 Server Actions and Forms (Wrap-up)

Use Server Actions to handle form submission and server-data mutation simply, polish the UX with useActionState/useFormStatus, and reflect on the series.

RHEL Basics #1: What Is RHEL — From Fedora to RHEL, plus AlmaLinux and Rocky Linux
15 min read

RHEL Basics #1: What Is RHEL — From Fedora to RHEL, plus AlmaLinux and Rocky Linux

Fedora is where new technology gets tried first; what survives flows into RHEL. CentOS Stream sits in the middle as a preview of the next RHEL, and AlmaLinux and Rocky Linux have settled into the role of free RHEL-compatible distros. Here's the shape of the RHEL ecosystem after CentOS, in one read.

Docker Basics #2: Writing Your First Dockerfile — FROM, RUN, COPY, CMD
9 min read

Docker Basics #2: Writing Your First Dockerfile — FROM, RUN, COPY, CMD

Building your first image for your own app. Pick a base with FROM, prepare the environment with RUN, drop in code with COPY, and pin a startup command with CMD. One full cycle, on a tiny Python app.

Modern React + Next.js #5 Loading with Suspense and use()
9 min read

Modern React + Next.js #5 Loading with Suspense and use()

Streaming that shows parts as they become ready, Suspense boundaries, loading.js, and the newly stabilized use() hook.

A History of Computer Viruses and Ransomware
7 min read

A History of Computer Viruses and Ransomware

Traces how malware evolved from pranks into organized crime, following a chronological path from the first self-replicating program in 1971 to the WannaCry ransomware outbreak in 2017.

Docker Basics #1: What Is a Container — VM vs. Docker Ecosystem
9 min read

Docker Basics #1: What Is a Container — VM vs. Docker Ecosystem

Why Docker — how containers differ from virtual machines, why Docker emerged, and a tour of the Docker ecosystem built around Engine, CLI, Compose, and Hub.

Modern React + Next.js #4 Data Fetching and Caching
8 min read

Modern React + Next.js #4 Data Fetching and Caching

Fetching data directly in Server Components with async/await, plus how Next.js caches and revalidates.

Modern React + Next.js #3 Server Components vs Client Components
9 min read

Modern React + Next.js #3 Server Components vs Client Components

How the two component types differ, how the 'use client' directive draws the boundary, and how to mix them effectively.

Modern React + Next.js #2 Getting Started with Next.js and the App Router
8 min read

Modern React + Next.js #2 Getting Started with Next.js and the App Router

Create a Next.js project and get hands-on with the App Router — file-based routing, the layout system, and nested layouts.

Modern React + Next.js #1: Why Next.js and Server Components
7 min read

Modern React + Next.js #1: Why Next.js and Server Components

The limits of client-side React, the problems Server Components solve, and the differences between CSR, SSR, and RSC.