Generated by All in One SEO v5.0.0.1, this is an llms.txt file, used by LLMs to index the site. # Matheus Gomes Computers, Coding and Caffeine ## Sitemaps - [XML Sitemap](https://matgomes.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [VSCode - How To Debug A WSL C++/CMake Project](https://matgomes.com/debugging-wsl-c-cmake-vscode/) - VSCode is one of the best C++ IDEs. In this post, you will learn how to debug your Linux C++ / CMake projects on WSL using VSCode's launch configurations. - [Thread Pool In C++ - Writing a Concurrent Task Queue](https://matgomes.com/thread-pools-cpp-with-queues/) - Thread pools are a very important concept in achieving concurrency in C++. In this post, we look at how to write a simple thread pool using thread safe queues! - [C++ Pipelines With Azure - Example C++ CI/CD](https://matgomes.com/creating-a-ci-cd-cpp-pipeline-with-azure/) - Looking to modernize your C++ practices? Learn how to create an Azure CI/CD C++ pipeline to automate code quality and deployment of C++ projects. - [CMake: Set Your C++ Standard With Cmake's Global Variables](https://matgomes.com/setting-cpp-standard-cmake/) - In CMake, setting the C++ standard is essential to use the latest features of the language. In this post, we achieve this by setting CMake global variables. - [std::transform To Convert Containers In Cpp](https://matgomes.com/convert-containers-cpp-with-std-transform/) - "std::transform" helps to convert containers in C++. In this post, we look at the usage & examples for transforming elements in your vectors into other types! - [How To Undo Git Commits & Changes With Reflog](https://matgomes.com/undo-git-commits-and-changes-with-reflog/) - Messing up a git branch is easy. With git reflog and reset, you can undo git commits and changes. In this post, we look at how to undo on git with these tools! - [Find Elements In C++ Arrays With std::find_if](https://matgomes.com/find-elements-cpp-arrays-find-if/) - Finding elements in arrays or vectors can be quite challenging for beginners. In this post, we use std::find_if to find items in C++ arrays and collections. - [Change Previous Git Commits With Rebase Interactive](https://matgomes.com/change-previous-git-commits-rebase-interactive/) - Whether you're working in a large team or working alone on your personal git repository, you have probably pushed changes in a commit that you later wished to change. Therefore, you may want to change previous git commits that you have perhaps already pushed. This is very common when you're working with git repositories. For - [Converting Files To C++ Byte Arrays](https://matgomes.com/convert-files-to-cpp-byte-arrays/) - Including static files in your C++ code can be cumbersome. However, converting any binary file to hexadecimal arrays is easy with the "xxd" terminal command. - [Using CMake's CTest and add_test To Run All Your Tests](https://matgomes.com/cmake-ctest-to-add-cpp-tests/) - Writing and managing tests for C++ projects can be difficult. Luckily, CMake's ctest & add_test helps you manage all of your tests in one place. Find out more! - [Using CMake add_executable To Create C++ Programs](https://matgomes.com/cmake-add-executable/) - Creating the first C++ program using CMake requires knowing add_executable(...). In this post, we explain all CMake modes and parameters for this command! - [Adding C++ Header Include Directories With CMake](https://matgomes.com/header-include-directories-cmake/) - Adding header include directories is straightforward with CMake. Learn how to tell the compiler where to find those pesky C++ header files with simple commands! - [Installing Anaconda For Python On Windows & Linux](https://matgomes.com/installing-anaconda-python-windows-linux/) - Anaconda can help you manage different environments for multiple projects in Python. In this post, you will learn how to install Anaconda on Linux and Windows. - [CMake - A Simple Introduction](https://matgomes.com/a-simple-introduction-to-cmake/) - CMake is the standard build system generator. We'll look at the motivations, advantages and disadvantages of CMake, as well as how to write a simple CMakeLists. - [Useful Command Line Tools For Beginners](https://matgomes.com/useful-command-line-tools-for-beginners/) - For beginner developers, this post details useful terminal/command line tools that will boost your productivity. Be a better coder with these tools and tricks! - [Getting The Directory And Path Of A Shell Script](https://matgomes.com/get-directory-path-of-a-shell-script/) - Knowing the path or directory of the current shell script is a very useful thing to know. This post shows you the best way to get the path of a shell script! - [Integrating Google Test Into CMake Projects](https://matgomes.com/integrate-google-test-into-cmake/) - Google Test is the most popular testing framework for C++. In this post, you will learn how to integrate GTest into your CMake project in three different ways! - [Gradient Descent For Linear Regression In Python](https://matgomes.com/gradient-descent-for-linear-regression-in-python/) - Gradient descent and linear regression go hand in hand. In this post, you will learn the theory and implementation behind these cool machine learning topics! - [Base64 Encode And Decode With A Modern C++ Implementation](https://matgomes.com/base64-encode-decode-cpp/) - Fancy learning how to Base64 encode with modern C++? Learn how to implement an easy Base64 encoder and decoder using cutting-edge features of the Cpp standard. - [Base64 Encoding And Decoding](https://matgomes.com/understanding-base64-encoding/) - Base64 is an encoding algorithm for converting any binary data into printable ASCII text, to be sent over the internet. Learn how to base64 encode and decode! - [CMake's add_library - Creating Libraries With CMake](https://matgomes.com/add-library-cmake-create-libraries/) - Learn how to create libraries with CMake's "add_library". Whether you need a static, shared or another type of library, this post has all C++ libraries covered! - [Dissecting The Simplest C++ Program](https://matgomes.com/dissecting-the-simplest-cpp-program/) - This article analyses the simplest C++ program you can write. Learn CPP programming by learning how the simplest "main" function works! - [Implementing The Trapezium Rule With Python](https://matgomes.com/trapezium-rule-with-python/) - This post shows how to implement the trapezium rule with pure Python and Numpy! Learn how the trapezium rule works by implementing it. - [Understanding The Trapezium Rule](https://matgomes.com/understanding-trapezium-rule/) - The trapezium rule is a useful numerical method to estimate integrals. This post will explain the rule, show how to derive it, and use the trapezium method! - [Conway's Game Of Life In 80 Lines Of Python](https://matgomes.com/conways-game-of-life-python/) - Conway's Game Of Life is a popular 2D cell evolution game. In tis post, we will implement the whole game with graphics display in less than 80 lines of Python! - [Implementing Trapezium Rule With C++](https://matgomes.com/trapezium-rule-with-cpp/) - The trapezium rule can be tricky to implement, specially in C++. This post will teach you how to get a fairly performant trapezium rule area estimator with CPP! - [Vcpkg Vs Conan: Best Package Manager For C++?](https://matgomes.com/vcpkg-vs-conan-for-cpp/) - Conan and Vcpkg are excellent package managers for C/C++. In this post, we will analyse each tool and discuss features they provide! - [C++ Vectors: How It Works And Why You Should Use Them](https://matgomes.com/cpp-vectors-guide/) - The std::vector class is useful when you need to store multiple values in C++. This post explains how this templated type works, and why you should use it. - [Mat Gomes Codes](https://matgomes.com/mat-gomes-codes/) - Hello! Welcome to my personal website. Here you will find articles that I have written about coding, computer, and maths. The idea is that I would write about things I find interesting in a comprehensible way. Enjoy! ## Pages - [About Me](https://matgomes.com/about-me/) - Born in São Paulo, Brazil, and moved to Greater Manchester, UK in 2009. From a young age, I have always been interested in anything related to computers, video gaming, and maths. I guess these hobbies came about when I got access to my first Windows 98, Pentium 4 powered computer in the late 90s / - [Curriculum Vitae](https://matgomes.com/cv/) ## Categories - [Uncategorized](https://matgomes.com/category/uncategorized/) - [CPP](https://matgomes.com/category/cpp/) - [maths](https://matgomes.com/category/maths/) - [Python](https://matgomes.com/category/python/) - [CMake](https://matgomes.com/category/cmake/) - [terminal](https://matgomes.com/category/terminal/) - [command line](https://matgomes.com/category/command-line/) - [machine learning](https://matgomes.com/category/machine-learning/) - [bash](https://matgomes.com/category/bash/) - [bash/shell](https://matgomes.com/category/bash-shell/) - [windows](https://matgomes.com/category/windows/) - [git](https://matgomes.com/category/git/) - [ci/cd](https://matgomes.com/category/ci-cd/) ## Tags - [c++](https://matgomes.com/tag/c/) - [cpp](https://matgomes.com/tag/cpp/) - [main](https://matgomes.com/tag/main/) - [coding](https://matgomes.com/tag/coding/) - [beginner](https://matgomes.com/tag/beginner/) - [vectors](https://matgomes.com/tag/vectors/) - [containers](https://matgomes.com/tag/containers/) - [cmake](https://matgomes.com/tag/cmake/) - [build systems](https://matgomes.com/tag/build-systems/) - [maths](https://matgomes.com/tag/maths/) - [integration](https://matgomes.com/tag/integration/) - [python](https://matgomes.com/tag/python/) - [mathematics](https://matgomes.com/tag/mathematics/) - [trapezium](https://matgomes.com/tag/trapezium/) - [estimation](https://matgomes.com/tag/estimation/) - [numerical](https://matgomes.com/tag/numerical/) - [trapezium rule](https://matgomes.com/tag/trapezium-rule/) - [eigen3](https://matgomes.com/tag/eigen3/) - [google benchmarks](https://matgomes.com/tag/google-benchmarks/) - [libraries](https://matgomes.com/tag/libraries/) - [tools](https://matgomes.com/tag/tools/) - [conan](https://matgomes.com/tag/conan/) - [vcpkg](https://matgomes.com/tag/vcpkg/) - [software development](https://matgomes.com/tag/software-development/) - [game](https://matgomes.com/tag/game/) - [graphics](https://matgomes.com/tag/graphics/) - [base64](https://matgomes.com/tag/base64/) - [encoding](https://matgomes.com/tag/encoding/) - [decoding](https://matgomes.com/tag/decoding/) - [tutorial](https://matgomes.com/tag/tutorial/) - [internet](https://matgomes.com/tag/internet/) - [command line](https://matgomes.com/tag/command-line/) - [terminal](https://matgomes.com/tag/terminal/) - [tricks](https://matgomes.com/tag/tricks/) - [developer](https://matgomes.com/tag/developer/) - [gradient descent](https://matgomes.com/tag/gradient-descent/) - [numpy](https://matgomes.com/tag/numpy/) - [pandas](https://matgomes.com/tag/pandas/) - [linear regression](https://matgomes.com/tag/linear-regression/) - [test](https://matgomes.com/tag/test/) - [unit tests](https://matgomes.com/tag/unit-tests/) - [google test](https://matgomes.com/tag/google-test/) - [gtest](https://matgomes.com/tag/gtest/) - [bash](https://matgomes.com/tag/bash/) - [shell](https://matgomes.com/tag/shell/) - [script](https://matgomes.com/tag/script/) - [directory](https://matgomes.com/tag/directory/) - [vscode](https://matgomes.com/tag/vscode/) - [debug](https://matgomes.com/tag/debug/) - [debugging](https://matgomes.com/tag/debugging/) - [anaconda](https://matgomes.com/tag/anaconda/) - [conda](https://matgomes.com/tag/conda/) - [executable](https://matgomes.com/tag/executable/) - [program](https://matgomes.com/tag/program/) - [programs](https://matgomes.com/tag/programs/) - [create](https://matgomes.com/tag/create/) - [tests](https://matgomes.com/tag/tests/) - [ctest](https://matgomes.com/tag/ctest/) - [console](https://matgomes.com/tag/console/) - [xxd](https://matgomes.com/tag/xxd/) - [include](https://matgomes.com/tag/include/) - [files](https://matgomes.com/tag/files/) - [git](https://matgomes.com/tag/git/) - [version control](https://matgomes.com/tag/version-control/) - [change](https://matgomes.com/tag/change/) - [history](https://matgomes.com/tag/history/) - [software engineering](https://matgomes.com/tag/software-engineering/) - [contribution](https://matgomes.com/tag/contribution/) - [find](https://matgomes.com/tag/find/) - [collections](https://matgomes.com/tag/collections/) - [arrays](https://matgomes.com/tag/arrays/) - [lists](https://matgomes.com/tag/lists/) - [items](https://matgomes.com/tag/items/) - [standard library](https://matgomes.com/tag/standard-library/) - [how to](https://matgomes.com/tag/how-to/) - [programming](https://matgomes.com/tag/programming/) - [modern C++](https://matgomes.com/tag/modern-c/) - [modern cpp](https://matgomes.com/tag/modern-cpp/) - [pipelines](https://matgomes.com/tag/pipelines/) - [ci/cd](https://matgomes.com/tag/ci-cd/) - [continuous integration](https://matgomes.com/tag/continuous-integration/) - [continuous delivery](https://matgomes.com/tag/continuous-delivery/) - [continuous deployment](https://matgomes.com/tag/continuous-deployment/) - [azure](https://matgomes.com/tag/azure/) - [automation](https://matgomes.com/tag/automation/) - [thread](https://matgomes.com/tag/thread/) - [multi threading](https://matgomes.com/tag/multi-threading/)