<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Jeremie's Blog</title><link>https://blog.bornais.ca/posts/</link><description>Recent content in Posts on Jeremie's Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 11 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.bornais.ca/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Mastering Windows Terminal - Replicating the iTerm2 Workflow</title><link>https://blog.bornais.ca/posts/2026-04-11-windows-terminal-keyboard-shortcuts/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2026-04-11-windows-terminal-keyboard-shortcuts/</guid><description>If you are a developer or power user who recently transitioned from macOS to Windows, one of the first things you likely noticed is that the muscle memory for iTerm2 doesn&amp;rsquo;t automatically translate to the default Windows Terminal setup.
Specifically, the ability to quickly navigate between tabs and rearrange them using simple keyboard shortcuts is a productivity game-changer. The good news? Windows Terminal is incredibly extensible, and you can replicate that exact iTerm2 feel with just a few minutes of configuration.</description></item><item><title>Switching from GNU Screen to Tmux for Background Sites</title><link>https://blog.bornais.ca/posts/2026-03-05-tmux-vs-screen/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2026-03-05-tmux-vs-screen/</guid><description>If you&amp;rsquo;ve read my previous post on Using GNU Screen, you know I&amp;rsquo;ve frequently relied on it as a terminal multiplexer. My primary use case has always been simple: run a website or background service, give the session a specific name, detach from it, and reattach later when the site needs an update.
While screen gets the job done, I&amp;rsquo;ve recently made the switch to tmux (Terminal Multiplexer). It&amp;rsquo;s generally considered more modern, highly configurable, and offers a much better experience for handling windows and split panes.</description></item><item><title>Is This The Best No-Build Frontend Framework?</title><link>https://blog.bornais.ca/posts/2026-02-27-no-build/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2026-02-27-no-build/</guid><description>In today&amp;rsquo;s developer ecosystem, modern web development usually comes with some baggage. Starting a new project often involves using some combination of a build tool (like Vite or Webpack), a package manager (like npm or yarn), and a framework (like React, Vue, or Svelte). While these tools provide powerful features and a great developer experience, they&amp;rsquo;re not always needed for every project.
If you&amp;rsquo;re building something small to medium-sized, pulling in a full React setup with a build step can feel like overkill.</description></item><item><title>Breathing New Life Into Existing CLI Tools With WebAssembly</title><link>https://blog.bornais.ca/posts/2026-02-24-webassembly/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2026-02-24-webassembly/</guid><description>If you dig through the archives of open-source software, academic repositories, or niche internet forums, you&amp;rsquo;ll find gold. Scattered across the web are thousands of incredibly powerful, hyper-specific Command Line Interface (CLI) tools written in C, C++, or other non-web languages.
These tools often represent thousands of hours of specialized domain knowledge. They are battle-tested, highly optimized, and do exactly what they were designed to do.
But there&amp;rsquo;s a catch: nobody uses them anymore.</description></item><item><title>How I Make Pizza Dough (and What I Use it For)</title><link>https://blog.bornais.ca/posts/2025-11-17-dough/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2025-11-17-dough/</guid><description>This is my quick, reliable pizza dough. It uses a stand mixer for easy kneading and proofs in about an hour.
Ingredients 3 cups all-purpose flour 1 1/3 cups warm water 1 packet (or ~2 1/4 tsp) active dry yeast 1 tsp sugar 1 1/2 tsp salt 1–2 tbsp olive oil (plus extra for bowl) Method Bloom the yeast: add a splash of the warm water (about 2–3 tbsp) and the sugar to a small bowl, sprinkle the yeast on top, stir lightly, and wait until foamy (a few minutes).</description></item><item><title>My Dive into Cold Brewing</title><link>https://blog.bornais.ca/posts/2025-05-22-cold-brew/</link><pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2025-05-22-cold-brew/</guid><description>This post is a bit of a departure from the sort of thing I normally talk about on here - but hey, it&amp;rsquo;s my blog, my rules 😎.
Recently, I&amp;rsquo;ve been getting into making cold brew coffee and tea. I discovered cold brew on my quest to figure out the best way to make iced coffee at home. I had tried using normal drip coffee, a moka pot, instant coffee, but nothing tasted quite right to me.</description></item><item><title>How to Actually Enable Controller Support in The Elder Scrolls Oblivion (Original)</title><link>https://blog.bornais.ca/posts/2025-04-23-oblivion-controller-support/</link><pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2025-04-23-oblivion-controller-support/</guid><description>With the new Oblivion remaster now released, I&amp;rsquo;m sure there are others like me who want to re-experience the game but don&amp;rsquo;t want to spend the money for the remaster, or don&amp;rsquo;t have the hardware to properly run it. Moreover, I&amp;rsquo;m sure there are others like me who grew up playing games on consoles and don&amp;rsquo;t like keyboard+mouse controls. If you&amp;rsquo;re one of these people, this article is for you.</description></item><item><title>In Defense of ::ng-deep</title><link>https://blog.bornais.ca/posts/2025-03-07-ng-deep/</link><pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2025-03-07-ng-deep/</guid><description>Angular developers often hear one piece of advice repeated over and over: &amp;ldquo;Never use ::ng-deep.&amp;rdquo; While this directive is well-intentioned, it can oversimplify the reality of styling complex Angular applications. ::ng-deep has its place, and when used appropriately, it can solve problems that are otherwise difficult or impossible to address.
In this post, we’ll explore the benefits of ::ng-deep, debunk some common misconceptions, and discuss how to use it safely.</description></item><item><title>Automating Code Quality with Git Hooks</title><link>https://blog.bornais.ca/posts/2025-02-06-git-hooks/</link><pubDate>Thu, 06 Feb 2025 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2025-02-06-git-hooks/</guid><description>Git hooks are an excellent way to automate tasks and enforce coding standards directly at the source control level. By using Git hooks, you can ensure that your codebase remains clean, tested, and compliant with your team&amp;rsquo;s standards before any changes are committed or pushed.
In this post, we&amp;rsquo;ll focus on two specific hooks: pre-commit and pre-push. We&amp;rsquo;ll also show how to use them to automatically run linters and tests before committing or pushing code.</description></item><item><title>Making Email Easier for Developers</title><link>https://blog.bornais.ca/posts/2025-02-02-making-email-easier/</link><pubDate>Sun, 02 Feb 2025 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2025-02-02-making-email-easier/</guid><description>Email is and always will be a pain to work with as a developer. What began as a simple and open communication channel has become a mess, thanks in part to spammers and scammers. Now, if you want to be able to reach your users, you almost always need to use some third party service to send your emails for you.
This isn&amp;rsquo;t necessarily a bad thing. In produdction, the only difference is changing an environment variable to point to a third party SMTP server instead of your own.</description></item><item><title>Crash Course on ES Modules</title><link>https://blog.bornais.ca/posts/2024-06-02-es-modules/</link><pubDate>Sun, 02 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2024-06-02-es-modules/</guid><description>JavaScript, traditionally known for its simplicity in web development, has evolved significantly. One of the most impactful enhancements is the introduction of ES Modules (ECMAScript Modules). ES Modules bring a standardized module system to JavaScript, making it easier to manage and organize code. This crash course will dive into what ES Modules are, how to use them, and why they are beneficial.
What Are ES Modules? ES Modules are a standardized way to encapsulate and share code in JavaScript.</description></item><item><title>Using GNU Screen - A Powerful Terminal Multiplexer</title><link>https://blog.bornais.ca/posts/2024-02-07-using-gnu-screen/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2024-02-07-using-gnu-screen/</guid><description>GNU Screen is a versatile tool that enhances productivity for users who spend a lot of time working in the terminal. In this guide, we&amp;rsquo;ll explore what GNU Screen is, its common use cases, reasons why you should use it, how to detach and reattach sessions, and some common options you can specify to tailor your experience.
What is GNU Screen? GNU Screen is a terminal multiplexer that allows users to create multiple virtual terminals within a single physical terminal or SSH session.</description></item><item><title>Build Your First Full-Stack App With Flask</title><link>https://blog.bornais.ca/posts/2024-02-03-flask-workshop/</link><pubDate>Sat, 03 Feb 2024 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2024-02-03-flask-workshop/</guid><description>Note: this is a blog version of the Flask Workshop I&amp;rsquo;m giving for WinHacks 2024. To view the slides and supporting materials as presented during WinHacks, check out the official GitHub repository here.
Intro to Flask Presented by Jeremie Bornais Sample code available at github.com/jere-mie/flask-workshop/
Agenda About Flask Overview of the framework, what it is, why you should use it Installation Simple step by step installation instructions Your First App The structure of a Flask app, and getting it up and running Routes and Templates Adding new routes to the app, rendering templates, inheriting from templates Next Steps SQLAlchemy, User Authentication, and other ways to extend your app Interactive Demo We&amp;rsquo;ll be making our own Flask app from scratch!</description></item><item><title>How to Use Multiple GitHub Accounts on One PC</title><link>https://blog.bornais.ca/posts/2024-02-02-multiple-github-accounts/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2024-02-02-multiple-github-accounts/</guid><description>There are multiple ways to set up multiple GitHub accounts on one PC. For me, however, I prefer a solution that is more portable and requires less configuration. Thus, the solution I show here uses separate SSH keys for the two accounts, and the way you choose which account to use is by modifying the remote address of the GitHub repository. Only one small configuration file is required.
Prerequesites Before you can begin, you&amp;rsquo;ll need to ensure you have Git and OpenSSH installed (Git typically comes with OpenSSH).</description></item><item><title>Turning My 8 Year Old Chromebook Into a Home Server</title><link>https://blog.bornais.ca/posts/2024-01-18-chromebook-home-server-background/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2024-01-18-chromebook-home-server-background/</guid><description>This article purposely doesn&amp;rsquo;t go into specifics or provide a step-by-step tutorial. I&amp;rsquo;ll be writing a separate article on this later.
Roughly 6 years ago I was in the market for a small and simple laptop to use when traveling and for school. At the time I had a gaming laptop (a purchase I still regret) which worked well for any gaming or heavy computing tasks I needed to perform. However, it was heavy, bulky, and would only last an hour or so on battery.</description></item><item><title>Self-Hosting Your Own ngrok Alternative with Reverse SSH Tunneling</title><link>https://blog.bornais.ca/posts/2024-01-16-self-host-ngrok/</link><pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2024-01-16-self-host-ngrok/</guid><description>Are you tired of relying on third-party services like ngrok to expose your local development environment to the internet? Good news! You can achieve similar functionality by setting up a reverse SSH tunnel. In this guide, we&amp;rsquo;ll walk through the process of creating your own self-hosted tunneling solution.
Prerequisites Local development environment with a service running on a specific port (e.g., http://localhost:8000). SSH access to a remote server with a publicly accessible IP address.</description></item><item><title>Using asdf to Manage Your Programming Language Installations</title><link>https://blog.bornais.ca/posts/2023-10-20-asdf/</link><pubDate>Fri, 20 Oct 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-10-20-asdf/</guid><description>One of the most annoying aspects of working on multiple projects as a developer is dealing with projects that use different versions of the same programming language. If you&amp;rsquo;re a NodeJS developer, you&amp;rsquo;ve probably used NVM to cope with this. In fact, most programming languages have their own solution to this problem.
However, when you&amp;rsquo;re working across multiple projects that span multiple programming languagues, using a different version management tool for each language can be cumbersome.</description></item><item><title>Using GCP's Free VPS to Host Unlimited Full-Stack Websites</title><link>https://blog.bornais.ca/posts/2023-10-18-gcp-caddy-tutorial/</link><pubDate>Wed, 18 Oct 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-10-18-gcp-caddy-tutorial/</guid><description>One of the most difficult steps of web development for beginners is the final step - actually getting your website online. There are hundreds of platforms out there that allow you to put your website online, and it can be difficult for a beginner to choose the right one for them.
As you continue in your web development journey, you&amp;rsquo;ll most likely find a solution that fits and scales to your specific needs.</description></item><item><title>COMP-1400 Dev Environment Setup Guide</title><link>https://blog.bornais.ca/posts/2023-05-12-comp-1400-setup-guide/</link><pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-05-12-comp-1400-setup-guide/</guid><description>Setting up a development environment on Windows for coding in C can seem daunting for a new CS student. However, with the right tools and a step-by-step guide, the process can be straightforward. In this tutorial, we will walk through the process of setting up a development environment on Windows for coding in C.
Step 1: Install WSL WSL (Windows Subsystem for Linux) is a compatibility layer that allows running Linux binaries natively on Windows.</description></item><item><title>Advice to HS Students Interested in Pursuing CS</title><link>https://blog.bornais.ca/posts/2023-05-02-hs-student-advice/</link><pubDate>Tue, 02 May 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-05-02-hs-student-advice/</guid><description>In today&amp;rsquo;s digital age, computer science has become an increasingly essential field with numerous opportunities for career growth and innovation. High school students who are passionate about technology and interested in pursuing a degree in computer science can benefit greatly from proper preparation and guidance. In this blog post, I&amp;rsquo;ll provide advice and insights for high school students interested in pursuing a degree in computer science. By following these guidelines, you can set yourself up for success and achieve your goals in this exciting and dynamic field.</description></item><item><title>Introduction to Classes, Structs, and Objects in C++</title><link>https://blog.bornais.ca/posts/2023-03-21-cxx-classes/</link><pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-03-21-cxx-classes/</guid><description>If you&amp;rsquo;re familiar with programming in C++, you&amp;rsquo;ve likely heard of classes, structs, and objects. These concepts are at the core of object-oriented programming and are essential for creating efficient, reusable, and modular code.
In this article, we&amp;rsquo;ll take a closer look at what classes, structs, and objects are, how they work, and provide examples to illustrate their use in C++.
Classes and Structs A class is a user-defined data type that encapsulates data and functions together into a single entity.</description></item><item><title>Tiny Language Grammar (COMP-2140)</title><link>https://blog.bornais.ca/posts/2023-03-02-tiny-language-grammar/</link><pubDate>Thu, 02 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-03-02-tiny-language-grammar/</guid><description>The following is a copy of the official definition of the Tiny programming language used in COMP-2140 at the University of Windsor, as first defined by Dr. Lu here.
The Lexicon of the Tiny Language Keywords WRITE READ IF ELSE RETURN BEGIN END MAIN STRING INT REAL Single-character separators ; , ( ) Single-character operators + - * / Multi-character operators := == != Identifiers An identifier consists of a letter followed by any number of letters or digits The following are examples of identifiers: x, x2, xx2, x2x, End, END2 Note that End is an identifier while END is a keyword The following are not identifiers: F, WRITE, READ, .</description></item><item><title>Transposing a 2D List in Python</title><link>https://blog.bornais.ca/posts/2023-02-08-transposing-a-2d-list-python/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-02-08-transposing-a-2d-list-python/</guid><description>Transposing a 2-dimensional list in Python is especially useful when reading data that&amp;rsquo;s formatted similar to this:
X Y Z 1 2 9 2 5 6 3 6 5 ... Usually, you&amp;rsquo;ll parse the input line by line and end up with an array that looks something like this:
&amp;gt;&amp;gt;&amp;gt; print(data) [[1, 2, 9], [2, 5, 6], [3, 6, 5], ...] This usually isn&amp;rsquo;t useful though, as we normally want the x, y, and z values grouped together.</description></item><item><title>Converting CRLF Line Endings to LF in Linux</title><link>https://blog.bornais.ca/posts/2023-02-07-converting-crlf-to-lf/</link><pubDate>Tue, 07 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2023-02-07-converting-crlf-to-lf/</guid><description>Dealing with CRLF can be extremely annoying on Linux, as it can cause errors when attempting to execute scripts or compile files. It is especially problematic when working with text files that were created on Windows, as they are formatted differently than Linux. Fortunately, there are easy ways to fix this issue. Traditionally, this has been done by using the dos2unix command, which can quickly and easily convert Windows-formatted text files to Linux-formatted ones, allowing you to avoid the headache of dealing with CRLF.</description></item><item><title>Getting Started and Working With XV6</title><link>https://blog.bornais.ca/posts/2022-12-27-working-with-xv6/</link><pubDate>Tue, 27 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-12-27-working-with-xv6/</guid><description>Introduction XV6 is a re-implementation of the Unix operating system that was developed as a teaching tool for MIT&amp;rsquo;s operating systems course. It is based on the original Unix operating system, which was developed in the 1970s at Bell Labs. XV6 is written in C and runs on x86-based computers.
In the upcoming semester, I will be taking the Operating Systems course COMP-3300 at the University of Windsor, where we&amp;rsquo;ll be working with XV6.</description></item><item><title>COMP-2310 Formula Cheatsheet</title><link>https://blog.bornais.ca/posts/2022-09-04-2310-cheatsheet/</link><pubDate>Sun, 04 Sep 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-09-04-2310-cheatsheet/</guid><description>Contained here are the main equivalences and inference rules for the COMP-2310 class at UWindsor.
Equivalences E1. \( \alpha \land \sim \alpha \equiv false \)
E2. \( \alpha \lor \sim \alpha \equiv true \)
E3. \( \alpha \land \alpha \equiv \alpha \)
E4. \( \alpha \lor \alpha \equiv \alpha \)
E5. \( \alpha \land true \equiv \alpha \)
E6. \( \alpha \lor false \equiv \alpha \)
E7. \( \alpha \land false \equiv false \)</description></item><item><title>How to Disable the Bell in Windows Terminal</title><link>https://blog.bornais.ca/posts/2022-08-14-disable-bell-in-windows-terminal/</link><pubDate>Sun, 14 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-08-14-disable-bell-in-windows-terminal/</guid><description>If you&amp;rsquo;re someone who uses Windows Terminal (and if you&amp;rsquo;re not, you should be), you&amp;rsquo;ve probably encountered an annoying bell sound at one point or another. Whether it&amp;rsquo;s from hitting backspace too many times, or pressing tab when you shouldn&amp;rsquo;t have, this bell sound shows itself just often enough for it to be worth going through the steps to remove it.
Luckily, it&amp;rsquo;s a very straightforward process to disable the sound.</description></item><item><title>How to Add a Directory to the PATH Variable in Bash</title><link>https://blog.bornais.ca/posts/2022-06-14-add-to-path-variable-bash/</link><pubDate>Tue, 14 Jun 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-06-14-add-to-path-variable-bash/</guid><description>If you ever wanted to install something from source, or create handy scripts to use anywhere in bash, you&amp;rsquo;ll need to update the PATH variable. Simply put, the PATH variable is a string consisting of colon-separated (:) directories. Whenever you type a command into the terminal, all of these directories are checked for executables that match the command you typed.
Now, let&amp;rsquo;s say we have a directory we created, ~/.bin/ which contains our homemade scripts/executables.</description></item><item><title>How to Enable Mouse Support in Tmux</title><link>https://blog.bornais.ca/posts/2022-06-13-enabling-mouse-in-tmux/</link><pubDate>Mon, 13 Jun 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-06-13-enabling-mouse-in-tmux/</guid><description>While I wouldn&amp;rsquo;t necessarily recommend using the mouse too often when using Tmux, it&amp;rsquo;s likely that you may want it to be enabled at some point, so it may be better to enable it before you need it.
The process is simple, you simply need a config file .tmux.conf in your home directory which contains the text set -g mouse on.
You can do this automatically with the following command:</description></item><item><title>Becoming a UWSA-Ratified Club</title><link>https://blog.bornais.ca/posts/2022-04-18-becoming-a-uwsa-club/</link><pubDate>Mon, 18 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-04-18-becoming-a-uwsa-club/</guid><description>(note: this article is meant for UWindsor students. If you aren&amp;rsquo;t a UWindsor student you may want to skip this one)
Just want the instructions? Head over to the instructions section.
Why You Should Become a UWSA Ratified Club There are many reasons why you should consider becoming a UWSA ratified club. Whether you&amp;rsquo;re starting a new club or thinking of taking your existing club to the next level, becoming UWSA ratified may be incredibly useful!</description></item><item><title>Instructions to Install Java Cup on Linux</title><link>https://blog.bornais.ca/posts/2022-04-17-setting-up-java-cup/</link><pubDate>Sun, 17 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-04-17-setting-up-java-cup/</guid><description>Just want all the commands? Check them out here
Or, run this one command to do everything:
curl -o- https://blog.bornais.ca/scripts/javacup-install.sh | bash Prerequesite Software These instructions are for Linux machines. If you&amp;rsquo;re a Windows user, I recommend using the Windows Subsystem for Linux (WSL). The only prerequesite software required is Java. If you&amp;rsquo;re on a Debian-based system and don&amp;rsquo;t have Java installed, you can install it via sudo apt install default-jre and sudo apt install default-jdk.</description></item><item><title>Instructions to Install JLex on Linux</title><link>https://blog.bornais.ca/posts/2022-04-16-setting-up-jlex/</link><pubDate>Sat, 16 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-04-16-setting-up-jlex/</guid><description>Want all the instructions in one code block without the explanations? Check out the appendix.
Before Starting Prerequesite Software These instructions are for Linux machines. If you&amp;rsquo;re a Windows user, I recommend using the Windows Subsystem for Linux (WSL). The only prerequesite software required is Java. If you&amp;rsquo;re on a Debian-based system and don&amp;rsquo;t have Java installed, you can install it via sudo apt install default-jre and sudo apt install default-jdk.</description></item><item><title>Welcome to My Blog!</title><link>https://blog.bornais.ca/posts/2022-04-13-welcome/</link><pubDate>Wed, 13 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.bornais.ca/posts/2022-04-13-welcome/</guid><description>I&amp;rsquo;ve wanted to create my own blog for a little while now, but finding the motivation to actually get it set up was always difficult. What tipped the scale for me was when I realized I could use a blog like this instead of GitHub Gists to post my guides/tutorials.
I&amp;rsquo;ve used gists in the past to create guides for my students as a TA, and they&amp;rsquo;ve always worked well for that.</description></item></channel></rss>