<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Your Blog</title><description>A personal blog.</description><link>https://blog.spanthadas.com/</link><language>en-us</language><item><title>Debugging Content Collection Changes That Don&apos;t Show Up in Astro</title><link>https://blog.spanthadas.com/debugging-astro-content-collection-stale-cache/</link><guid isPermaLink="true">https://blog.spanthadas.com/debugging-astro-content-collection-stale-cache/</guid><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate><category>astro</category><category>debugging</category></item><item><title>Preventing UI Flash with Blocking Inline Scripts</title><link>https://blog.spanthadas.com/preventing-ui-flash-with-blocking-inline-scripts/</link><guid isPermaLink="true">https://blog.spanthadas.com/preventing-ui-flash-with-blocking-inline-scripts/</guid><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate><category>javascript</category><category>debugging</category></item><item><title>How I Debugged an 85MB Astro Dist Down to 25MB</title><link>https://blog.spanthadas.com/debugging-astro-dist-size-85mb-to-25mb/</link><guid isPermaLink="true">https://blog.spanthadas.com/debugging-astro-dist-size-85mb-to-25mb/</guid><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate><category>astro</category><category>performance</category><category>debugging</category></item><item><title>Structured Data in Python: Choosing Between dataclasses, TypedDict, and Pydantic</title><link>https://blog.spanthadas.com/dataclasses-typeddict-pydantic-which-one-to-use/</link><guid isPermaLink="true">https://blog.spanthadas.com/dataclasses-typeddict-pydantic-which-one-to-use/</guid><pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate><category>python</category></item><item><title>Netlify Domain Redirects: Subdomain to Custom Domain</title><link>https://blog.spanthadas.com/netlify-domain-redirects-subdomain-to-custom-domain/</link><guid isPermaLink="true">https://blog.spanthadas.com/netlify-domain-redirects-subdomain-to-custom-domain/</guid><pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate><category>devops</category><category>netlify</category></item><item><title>Mathematical Terminology: Propositions, Axioms, Theorems, and the Rest</title><link>https://blog.spanthadas.com/mathematical-terminology-quick-reference/</link><guid isPermaLink="true">https://blog.spanthadas.com/mathematical-terminology-quick-reference/</guid><pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate><category>mathematics</category></item><item><title>Debugging C++ in VSCode: tasks.json, launch.json, and the Build Step</title><link>https://blog.spanthadas.com/debugging-cpp-in-vscode-tasks-and-launch-json/</link><guid isPermaLink="true">https://blog.spanthadas.com/debugging-cpp-in-vscode-tasks-and-launch-json/</guid><pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate><category>cpp</category><category>debugging</category></item><item><title>Fine-Tuning: Adapting Pretrained Models to New Tasks</title><link>https://blog.spanthadas.com/fine-tuning-architecture-and-adaptation/</link><guid isPermaLink="true">https://blog.spanthadas.com/fine-tuning-architecture-and-adaptation/</guid><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate><category>mathematics</category><category>deep-learning</category></item><item><title>C++ Primitive Types Are Not What You Think: Fixed-Width Integers and Why They Exist</title><link>https://blog.spanthadas.com/cpp-primitive-types-and-fixed-width-integers/</link><guid isPermaLink="true">https://blog.spanthadas.com/cpp-primitive-types-and-fixed-width-integers/</guid><pubDate>Fri, 12 Sep 2025 00:00:00 GMT</pubDate><category>cpp</category></item><item><title>Bridging Python and C++ with pybind11</title><link>https://blog.spanthadas.com/python-cpp-bindings-with-pybind11/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-cpp-bindings-with-pybind11/</guid><pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate><category>python</category><category>cpp</category></item><item><title>Makefiles for C++ Projects: Targets, Dependencies, and Special Rules</title><link>https://blog.spanthadas.com/makefile-for-cpp-projects/</link><guid isPermaLink="true">https://blog.spanthadas.com/makefile-for-cpp-projects/</guid><pubDate>Wed, 03 Sep 2025 00:00:00 GMT</pubDate><category>cpp</category></item><item><title>Python asyncio: The Event Loop and When It Actually Helps</title><link>https://blog.spanthadas.com/python-asyncio-event-loop-and-when-it-actually-helps/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-asyncio-event-loop-and-when-it-actually-helps/</guid><pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate><category>python</category><category>concurrency</category></item><item><title>Pinia: Stores, Getters, and Actions in Vue 3&apos;s Official State Library</title><link>https://blog.spanthadas.com/pinia-vue-3-state-management-stores-getters-and-actions/</link><guid isPermaLink="true">https://blog.spanthadas.com/pinia-vue-3-state-management-stores-getters-and-actions/</guid><pubDate>Tue, 22 Apr 2025 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue3</category></item><item><title>The Machinery Behind Python&apos;s Built-in Decorators: Descriptors Explained</title><link>https://blog.spanthadas.com/python-descriptors-how-property-classmethod-staticmethod-work/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-descriptors-how-property-classmethod-staticmethod-work/</guid><pubDate>Mon, 07 Apr 2025 00:00:00 GMT</pubDate><category>python</category><category>design-patterns</category></item><item><title>Python&apos;s Hash and Equality Contract: What Sets and Dicts Depend On</title><link>https://blog.spanthadas.com/python-hash-eq-mutability-and-sets/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-hash-eq-mutability-and-sets/</guid><pubDate>Tue, 18 Mar 2025 00:00:00 GMT</pubDate><category>python</category></item><item><title>Prop Drilling Breaks at Depth: Managing Shared State in Vue 3 with Pinia</title><link>https://blog.spanthadas.com/vue-3-when-props-are-not-enough-and-pinia-takes-over/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-3-when-props-are-not-enough-and-pinia-takes-over/</guid><pubDate>Tue, 18 Mar 2025 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue3</category></item><item><title>Annotating Python: Type Hints from Basics to Generics</title><link>https://blog.spanthadas.com/python-type-hints-in-practice/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-type-hints-in-practice/</guid><pubDate>Tue, 11 Feb 2025 00:00:00 GMT</pubDate><category>python</category></item><item><title>ref, reactive, Watchers, and Composables: The Composition API in Practice</title><link>https://blog.spanthadas.com/vue-3-composition-api-ref-reactive-watch-and-composables/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-3-composition-api-ref-reactive-watch-and-composables/</guid><pubDate>Tue, 11 Feb 2025 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue3</category></item><item><title>Blockchain: Distributed Ledgers and Consensus</title><link>https://blog.spanthadas.com/blockchain-distributed-ledgers-and-consensus/</link><guid isPermaLink="true">https://blog.spanthadas.com/blockchain-distributed-ledgers-and-consensus/</guid><pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate><category>blockchain</category><category>security</category></item><item><title>How Vue 3 Rebuilt Reactivity Around Proxy</title><link>https://blog.spanthadas.com/vue-3-reactivity-proxy-vs-object-defineproperty/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-3-reactivity-proxy-vs-object-defineproperty/</guid><pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue3</category></item><item><title>Where Is Python Slow: cProfile, pstats, and line_profiler</title><link>https://blog.spanthadas.com/profiling-python-code-cprofile-line-profiler-and-finding-bottlenecks/</link><guid isPermaLink="true">https://blog.spanthadas.com/profiling-python-code-cprofile-line-profiler-and-finding-bottlenecks/</guid><pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate><category>python</category></item><item><title>Association Rule Mining: Support, Confidence, and Apriori</title><link>https://blog.spanthadas.com/association-rule-mining-and-pattern-discovery/</link><guid isPermaLink="true">https://blog.spanthadas.com/association-rule-mining-and-pattern-discovery/</guid><pubDate>Sat, 28 Dec 2024 00:00:00 GMT</pubDate><category>ml</category><category>mathematics</category></item><item><title>Data Formats: A Taxonomy of Variable Types</title><link>https://blog.spanthadas.com/data-formats-a-taxonomy-of-variable-types/</link><guid isPermaLink="true">https://blog.spanthadas.com/data-formats-a-taxonomy-of-variable-types/</guid><pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate><category>statistics</category></item><item><title>Routing, Switching, and Network Devices</title><link>https://blog.spanthadas.com/routing-switching-and-the-network-layer/</link><guid isPermaLink="true">https://blog.spanthadas.com/routing-switching-and-the-network-layer/</guid><pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate><category>networking</category></item><item><title>Relationship Exploration in EDA: Correlation, Independence, and the Right Test</title><link>https://blog.spanthadas.com/relationship-exploration-in-eda-correlation-independence-and-the-right-test/</link><guid isPermaLink="true">https://blog.spanthadas.com/relationship-exploration-in-eda-correlation-independence-and-the-right-test/</guid><pubDate>Tue, 03 Dec 2024 00:00:00 GMT</pubDate><category>python</category><category>statistics</category></item><item><title>When Python Holds On: Reference Cycles, Finalizers, and Weak References</title><link>https://blog.spanthadas.com/memory-leaks-in-python-reference-cycles-and-weak-references/</link><guid isPermaLink="true">https://blog.spanthadas.com/memory-leaks-in-python-reference-cycles-and-weak-references/</guid><pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate><category>python</category></item><item><title>Kernels: The Representer Theorem and the Curse of Dimensionality</title><link>https://blog.spanthadas.com/kernels-representer-theorem-and-curse-of-dimensionality/</link><guid isPermaLink="true">https://blog.spanthadas.com/kernels-representer-theorem-and-curse-of-dimensionality/</guid><pubDate>Fri, 22 Nov 2024 00:00:00 GMT</pubDate><category>ml</category><category>mathematics</category></item><item><title>Outlier Detection: A Map of the Methods</title><link>https://blog.spanthadas.com/outlier-detection-a-map-of-the-methods/</link><guid isPermaLink="true">https://blog.spanthadas.com/outlier-detection-a-map-of-the-methods/</guid><pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate><category>python</category><category>statistics</category></item><item><title>Cross Validation: LOOCV, K-Fold, and When to Use Each</title><link>https://blog.spanthadas.com/cross-validation-loocv-k-fold-and-when-to-use-each/</link><guid isPermaLink="true">https://blog.spanthadas.com/cross-validation-loocv-k-fold-and-when-to-use-each/</guid><pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate><category>python</category><category>statistics</category><category>ml</category></item><item><title>Neural Architecture Search and Network Pruning</title><link>https://blog.spanthadas.com/neural-architecture-search-and-pruning/</link><guid isPermaLink="true">https://blog.spanthadas.com/neural-architecture-search-and-pruning/</guid><pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate><category>deep-learning</category></item><item><title>Generators vs Lists in Python: Memory and Lazy Evaluation</title><link>https://blog.spanthadas.com/generators-vs-lists-memory-and-lazy-evaluation-in-python/</link><guid isPermaLink="true">https://blog.spanthadas.com/generators-vs-lists-memory-and-lazy-evaluation-in-python/</guid><pubDate>Mon, 04 Nov 2024 00:00:00 GMT</pubDate><category>python</category></item><item><title>Scaling and Normalisation: When It Helps and When It Hurts</title><link>https://blog.spanthadas.com/scaling-and-normalisation-when-it-helps-and-when-it-hurts/</link><guid isPermaLink="true">https://blog.spanthadas.com/scaling-and-normalisation-when-it-helps-and-when-it-hurts/</guid><pubDate>Sat, 02 Nov 2024 00:00:00 GMT</pubDate><category>python</category><category>statistics</category></item><item><title>Categorical Data and Cardinality: Features, Targets, and the Encoding Problem</title><link>https://blog.spanthadas.com/categorical-data-and-cardinality-x-vs-y-low-vs-high/</link><guid isPermaLink="true">https://blog.spanthadas.com/categorical-data-and-cardinality-x-vs-y-low-vs-high/</guid><pubDate>Mon, 28 Oct 2024 00:00:00 GMT</pubDate><category>python</category><category>statistics</category><category>ml</category></item><item><title>Ensemble Learning: Bagging, Random Forests, and AdaBoost</title><link>https://blog.spanthadas.com/ensemble-learning-bagging-and-random-forests/</link><guid isPermaLink="true">https://blog.spanthadas.com/ensemble-learning-bagging-and-random-forests/</guid><pubDate>Sat, 19 Oct 2024 00:00:00 GMT</pubDate><category>deep-learning</category></item><item><title>Linear Algebra: Eigendecomposition, Transforms, and Probability Foundations</title><link>https://blog.spanthadas.com/linear-algebra-eigendecomposition-and-probability/</link><guid isPermaLink="true">https://blog.spanthadas.com/linear-algebra-eigendecomposition-and-probability/</guid><pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate><category>mathematics</category><category>ml</category></item><item><title>Skewness: What the Shape of Your Data Is Telling You</title><link>https://blog.spanthadas.com/skewness-what-the-shape-of-your-data-is-telling-you/</link><guid isPermaLink="true">https://blog.spanthadas.com/skewness-what-the-shape-of-your-data-is-telling-you/</guid><pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate><category>python</category><category>statistics</category></item><item><title>Multiprocessing, Threading, and Asyncio: Choosing the Right Concurrency Model in Python</title><link>https://blog.spanthadas.com/multiprocessing-threading-asyncio-choosing-the-right-model/</link><guid isPermaLink="true">https://blog.spanthadas.com/multiprocessing-threading-asyncio-choosing-the-right-model/</guid><pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate><category>python</category><category>concurrency</category></item><item><title>SVMs: The Kernel Trick and Dual Representation</title><link>https://blog.spanthadas.com/svm-kernels-and-dual-representation/</link><guid isPermaLink="true">https://blog.spanthadas.com/svm-kernels-and-dual-representation/</guid><pubDate>Thu, 03 Oct 2024 00:00:00 GMT</pubDate><category>ml</category><category>mathematics</category></item><item><title>The OSI Model and Application-Layer Protocols</title><link>https://blog.spanthadas.com/osi-model-and-network-protocols/</link><guid isPermaLink="true">https://blog.spanthadas.com/osi-model-and-network-protocols/</guid><pubDate>Mon, 30 Sep 2024 00:00:00 GMT</pubDate><category>networking</category></item><item><title>Splines, Bezier Curves, and B-Splines</title><link>https://blog.spanthadas.com/splines-bezier-curves-and-b-splines/</link><guid isPermaLink="true">https://blog.spanthadas.com/splines-bezier-curves-and-b-splines/</guid><pubDate>Wed, 18 Sep 2024 00:00:00 GMT</pubDate><category>mathematics</category></item><item><title>KANs: Kolmogorov-Arnold Networks</title><link>https://blog.spanthadas.com/kan-kolmogorov-arnold-networks/</link><guid isPermaLink="true">https://blog.spanthadas.com/kan-kolmogorov-arnold-networks/</guid><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>deep-learning</category></item><item><title>Cloud Computing, Virtualisation, and Microservices</title><link>https://blog.spanthadas.com/cloud-computing-virtualisation-microservices/</link><guid isPermaLink="true">https://blog.spanthadas.com/cloud-computing-virtualisation-microservices/</guid><pubDate>Fri, 30 Aug 2024 00:00:00 GMT</pubDate><category>devops</category></item><item><title>VAEs: ELBO, Reparameterisation, and the Latent Space</title><link>https://blog.spanthadas.com/variational-autoencoders-elbo-and-reparameterisation/</link><guid isPermaLink="true">https://blog.spanthadas.com/variational-autoencoders-elbo-and-reparameterisation/</guid><pubDate>Wed, 21 Aug 2024 00:00:00 GMT</pubDate><category>deep-learning</category></item><item><title>MCMC: Sampling from Intractable Posteriors</title><link>https://blog.spanthadas.com/mcmc-markov-chain-monte-carlo/</link><guid isPermaLink="true">https://blog.spanthadas.com/mcmc-markov-chain-monte-carlo/</guid><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><category>ml</category><category>mathematics</category></item><item><title>Threads, Locks, and the One Rule CPython Will Not Break</title><link>https://blog.spanthadas.com/the-python-gil-what-it-blocks-and-when-threads-still-work/</link><guid isPermaLink="true">https://blog.spanthadas.com/the-python-gil-what-it-blocks-and-when-threads-still-work/</guid><pubDate>Mon, 05 Aug 2024 00:00:00 GMT</pubDate><category>python</category><category>concurrency</category></item><item><title>Neural Network Efficiency: FLOPs, Memory, and Quantisation</title><link>https://blog.spanthadas.com/neural-network-efficiency-flops-memory-quantisation/</link><guid isPermaLink="true">https://blog.spanthadas.com/neural-network-efficiency-flops-memory-quantisation/</guid><pubDate>Sun, 28 Jul 2024 00:00:00 GMT</pubDate><category>deep-learning</category></item><item><title>TCP/IP: Transport Layer, Encapsulation, and Port Addressing</title><link>https://blog.spanthadas.com/tcp-ip-transport-layer-and-addressing/</link><guid isPermaLink="true">https://blog.spanthadas.com/tcp-ip-transport-layer-and-addressing/</guid><pubDate>Tue, 16 Jul 2024 00:00:00 GMT</pubDate><category>networking</category></item><item><title>C++ Header Files, Inline Functions, and Inheritance</title><link>https://blog.spanthadas.com/cpp-header-files-inline-functions-and-inheritance/</link><guid isPermaLink="true">https://blog.spanthadas.com/cpp-header-files-inline-functions-and-inheritance/</guid><pubDate>Thu, 11 Jul 2024 00:00:00 GMT</pubDate><category>cpp</category></item><item><title>KL Divergence and Autoencoders</title><link>https://blog.spanthadas.com/kl-divergence-and-autoencoders/</link><guid isPermaLink="true">https://blog.spanthadas.com/kl-divergence-and-autoencoders/</guid><pubDate>Wed, 03 Jul 2024 00:00:00 GMT</pubDate><category>deep-learning</category><category>mathematics</category></item><item><title>Keycloak, OAuth2, and Identity Providers</title><link>https://blog.spanthadas.com/keycloak-oauth2-and-identity-providers/</link><guid isPermaLink="true">https://blog.spanthadas.com/keycloak-oauth2-and-identity-providers/</guid><pubDate>Thu, 27 Jun 2024 00:00:00 GMT</pubDate><category>networking</category><category>security</category></item><item><title>Lazy Initialisation in Python: Only Load What You Need, When You Need It</title><link>https://blog.spanthadas.com/lazy-initialisation-in-python/</link><guid isPermaLink="true">https://blog.spanthadas.com/lazy-initialisation-in-python/</guid><pubDate>Mon, 17 Jun 2024 00:00:00 GMT</pubDate><category>python</category><category>design-patterns</category></item><item><title>GANs: The Minimax Objective and Adversarial Training</title><link>https://blog.spanthadas.com/gans-adversarial-training-and-minimax-objective/</link><guid isPermaLink="true">https://blog.spanthadas.com/gans-adversarial-training-and-minimax-objective/</guid><pubDate>Fri, 14 Jun 2024 00:00:00 GMT</pubDate><category>deep-learning</category></item><item><title>Kubernetes: Architecture, Workloads, and Core Concepts</title><link>https://blog.spanthadas.com/kubernetes-architecture-workloads-concepts/</link><guid isPermaLink="true">https://blog.spanthadas.com/kubernetes-architecture-workloads-concepts/</guid><pubDate>Sat, 08 Jun 2024 00:00:00 GMT</pubDate><category>devops</category><category>kubernetes</category></item><item><title>Python Debugging in VSCode: File Paths, Venvs, and launch.json</title><link>https://blog.spanthadas.com/python-debugging-in-vscode-file-paths-and-launch-json/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-debugging-in-vscode-file-paths-and-launch-json/</guid><pubDate>Mon, 08 Apr 2024 00:00:00 GMT</pubDate><category>python</category><category>debugging</category></item><item><title>Python Classes and Dunder Methods: A Quick Reference</title><link>https://blog.spanthadas.com/python-classes-and-dunder-methods/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-classes-and-dunder-methods/</guid><pubDate>Sat, 10 Feb 2024 00:00:00 GMT</pubDate><category>python</category></item><item><title>Protecting Git Branches with Local Hooks and GitHub Branch Protection</title><link>https://blog.spanthadas.com/protecting-git-branches-with-hooks-and-github-rules/</link><guid isPermaLink="true">https://blog.spanthadas.com/protecting-git-branches-with-hooks-and-github-rules/</guid><pubDate>Sat, 03 Feb 2024 00:00:00 GMT</pubDate><category>git</category></item><item><title>Git Config: How It Works and What to Set</title><link>https://blog.spanthadas.com/git-config-how-it-works-and-what-to-set/</link><guid isPermaLink="true">https://blog.spanthadas.com/git-config-how-it-works-and-what-to-set/</guid><pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate><category>git</category></item><item><title>Git: Everyday Commands and Advanced Tools</title><link>https://blog.spanthadas.com/git-everyday-commands-and-advanced-tools/</link><guid isPermaLink="true">https://blog.spanthadas.com/git-everyday-commands-and-advanced-tools/</guid><pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate><category>git</category></item><item><title>Python Projects, Libraries, and Packages: What They Are and How to Build Them</title><link>https://blog.spanthadas.com/python-projects-libraries-and-packages/</link><guid isPermaLink="true">https://blog.spanthadas.com/python-projects-libraries-and-packages/</guid><pubDate>Mon, 20 Nov 2023 00:00:00 GMT</pubDate><category>python</category></item><item><title>pipx: The Right Way to Install Python CLI Tools</title><link>https://blog.spanthadas.com/pipx-the-right-way-to-install-python-cli-tools/</link><guid isPermaLink="true">https://blog.spanthadas.com/pipx-the-right-way-to-install-python-cli-tools/</guid><pubDate>Mon, 02 Oct 2023 00:00:00 GMT</pubDate><category>python</category></item><item><title>Returning to a Python Project on Mac After Months</title><link>https://blog.spanthadas.com/returning-to-a-python-project-on-mac-after-months/</link><guid isPermaLink="true">https://blog.spanthadas.com/returning-to-a-python-project-on-mac-after-months/</guid><pubDate>Mon, 14 Aug 2023 00:00:00 GMT</pubDate><category>python</category></item><item><title>From pip to uv: How Python Package Management Evolved</title><link>https://blog.spanthadas.com/from-pip-to-uv-how-python-package-management-evolved/</link><guid isPermaLink="true">https://blog.spanthadas.com/from-pip-to-uv-how-python-package-management-evolved/</guid><pubDate>Mon, 05 Jun 2023 00:00:00 GMT</pubDate><category>python</category></item><item><title>From npm to pnpm: How Package Management Evolved</title><link>https://blog.spanthadas.com/from-npm-to-pnpm-how-package-management-evolved/</link><guid isPermaLink="true">https://blog.spanthadas.com/from-npm-to-pnpm-how-package-management-evolved/</guid><pubDate>Tue, 18 Apr 2023 00:00:00 GMT</pubDate><category>javascript</category><category>nodejs</category></item><item><title>From Code to Build: The Angular Development Pipeline</title><link>https://blog.spanthadas.com/the-angular-development-pipeline/</link><guid isPermaLink="true">https://blog.spanthadas.com/the-angular-development-pipeline/</guid><pubDate>Tue, 07 Mar 2023 00:00:00 GMT</pubDate><category>javascript</category><category>angular</category></item><item><title>Beyond Templates: Render Functions and JSX in Vue 2</title><link>https://blog.spanthadas.com/vue-2-render-functions-and-jsx-when-templates-are-not-enough/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-2-render-functions-and-jsx-when-templates-are-not-enough/</guid><pubDate>Tue, 28 Feb 2023 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue2</category></item><item><title>From Code to Build: The Vue Development Pipeline</title><link>https://blog.spanthadas.com/the-vue-development-pipeline/</link><guid isPermaLink="true">https://blog.spanthadas.com/the-vue-development-pipeline/</guid><pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category></item><item><title>From Source to Browser: Building Without a Framework</title><link>https://blog.spanthadas.com/from-source-to-browser-building-without-a-framework/</link><guid isPermaLink="true">https://blog.spanthadas.com/from-source-to-browser-building-without-a-framework/</guid><pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Basics of Regular Expressions</title><link>https://blog.spanthadas.com/basics-of-regular-expressions/</link><guid isPermaLink="true">https://blog.spanthadas.com/basics-of-regular-expressions/</guid><pubDate>Mon, 19 Dec 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Awful Parts in JS: Global Variables and Scope</title><link>https://blog.spanthadas.com/awful-parts-global-variables-and-scope/</link><guid isPermaLink="true">https://blog.spanthadas.com/awful-parts-global-variables-and-scope/</guid><pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Awful Parts in JS: NaN</title><link>https://blog.spanthadas.com/awful-parts-nan/</link><guid isPermaLink="true">https://blog.spanthadas.com/awful-parts-nan/</guid><pubDate>Tue, 22 Nov 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Centralised State in Vue 2: How Vuex Works and When to Reach for It</title><link>https://blog.spanthadas.com/vuex-in-vue-2-mutations-actions-and-when-you-actually-need-it/</link><guid isPermaLink="true">https://blog.spanthadas.com/vuex-in-vue-2-mutations-actions-and-when-you-actually-need-it/</guid><pubDate>Thu, 10 Nov 2022 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue2</category></item><item><title>Callbacks, Module, Cascade, Curry and Memoization in JavaScript</title><link>https://blog.spanthadas.com/callbacks-modules-cascade-curry-memoization/</link><guid isPermaLink="true">https://blog.spanthadas.com/callbacks-modules-cascade-curry-memoization/</guid><pubDate>Tue, 08 Nov 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>What Is Scope and What Is Closure in JavaScript?</title><link>https://blog.spanthadas.com/scope-and-closure-in-/</link><guid isPermaLink="true">https://blog.spanthadas.com/scope-and-closure-in-/</guid><pubDate>Mon, 17 Oct 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>The 4 Invocation Patterns in JavaScript</title><link>https://blog.spanthadas.com/the-4-invocation-patterns-in-/</link><guid isPermaLink="true">https://blog.spanthadas.com/the-4-invocation-patterns-in-/</guid><pubDate>Mon, 03 Oct 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>JS Functions Are Objects: What That Actually Means</title><link>https://blog.spanthadas.com/function-objects-in-/</link><guid isPermaLink="true">https://blog.spanthadas.com/function-objects-in-/</guid><pubDate>Thu, 22 Sep 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Master JS Objects: Terminology and Concepts</title><link>https://blog.spanthadas.com/master-js-objects-terminology-and-concepts/</link><guid isPermaLink="true">https://blog.spanthadas.com/master-js-objects-terminology-and-concepts/</guid><pubDate>Wed, 14 Sep 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Understanding Closures in JavaScript</title><link>https://blog.spanthadas.com/understanding-closures-in-/</link><guid isPermaLink="true">https://blog.spanthadas.com/understanding-closures-in-/</guid><pubDate>Mon, 05 Sep 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Crossing Component Boundaries in Vue 2: $parent, $children, and provide/inject</title><link>https://blog.spanthadas.com/vue-2-component-communication-parent-children-and-provide-inject/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-2-component-communication-parent-children-and-provide-inject/</guid><pubDate>Mon, 05 Sep 2022 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue2</category></item><item><title>Understanding node_modules and npm</title><link>https://blog.spanthadas.com/understanding-node-modules-and-npm/</link><guid isPermaLink="true">https://blog.spanthadas.com/understanding-node-modules-and-npm/</guid><pubDate>Sat, 20 Aug 2022 00:00:00 GMT</pubDate><category>javascript</category><category>nodejs</category></item><item><title>Understanding Webpack</title><link>https://blog.spanthadas.com/understanding-webpack/</link><guid isPermaLink="true">https://blog.spanthadas.com/understanding-webpack/</guid><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Why JavaScript Still Rules the Web</title><link>https://blog.spanthadas.com/why--still-rules-the-web/</link><guid isPermaLink="true">https://blog.spanthadas.com/why--still-rules-the-web/</guid><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate><category>javascript</category></item><item><title>Vue 2 Mixins: Merge Behaviour, Silent Collisions, and Why Composables Replaced Them</title><link>https://blog.spanthadas.com/vue-2-mixins-how-they-work-and-why-they-became-an-antipattern/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-2-mixins-how-they-work-and-why-they-became-an-antipattern/</guid><pubDate>Mon, 20 Jun 2022 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue2</category></item><item><title>How Vue 2 Knows When Your Data Changes</title><link>https://blog.spanthadas.com/vue-2-reactivity-object-defineproperty-and-its-caveats/</link><guid isPermaLink="true">https://blog.spanthadas.com/vue-2-reactivity-object-defineproperty-and-its-caveats/</guid><pubDate>Mon, 14 Mar 2022 00:00:00 GMT</pubDate><category>javascript</category><category>vuejs</category><category>vue2</category></item><item><title>The Case for Public Thinking</title><link>https://blog.spanthadas.com/the-case-for-public-thinking/</link><guid isPermaLink="true">https://blog.spanthadas.com/the-case-for-public-thinking/</guid><pubDate>Tue, 17 Mar 2020 00:00:00 GMT</pubDate><category>test-blog</category></item></channel></rss>