hardware

How code meets the machine: bits and bytes, memory, CPUs, and GPUs, explained for developers with concrete, beginner-friendly examples.

How to Evaluate LLM Output: RAGAS, DeepEval, Hallucination Detection

Your model just summarized a support ticket. Is the summary any good? You cannot run accuracy_score on free-form text: there is no single right answer, and two good summaries can use completely different words. LLM evaluation in Python exists to put a number on quality anyway, and this post builds the tools for it, from a hand-rolled grader up to RAGAS and DeepEval. The trick the whole industry settled on is almost funny: use another language model as the grader. ... Read More

ML: Setting Up ML Environment with Jupyter and scikit-learn

Your Python ML setup does not need to be complicated: this walkthrough gets your machine learning environment running fast. You will install Jupyter Notebook, scikit-learn, and the rest of the essential ML libraries, configure your workspace, and verify everything works by training a real model in 10 lines of code. “The best notebook is one where the code runs. The second best is one where the code ran last week.” Joel Grus, JupyterCon 2018 Last Updated: July 2026 | Tested ... Read More

Python: Multiprocessing for Parallel CPU-bound Tasks

Python multiprocessing gives you true parallelism: it runs separate Python processes, one per Central Processing Unit (CPU) core, so each escapes the Global Interpreter Lock (GIL) and your heavy math actually runs at the same time. This guide shows when to reach for it over threading, how Pool and ProcessPoolExecutor work, and how to pass data between processes with a queue. “Concurrency is not parallelism.” Rob Pike, Go Proverbs Last Updated: July 2026 | Tested on: Python 3.14.6 | Difficulty: ... Read More