Index
Sitemap
Browse all published articles and pages on Nalar.
.htaccess Rules to Prevent PHP Execution
2.4 GHz vs 5 GHz vs 6 GHz Wi-Fi: Which Band Should You Use?
About
Accelerate LLM Generation with Speculative Decoding
Access JavaScript Array Elements with `at()`
Allowlist Writable Fields to Prevent Mass Assignment
Apply Least Privilege to Application Access
Apps
Architecture Decision Records That Stay Useful
Arrays and Slices in Go: Add, Delete, Search, Update, Sort, and Filter
Arrays in Python: Lists, `array`, and NumPy
Arrow Functions vs Traditional Functions in JavaScript
Assertions That Expose Broken Assumptions
Async Iteration and Backpressure with for await...of
Atomic File Writes in Go: Prevent Partial and Corrupted Files
Authenticate Webhooks with Signed Requests
Authorize Bulk Data Exports as Sensitive Actions
Authorize Every Object Access
Automatic vs Manual Mobile Network Selection: What Changes
Automatically Encrypting Eloquent Model Attributes
Avoid PID Reuse Races on Linux with pidfds
Avoid Subprocess Pipe Deadlocks in Python
Avoiding Data Leakage in Machine Learning Pipelines
Backing Up a MySQL Database from PHP
Base64 Encoder / Decoder
Batch LLM Inference for Better Throughput
Bind Security Tokens to Their Intended Purpose
Block Common and Compromised Passwords at Creation
Blue-Green Deployments for Safer Zero-Downtime Releases
Bootstrap Confidence Intervals with Resampling
Borrowed or Owned Data in Rust API Design
Bound Untrusted Stream Reads in Go with io.LimitReader
Bound Work Before Processing Untrusted Input
Bounded Concurrency in Go with a Worker Pool
Branch by Abstraction for Incremental Change
Budget LLM Context Windows Without Losing Critical Instructions
Buffer Temporary Data in Python with SpooledTemporaryFile
Build a CRUD API with Go, Gin, MySQL, and GORM
Build a Masonry Gallery with a Zoom Effect in Tailwind CSS
Build a Practical Incident Response Process
Build Portable Readiness Loops in Python with selectors
Build Prediction Sets with Split Conformal Classification
Build Reliable Priority Queues in Python with heapq
Building a Live Search Page in Filament PHP
Building a Nested Category API in Laravel 11: A Practical Guide
Building a Responsive Mega Menu Navbar with Tailwind CSS and Alpine.js
Building a Simple CRUD Application in Laravel: A Practical Guide
Building a Simple Search Feature in Svelte
Building a Todo List with Stores in SvelteKit
Building an Article CRUD with Laravel and Filament Admin Panel
Building Focused Test Data with Test Data Builders
Building Memory-Efficient Iterator Pipelines with Python itertools
Cache Personalized Responses Without Cross-User Leaks
Cache Pure Work in Python with functools.cache and lru_cache
Calibrate Classification Probabilities Before Using Decision Thresholds
Calibrate Classifier Confidence for Better Decisions
Cancel Fetch Requests and Prevent Stale UI Updates with AbortController
Case Converter
Catching Multiple Exceptions in Python
Changing Interfaces Safely with Parallel Change
Characterization Tests for Legacy Code
Characterization Tests for Safe Legacy Changes
Check Whether a Key Exists in a Python Dictionary
Choose Between Causal and Masked Language Modeling
Choose Between Prompting, RAG, and Fine-Tuning
Choose Classification Thresholds with Precision and Recall
Choose Multi-Factor Authentication by Threat Model
Choose Pooling Strategies for Text Embeddings
Choose the Right Advisory File Lock on Linux
Choosing &str, String, and Cow for Rust Text APIs
Choosing Composition Over Inheritance for Behavior Reuse
Choosing JavaScript Promise Combinators: all, allSettled, any, and race
Choosing Test Doubles Without Hiding Design Problems
Cloud Sync vs Backup: Why the Difference Matters
Coalesce Duplicate Work with Single-Flight Patterns in Go
Code Reviews That Improve Change Quality
Combine Fine-Tuned Models with Weight Averaging
Combine Model Predictions with Ensembling
Combine Retrieval Rankings with Reciprocal Rank Fusion
Common Function Patterns in Go with Practical Examples
Common Types of Functions in Python
Compare Generated Sequences with Length-Normalized Log Probabilities
Compare Model Distributions with KL Divergence
Compare Secret Values with Constant-Time Functions
Compress and Extract Files Quickly on Linux
Compress Embeddings with Scalar Quantization
Compress Neural Network Layers with Low-Rank Factorization
Configuring Remote MySQL Access on Linux
Constant-Time Comparison for Authentication Tags and Secret Values
Constrain LLM Output with Grammar-Guided Decoding
Consume One-Time Tokens Atomically
Container Queries for Component-Level Responsive CSS
Contract Tests for Reliable Service Boundaries
Control LLM Randomness with Temperature and Top-p
Control LLM Repetition with Token Penalties
Control Repetition in Language Model Generation
Controlling Mutation with Defensive Copies
Convert Text to Title Case in JavaScript
Coordinate Shared State with sync.Cond in Go
Count Files in a Linux Directory Quickly
Covering Indexes and Index-Only Scans for Faster Database Reads
Create a Hover Zoom Effect with Tailwind CSS
Create a Simple Static Web Server with `http-server`
Create and Manage Symbolic Links on Linux
Create Cron Jobs on Linux
Create Sealable In-Memory Files on Linux with memfd_create
Creating a CA Bundle and Converting an SSL Certificate to .PFX
Creating Seams for Safe Legacy Changes
Creating Seams for Safer Code Changes
CSS Cascade Layers for Predictable Specificity
CSS Logical Properties for International and Flexible Layouts
CSS Logical Properties for International and Reusable Layouts
Data Validation in Laravel: A Complete Developer Guide
Debug CSS z-index with Stacking Contexts
Decode Streaming Text Safely in Python with Incremental Codecs
Deep Cloning in JavaScript with structuredClone
Defend RAG Applications Against Prompt Injection in Retrieved Content
Defer Uncertain Classifier Predictions with Selective Classification
Dependency Injection Without a Container
Deploy a Go Web Server with systemd on Linux
Derive Row Values in SQLite with Generated Columns
Design Account Recovery as an Authentication Boundary
Design Actionable Security Alerts
Design Backups for Security and Recovery
Design Circuit Breakers for Cloud Service Dependencies
Design Cryptography for Algorithm Change
Design Dead-Letter Queues for Poison Messages
Design Encryption for Cryptographic Erasure
Design Hashable Python Objects Correctly
Design Managed Attributes in Python with property
Design Model Abstention for Uncertain Predictions
Design Rate Limits Around Security Identities
Design Recovery Codes as Backup Authenticators
Design Recovery Codes as One-Time Authenticators
Design Recovery Codes as Real Authenticators
Design Reliable LLM Tool Calls with Structured Outputs
Design Retry Budgets to Prevent Retry Storms
Design Secure Password Reset Flows
Design Security Logs for Incident Detection
Design Session Revocation for Real Incidents
Design Value Objects with Python Dataclasses
Designing APIs with Preconditions and Postconditions
Designing Errors for Actionable Failures
Designing Failure Containment Boundaries
Designing for Localized Change
Designing for Reversible Decisions
Designing Idempotent Operations for Safe Retries
Designing Interfaces Around Client Needs
Designing Invariants That Make Invalid States Hard to Represent
Designing Modules Around Cohesion and Coupling
Designing Modules Around Information Hiding
Designing Modules with Information Hiding
Designing Stateless Web Services for Horizontal Scaling
Designing Structured Logs for Production Debugging
Designing Tolerant Readers for Evolving Contracts
Designing with Preconditions and Postconditions
Detect Distribution Shift Before Model Quality Fails
Detect Out-of-Distribution Inputs Before Trusting a Model
Diagnosing File Descriptor Leaks on Linux with procfs
Directing Dependencies Toward Stable Code
Display a Directory Tree on Linux
Diversify RAG Context with Maximum Marginal Relevance
Diversify RAG Retrieval with Maximal Marginal Relevance
Do Not Trust the Request Host for Security-Sensitive URLs
Do Not Use Security Questions for Account Recovery
Download vs Upload Speed: Why Both Matter
Easy Ways to Convert an Integer to a String in Go
Efficient String Concatenation in Go
Encrypt and Decrypt Data in Go with AES-GCM
Enforce Non-Overlapping Time Ranges with PostgreSQL Exclusion Constraints
Enforce Object-Level Authorization on Every Request
eSIM vs Physical SIM: What Changes for Phone Users
Estimate Model Uncertainty with Monte Carlo Dropout
Estimate Neural Network Uncertainty with Monte Carlo Dropout
Evaluate Imbalanced Classifiers with Macro F1 and Balanced Accuracy
Evaluate Neural Networks with Exponential Moving Average Weights
Evaluating RAG Systems with a Small Golden Dataset
Evolving APIs Without Breaking Clients
Exponential Backoff with Jitter in Go
Exporting and Restoring MongoDB Databases with `mongodump` and `mongorestore`
Extract a YouTube Video ID from a URL with JavaScript
Extract PSD Layers with Bash and ImageMagick
Extract Text from PDFs in Python with PyMuPDF
Extracting Usernames from Social Media URLs with PHP
Fail Closed at Authorization Boundaries
Fail Closed When Authorization Cannot Be Evaluated
Fail Closed Without Creating an Outage Bypass
Feature Flags as Temporary Control Points
Feature Flags Without Long-Lived Technical Debt
Feature Flags Without Permanent Complexity
Filter JavaScript Arrays Quickly and Clearly
Find Hidden Linux Disk Usage with df, du, and lsof
Find Recently Changed Files on Linux
Find Text and Extract Context from a JavaScript String
Find the Last Matching Array Element with `findLast()`
Find the Last Matching Array Index with `findLastIndex()`
Find the Most Resource-Intensive Processes on Linux
Finding Files on Linux with `find`
Finding Text in a String with a Custom Python Function
Finding the Last Day of a Month in PHP
Flattening Nested Conditionals with Guard Clauses
Focus Classification Training with Focal Loss
Format Dates in JavaScript
Generate Random Strings in Go
Generate Security Tokens with Cryptographic Randomness
Get Every RegExp Match with `String.matchAll()`
Go Context Timeouts and Request Cancellation
Go Error Wrapping with errors.Is and errors.As
Graceful HTTP Server Shutdown in Go
Graceful Shutdown and Connection Draining for Cloud Services
Group Data with JavaScript `Map.groupBy()`
Group JavaScript Data with `Object.groupBy()`
Grouping Related Parameters into a Parameter Object
Handle Class Imbalance in Machine Learning
Handle Label Noise in Supervised Learning
Handle Label Shift in Deployed Classifiers
Handle Linux Signals in Event Loops with signalfd
Handle Long Lines Safely in Go with bufio.Scanner
Handle Multiple Promises with `Promise.allSettled()`
Harden Authenticated Sessions Against Hijacking
Harden Security Configuration with Secure Defaults
Harden systemd Services with Security Directives
Hash Generate
Hide Design Decisions Behind Stable Interfaces
How a Phone Hotspot Shares Your Mobile Internet
How Active Noise Cancellation Reduces Background Sound
How Adaptive Brightness Works on Phones and Laptops
How Auto-Rotate Knows Which Way You Are Holding Your Phone
How Bluetooth Audio Codecs Affect Wireless Listening
How Bluetooth Item Trackers Find Things Beyond Bluetooth Range
How Bluetooth Multipoint Lets Headphones Use Two Devices
How Browser Autofill Works and Why It Sometimes Gets Forms Wrong
How Browser Cookies Help Websites Remember You
How Devices Find Printers, Speakers, and Other Services on Your Local Network
How File Thumbnails Work and Why Previews Sometimes Disappear
How GPS Finds Your Phone Without Mobile Data
How Haptic Feedback Makes Touchscreens Feel Responsive
How Loudness Normalization Keeps Audio Volume More Consistent
How microSD Cards Expand Device Storage
How NFC Works on Phones and Why It Needs Such Short Range
How Night Mode Helps Phone Cameras in Low Light
How Phone Hotspots Share Mobile Internet
How QR Codes Store Information and Still Scan When Damaged
How QR Codes Store Information and Why They Still Scan When Damaged
How the Clipboard Makes Copy and Paste Work
How to Block IP Ranges with `.htaccess`
How to Check for a Specific Key in a Python Dictionary
How to Check Whether a File Exists in Go
How to Check Whether a Map Contains a Key in Go
How to Create Enum-Like Types in Go
How to Create Users and Databases in MySQL
How to Flatten a List of Lists in Python
How to Free Up Phone Storage Without Deleting the Wrong Things
How to Get a Slice of Map Keys in Go
How to List Files in a Directory with Python
How to Safely Convert a String to an Integer in Go
How to Use a Global Variable Inside a Python Function
How to Whitelist IP Address Ranges with .htaccess
How Wi-Fi Calling Works When Cellular Signal Is Weak
How Wireless Charging Works and Why Alignment Matters
How Your Computer Keeps Time When It Is Turned Off
How Your Phone Compass Knows Which Way You Are Facing
How ZIP Files Compress Data and When They Save Space
HTTP Conditional Requests with ETag and Last-Modified
HTTP Content Negotiation and Correct Vary Headers
HTTP Range Requests for Efficient Partial Downloads
HTTP Requests in JavaScript with Axios
HTTP Requests in JavaScript with the Fetch API
Idempotency Keys for Safe API Retries
Idempotent Event Consumers for At-Least-Once Delivery
Implement HMAC Message Authentication in Go
Implement Validation in a Go Web App with Gin
Improve RAG Retrieval with Reranking
Improve Reasoning Reliability with Self-Consistency
Individual CSS Transform Properties for Maintainable UI Motion
Inspect Language Model Uncertainty with Token Entropy
Inspect Process Isolation with Linux Namespaces
Inspect Transformer Predictions with the Logit Lens
Integrate Timers into Linux Event Loops with timerfd
Interior Mutability in Rust with RefCell
Interpret Language Model Perplexity Correctly
Isolate Untrusted File Processing
Isolating Volatile Dependencies Behind Stable Boundaries
JavaScript `??=`: Nullish Coalescing Assignment
JavaScript `&&=`: Logical AND Assignment
JavaScript `||=`: Logical OR Assignment
JavaScript BigInt: Handling Large Integers
JavaScript Nullish Coalescing Operator (`??`)
JavaScript Numeric Separators (`_`)
JavaScript Property Descriptors with Object.defineProperty
JavaScript RegExp `d` Flag: Get Match Indices
JPEG vs PNG: Why the Same Image Can Have a Very Different File Size
JSON Array Converter
JSON in Python: Working with JSON Data
Keep Attention Sinks for Stable Streaming LLM Inference
Keep Data Separate from Interpreter Syntax
Keep Encryption Nonces Unique
Keep File Access Inside an Intended Directory
Keep Internal Error Details Out of Client Responses
Keep Redirect Targets Inside Trusted Destinations
Keep Security Log Timestamps Comparable Across Systems
Keep Sensitive Data Out of URLs
Keep Untrusted Paths Inside an Intended Directory
Keeping Behavior Close to the Data It Needs
Keeping Framework Code Humble at System Boundaries
Keeping Framework Code Thin with Humble Objects
Keyset Pagination for Stable and Efficient Database Queries
Keyset Pagination in SQL for Fast, Stable APIs
Layer Configuration Safely with Python ChainMap
Lazy Initialization in Go with sync.OnceValue and sync.OnceValues
Learn from Unlabeled Data with Mean Teacher
Learn Text Embeddings with Contrastive Learning
Learning Interfaces in Go: Concepts, Examples, and Best Practices
Limit Authentication Abuse with Layered Rate Controls
Limit Bearer Token Damage with Scope and Lifetime
Limit Secret Exposure in Process Memory
Limiting Object Navigation to Protect Encapsulation
Linux File Permissions: A Practical Guide for Developers
Linux Network Troubleshooting with ip, ss, dig, and curl
List All Group Names on Linux
Liveness and Readiness Health Checks for Backend Services
Load Shedding and Bounded Queues for Overload Control
Load Shedding and Overload Protection for Cloud Services
Loops in Go: A Practical Guide with Examples
Maintain Sorted Sequences in Python with bisect
Make Security-Sensitive State Changes Atomic
Make Sensitive Operations Safe to Retry
Making API Requests in Vue 3 with Axios
Making Time an Explicit Dependency
Manage Application Secrets Safely
Manage Asynchronous Operations with Promises and Async/Await in JavaScript
Manage Goroutine Work Queues Efficiently in Go
Managing Dependencies as Explicit Boundaries
Managing Image Uploads and Resizing with Laravel and Intervention Image
Managing Linux Filenames: Replacing Spaces with Underscores
Managing Technical Debt with Explicit Payoff Triggers
Managing Users on Linux: A Practical Guide
Maps in Go: A Practical Guide with Examples
Mask Padding Tokens in Transformer Attention
Mastering `curl` on Linux: Downloads and API Requests
Match OAuth Redirect URIs Exactly
Measure Attention Concentration with Entropy
Measure Tokenization Efficiency Across Languages
Merging Multiple Dictionaries in Python
Mesh Wi-Fi vs a Traditional Router: What Changes at Home?
Method Syntax in Rust
Model Combinable Options in Python with enum.Flag and IntFlag
Model Domain Constants Safely with Python enum
Model Finite States Clearly with Python Enum
Modeling Workflows with Explicit State Transitions
Modem vs Router: What Each Device Does at Home
Modify JavaScript Arrays Immutably with `toSpliced()`
Monitor Linux Processes with `ps`
Monitoring Directory Sizes on Linux with `du` and `sort`
Move Data Between Linux File Descriptors with splice()
Moving Behavior Closer to the Data It Uses
Mutation Testing for Stronger Test Suites
Normalize Before Making Security Decisions
Normalize Embeddings Before Dot-Product Similarity
Normalize Security-Sensitive Input Before Making Decisions
Notify Users About Security-Sensitive Account Changes
Object Detection with YOLOv8: Using a Pre-Trained Model on Images
OLED vs LCD Screens: What the Difference Means in Everyday Use
Optical vs Digital Zoom: What Changes in Your Phone Camera
Optical vs Electronic Image Stabilization: What Changes in Phone Cameras
Order Dependency-Driven Work in Python with graphlib.TopologicalSorter
Pack Training Sequences to Reduce Padding Waste
Parallel Change for Safe Interface Refactoring
Parse and Render Shell Arguments Safely with Python shlex
Parse Binary Records Safely in Python with struct
Parse Boundary Data into Trusted Types
Parse Input into Trusted Types
Pass Open File Descriptors Between Linux Processes with SCM_RIGHTS
Password Generator
Patch Security Vulnerabilities with Controlled Rollouts
Pointers in Go: A Practical Guide with Examples
Pool Token Embeddings into Sequence Representations
Pool Token Embeddings into Text Representations
Ports and Adapters for Testable Application Boundaries
PostgreSQL Partial Indexes for Focused Query Workloads
Practical Conditional Styling with the CSS :has() Selector
Practical CSRF Defense with SameSite Cookies and Tokens
Practical Error Handling in Rust with Result and the ? Operator
Practical File Paths in Python with pathlib
Practical Frequency Counting in Python with collections.Counter
Practical Function Specialization in Python with functools.partial
Practical Guide to SMS Spam Detection with BERT and PyTorch
Practical Priority Queues in Python with heapq
Practical Queues and Sliding Windows with Python deque
Practical Threat Modeling with Trust Boundaries and Abuse Cases
Practical Ways to Combine Slices in Go
Preserve Cancellation Causes with context.WithCancelCause in Go
Pretty-Printing JSON in Go with MarshalIndent
Prevent Confused Deputy Problems with Explicit Authority
Prevent Dependency Confusion with Explicit Package Sources
Prevent Log Injection with Structured Events
Prevent Lost Updates with Optimistic Locking in SQL
Prevent Overlapping Linux Jobs with Advisory File Locks and flock
Prevent Session Fixation During Web Authentication
Prevent Target Leakage in Machine Learning Evaluation
Preventing Lost Updates with HTTP ETags and Conditional Requests
Preventing SSRF in Backend Services That Fetch User-Supplied URLs
Prioritize Security Patches by Risk
Prioritize Vulnerability Remediation by Real Risk
Privacy Policy
Private Fields and Methods in JavaScript Classes
Probability Calibration for Classification Models
Processing API Data with `requests` and Lambdas in Python
Programming Languages and Tools with Language Server Protocol (LSP) Support
Progressive Enhancement for Resilient Web Forms
Propagate Timeout Budgets Across Cloud Services
Property-Based Testing for Behavioral Invariants
Protect Audit Logs from Tampering
Protect Encryption Keys with Envelope Encryption
Protect Security Logs from the Systems They Observe
Protecting Your Model with an Anti-Corruption Layer
Publish a security.txt That Researchers Can Trust
Put Decisions Next to the Data They Need
Python `try-except`: A Practical Error-Handling Guide
Python Context Managers for Reliable Resource Cleanup
Python Descriptors: Reusable Attribute Behavior Without Magic
Python Dictionaries: A Comprehensive Guide
Python Inheritance
Python Lists: From Basics to Nested Lists
Python Math: Essential Functions and Operations for Beginners
Python memoryview: Zero-Copy Access to Binary Buffers
Python Modules: Organizing Code Effectively
Python Protocols and Structural Subtyping for Flexible APIs
Python RegEx: A Practical Guide to Regular Expressions
Python String Formatting: A Practical Guide
RAM vs Storage: What the Difference Means for Your Device
Rate-Limit Login Attempts by Account and Source
Read and Use `top` on Linux
Read and Write CSV Reliably in Python
Read File Regions Safely in Go with io.ReaderAt
Reading Streams Correctly in Go with io.Reader
Real-Time Object Detection with YOLOv8 and OpenCV
Recheck Authorization at the Point of Use
Recheck Authorization When Resource Ownership Changes
Recovering Safely from Poisoned Mutexes in Rust
Reduce Account Enumeration with Consistent Authentication Responses
Reduce Breach Impact with Data Minimization
Reduce KV Cache Size with Grouped-Query Attention
Reduce Language Model Parameters with Weight Tying
Reduce LLM Decoding Latency with Speculative Decoding
Reduce LLM Hallucinations with Grounding and Verification
Reduce Software Supply Chain Risk with Dependency Controls
Reduce Training Memory with Gradient Checkpointing
Reduce Transformer Activation Memory with Sequence Parallelism
Reduce Transformer Inference Cost with Early Exiting
Reduce Transformer Inference with Early Exits
Reduce Transformer Padding with Length Bucketing
Reducing Change Amplification by Keeping Decisions Together
Reducing Change Amplification in Code
Reducing Object Graph Coupling with the Law of Demeter
Reducing Temporal Coupling in APIs
Reducing Temporal Coupling in Code
Refactoring Legacy Code with Characterization Tests
Refactoring Tangled Methods with Method Objects
Reliable Application Configuration from Environment Variables in Go
Remove Duplicated Knowledge, Not Similar Code
Remove Duplicates from JavaScript Arrays
Removing Hidden Temporal Coupling
Removing Temporal Coupling from APIs
Replace Every Match with JavaScript `String.replaceAll()`
Replace Query-Then-Act with Intention-Revealing Operations
Replacing Behavior Switches with Polymorphism
Replacing Boolean Flag Parameters with Explicit Operations
Replacing Boolean Parameters with Explicit Operations
Replacing Branching with Lookup Tables
Replacing Legacy Systems with the Strangler Pattern
Replacing Long Parameter Lists with Parameter Objects
Replacing Magic Values with Named Concepts
Replacing Primitive Data with Domain Types
Replacing Primitive Values with Domain Types
Replacing Repeated Null Checks with a Null Object
Replacing Repeated Null Checks with Null Objects
Replacing Repeated Type Conditionals with Polymorphism
Replacing Systems in Slices with the Strangler Pattern
Replacing Text in Files with `sed` on Linux
Replacing Type Conditionals with Polymorphism
Request Coalescing in Go Without Extra Dependencies
Request-Scoped State in Python with contextvars
Require Fresh Authentication for Sensitive Actions
Require Independent Approval for High-Impact Actions
Require Reauthentication Before Sensitive Account Changes
Require Reauthentication Before Sensitive Actions
Reverse JavaScript Arrays Immutably with `toReversed()`
Reverse Proxy with Nginx and Go for Microservices
Review Access Before Privileges Become Permanent
Review and Expire Privileged Access Grants
Robust Outlier Detection with Median Absolute Deviation
Rotate API Credentials Without Breaking Services
Rotate Encryption Keys Without Losing Access to Data
Rotate Encryption Keys Without Losing Access to Existing Data
Rotate Encryption Keys Without Losing Data
Rotate Session Identifiers After Authentication
Running Laravel Queues on cPanel with Cron Jobs
Running LLMs on Your Local Computer
Rust Iterator Ownership: iter, iter_mut, and into_iter
Safe Database Migrations with the Expand-and-Contract Pattern
Screen Timeout vs Auto-Lock: What Each Setting Does
Search for Text from the Linux Terminal
Search Multiple Texts Concurrently with Goroutines in Go
Search Text with `grep` and Regular Expressions on Linux
Secure File Upload Handling
Semantic Caching for LLM Applications Without Serving Stale Answers
Sending Data from a Child Component to Its Parent in Vue 3
Separate Cryptographic Keys by Purpose
Separate Decisions from Side Effects
Separate High-Risk Actions with Dual Control
Separate Human and Service Identities
Separate Public Errors from Diagnostic Details
Separating Commands from Queries
Separating Decisions from Side Effects
Separating Decisions from Side Effects with a Functional Core
Serve User Uploads as Untrusted Content
Sets in Python: A Practical Beginner Guide
Several Ways to Handle Optional Parameters in Go
Short Reads and Exact-Length I/O in Go
Silent Mode vs Do Not Disturb: What Each Setting Changes
Single Dispatch in Python: Extensible Type-Based Behavior
Sleep vs Hibernate vs Shut Down: What Actually Changes
Sleep vs Hibernate vs Shutdown: What Changes on a Laptop
Sleep vs Hibernate: What Happens to Your Computer
Sleep vs Hibernate: What Happens to Your Laptop
Slow Down Automated Login Attacks
Slug Generator
Snapshot Tests as Reviewed Contracts
Sort JavaScript Arrays Immutably with `toSorted()`
Sort JavaScript Object Arrays by a Property Value
Split a JavaScript Array into Chunks
Splitting Mixed Work into Explicit Phases
SQLite Savepoints: Partial Rollback Inside a Transaction
SQLite WAL Mode: Concurrency, Checkpoints, and Operational Pitfalls
SSD vs Hard Drive: What the Difference Means in Everyday Use
Stabilize Neural Network Evaluation with EMA Weights
Stabilize Neural Network Evaluation with Exponential Moving Average Weights
Stabilize Neural Network Training with Gradient Clipping
State Management in Vue 3 with Pinia
Steer Language Models by Editing Hidden Activations
Steer LLM Decoding with Token and Sequence Biases
Stereo vs Mono Audio: What the Difference Means When Listening
Stop Model Training at the Right Time with Early Stopping
Stop Neural Network Training at the Right Time with Early Stopping
Stop Neural Network Training with Early Stopping
Store API Keys as Verifiers, Not Recoverable Secrets
Store Passwords for Offline Attack Resistance
Store Passwords with Memory-Hard Hashing
Streaming Pipelines with io.Reader and io.Writer in Go
Structs in Go: A Practical Guide with Examples
Structured Concurrency in Python with asyncio.TaskGroup
Structured Logging in Go with slog
Synchronizing Files with `rsync` over SSH
Testing Go HTTP Handlers with httptest
Throttle Login Attempts Without Making Lockout a Weapon
Tie Input and Output Embeddings in Language Models
Time Series Cross-Validation with Walk-Forward Splits
Token Bucket Rate Limiting in Go
Train Larger AI Models with Gradient Accumulation
Transaction Isolation and Safe Database Retries
Translating Errors at Abstraction Boundaries
Traverse Hierarchical Data with Recursive SQL CTEs
Treat Authenticator Enrollment as an Account-Control Change
Treat CORS as a Browser Read Permission
Treat Deserialization as a Trust Boundary
Treat Email Address Changes as Account-Control Changes
Treat Request Hostnames as Untrusted Input
Treat Request Hosts as Untrusted Input
Troubleshoot Linux Services with systemd and journalctl
Troubleshooting systemd Services with systemctl and journalctl
Truncate Text to a Maximum Length in JavaScript
Turn Security Requirements Into Invariants
Two-Way Binding with `v-model` in Vue 3
Understand Activation Functions in Transformer Feed-Forward Networks
Understand and Use `htop` Effectively
Understand Batch Normalization in Neural Networks
Understand Beam Search for Sequence Generation
Understand Classifier-Free Guidance in Diffusion Models
Understand Contrastive Decoding with Expert and Amateur Models
Understand Contrastive Learning with Positive and Negative Pairs
Understand Cross-Entropy Loss for Classification
Understand Direct Preference Optimization for Language Models
Understand Direct Preference Optimization for LLM Alignment
Understand Escape Analysis and Heap Allocations in Go
Understand Gradient Noise in Mini-Batch Training
Understand Knowledge Distillation for Smaller AI Models
Understand KV Caching in LLM Inference
Understand Label Smoothing in Classification Models
Understand Layer Normalization in Transformers
Understand Linux File Descriptor Duplication and Shell Redirection
Understand LLM Quantization for Efficient Inference
Understand LoRA for Parameter-Efficient Fine-Tuning
Understand Memory-Mapped Files on Linux with mmap
Understand Mixture-of-Experts Models
Understand Negative Sampling for Representation Learning
Understand Nil Interface Values in Go
Understand Perplexity for Language Model Evaluation
Understand Pin and Unpin in Rust
Understand Positional Information in Transformer Models
Understand Rotary Position Embeddings in Transformers
Understand Self-Attention in Transformer Models
Understand Speculative Decoding for Faster LLM Inference
Understand SQL NULL with Three-Valued Logic
Understand Teacher Forcing in Autoregressive Models
Understand Tokenization in Language Models
Understand Tokenization in Large Language Models
Understand Weight Decay in Adam and AdamW
Understand Weight Decay in Neural Network Training
Understanding `__init__.py` in Python
Understanding `__str__` vs `__repr__` in Python
Understanding `@staticmethod` vs `@classmethod` in Python
Understanding `for`, `forEach`, and `map` in JavaScript
Understanding bind:value Between Parent and Child Components in Svelte
Understanding Classes and Objects in Python
Understanding Computed Properties in Vue 3
Understanding Conditional Expressions in Python
Understanding Control Flow in Rust
Understanding Embeddings and Similarity Search
Understanding Enums and Pattern Matching in Rust
Understanding HTTP Status Codes in Laravel: A Developer's Guide
Understanding Iterators in Python
Understanding Ownership in Rust
Understanding Polymorphism in Python
Understanding References and Borrowing in Rust
Understanding Structs and Methods in Rust
Understanding the Differences Between pnpm, Yarn, npm, and Bun
Understanding Tuples in Python: A Practical Guide
Understanding Variable Scope in JavaScript
Understanding Watchers in Vue 3
Understanding Write Skew and Transaction Isolation
Update JavaScript Arrays Immutably with `with()`
Uploading and Downloading Files over SSH on Linux
URL Encoder / Decoder
Use `Promise.any()` for the First Successful Result
Use a Pepper to Limit Offline Password Cracking
Use Best-of-N Sampling to Spend More Compute at Inference
Use Callable-Sentinel Iteration for Chunked Reads in Python
Use Class-Weighted Loss for Imbalanced Classification
Use CSS Subgrid to Align Nested Components
Use Decimal for Exact Base-10 Arithmetic in Python
Use Decimal for Predictable Base-10 Arithmetic in Python
Use defer for Reliable Cleanup in Go
Use Dropout Without Breaking Neural Network Inference
Use Early Exits for Adaptive Neural Network Inference
Use EXISTS and NOT EXISTS for Relationship Checks in SQL
Use Few-Shot Prompting with Effective Examples
Use functools.singledispatch for Type-Based Extension Points in Python
Use Honeytokens to Detect Credential Misuse
Use HTTP 103 Early Hints Without Breaking Page Delivery
Use HTTP Security Headers as Defense in Depth
Use JavaScript Import Maps for Browser Module Aliases
Use Label Smoothing Without Hiding Classification Mistakes
Use Learning Rate Warmup and Decay for Stable Training
Use Mixup to Regularize Neural Network Classifiers
Use Optional Chaining (`?.`) Safely in JavaScript
Use Padding Masks for Variable-Length Transformer Batches
Use Partial Indexes to Index the Rows You Actually Query
Use Python Protocols for Structural Typing at API Boundaries
Use Single Dispatch for Type-Based Behavior in Python
Use Slotted Dataclasses When Object Shape Is Fixed in Python
Use SQL Window Functions Without Losing Row Detail
Use SQLite WITHOUT ROWID for Composite Primary Keys
Use structuredClone for Safe Deep Copying in JavaScript
Use sync.Pool for Temporary Object Reuse in Go
Use the Strangler Fig Pattern for Incremental System Modernization
Use the Typestate Pattern to Make Invalid Rust States Unrepresentable
Use Weak References for Non-Owning Object Relationships in Python
Using `venv` in Python
Using Decision Tables to Tame Complex Rules
Using Feature Flags Without Creating Permanent Complexity
Using Functions in Rust
Using Guard Clauses to Keep Control Flow Flat
Using MongoDB Aggregation to Build Hierarchical Category Structures
Using Nginx as a Reverse Proxy for a Go Application
Using PHP's Built-In Server: A Quick Guide to `php -S`
Using Snapshot Tests Without Freezing Incidental Details
Using Variables in Rust
Using YOLOv8 for Object Detection with Labels and Confidence Scores
Validate File Uploads Before You Trust Them
Validate LLM Output with Structured Contracts
Validate Untrusted Input at Trust Boundaries
Validate User Input in a Go Web App with Gin
Validating at Boundaries to Contain Invalid Data
Variables in Go: A Practical Guide
Verify Artifacts Before Running Them
Verify Build Provenance Before Trusting Artifacts
Verify Dependency Integrity Before Installation
Verify TLS Server Identity Without Bypasses
Version Embeddings for Safe Semantic Search Migrations
Versioning Contracts, Not Just Releases
View and Manage Processes on Linux
Wake Linux Event Loops from Other Threads with eventfd
Weak References in Python: Caches, Object Lifetimes, and Cleanup
What Airplane Mode Does on Your Phone
What Battery Health Means on Phones and Laptops
What Battery Saver Mode Changes on Your Device
What Bluetooth Pairing Does and Why Devices Remember Each Other
What Browser Cache Does and When to Clear It
What Camera Megapixels Mean and Why More Is Not Always More Detail
What Data Saver Mode Changes on Your Phone
What DNS Does and Why It Can Affect Browsing
What File Extensions Mean and Why They Matter
What Formatting a USB Drive Does and Why File Systems Matter
What Happens When You Leave Apps Running in the Background
What Haptic Feedback Does on Your Phone
What Haptic Feedback Is and Why Devices Use It
What HDR Means on Screens and When It Makes a Visible Difference
What Internet Latency Means and Why Speed Is Not the Whole Story
What Photo Metadata Is and What Happens When You Share a Picture
What Private Browsing Does and Does Not Hide
What RAM Does and How Much Memory You Actually Need
What Screen Brightness Nits Mean in Everyday Use
What Screen Color Temperature Changes and Why Warmer Displays Look Different
What Screen Refresh Rate Means and When Higher Hz Matters
What Screen Refresh Rate Means in Everyday Use
What Screen Resolution Means and When More Pixels Help
What Spatial Audio Does and Why It Can Sound More Immersive
What Virtual Memory Does When Your Computer Runs Low on RAM
What Wi-Fi Channel Width Means and Why Wider Is Not Always Better
What Wi-Fi Signal Bars Do and Do Not Tell You
Why a File Can Be Too Large for an Empty USB Drive
Why a Higher-Wattage USB-C Charger Does Not Force More Power Into Your Device
Why a Power Bank Does Not Deliver Its Full Rated Capacity to Your Phone
Why a Screenshot Can Look Different From Your Screen
Why a USB Hub Can Slow Down Fast Devices
Why an App’s Download Size and Installed Size Can Be Different
Why Background Browser Tabs Sometimes Reload
Why Battery Percentage Is an Estimate, Not an Exact Measurement
Why Bluetooth Accessory Battery Levels Can Jump or Lag
Why Bluetooth Audio Has Delay and Why Video Often Stays in Sync
Why Bluetooth Connections Drop and How to Improve Reliability
Why Bluetooth Headphones Can Sound Worse When You Use the Microphone
Why Closing Background Apps Does Not Always Help Your Phone
Why Deleting Files May Not Free Storage Immediately
Why Devices Need Free Storage Space to Work Properly
Why Devices Slow Down When They Get Hot
Why Ethernet Can Be More Reliable Than Wi-Fi
Why File Copy Speed Can Change During a Transfer
Why LED Lights Can Flicker or Form Bands on Camera
Why Moving a File Can Be Much Faster Than Copying It
Why Phone Charging Slows Down Near Full
Why Phones and Laptops Use More Than One Microphone
Why Phones Get Warm While Charging
Why Photo and File Thumbnails Can Take Time to Appear
Why Photos Can Look Worse After You Send Them
Why Restarting a Device Can Fix So Many Problems
Why Safely Ejecting USB Drives Still Matters
Why Screen Recordings Can Have No Audio
Why Some Downloads Can Resume After They Are Interrupted
Why Some Software Updates Need a Restart
Why Storage Capacity Can Look Smaller Than Advertised
Why Streaming Video Quality Changes While You Watch
Why System Data and Other Storage Can Grow on Your Phone
Why Touchscreens Do Not Work With Every Glove
Why USB Hubs Share Bandwidth Between Connected Devices
Why USB-C Cables Do Not All Work the Same Way
Why Websites Can Think You Are in the Wrong Location
Why Wi-Fi Extender Placement Matters
Why Your Device May Use a Private Wi-Fi Address
Why Your Laptop Fan Speeds Up and Slows Down
Why Your Laptop’s Battery Time Remaining Keeps Changing
Why Your Phone Camera Preview Can Look Different From the Final Photo
Why Your Phone Camera Sometimes Struggles to Focus
Why Your Phone Can Charge Over USB but Not Transfer Files
Why Your Phone Can Have Signal Bars but No Internet
Why Your Phone May Switch Between Wi-Fi and Mobile Data
Why Your Phone Screen Turns Off During Calls
Why Your Phone’s Compass Can Point the Wrong Way
Working with Arrays in Rust
Working with CSV Files in Pandas
Working with Pandas: A Beginner Guide
Working with Time in Go Without the Headaches
Write Files Atomically on Linux with rename and fsync