Protect Microsoft SQL Server with a Cloudflare Tunnel and Cloudflare Access

Microsoft SQL Server is a database server engine used in a wide variety of organisations for storing their data. Sometimes, it can be necessary to provide access to this data from remote locations (such as to remote workers, or to services running in remote locations). A Cloudflare Tunnel when combined with Cloudflare Access can provideContinue reading Protect Microsoft SQL Server with a Cloudflare Tunnel and Cloudflare Access

Setup GitPod for Vue.js Development

GitPod is a cloud-based development environment which can be used to work with a variety of frameworks, including Vue.js. It is designed to be quick to spin up new instances of a development environment through automated scripts. One of the advantages of this is that it reduces the chance of encountering issues due to differencesContinue reading Setup GitPod for Vue.js Development

Will WebAssembly (Wasm) replace JavaScript?

Ever since JavaScript was created in 1995 it has formed a key part of providing interactive experiences on websites. However, since WebAssembly (Wasm) support is now available in major browsers, will it be able to hold out against the competition, or will WebAssembly replace JavaScript as the essential tool for client-side development on the web? IContinue reading Will WebAssembly (Wasm) replace JavaScript?

Duplicate Validation Messages with FluentValidation in ASP.NET Core 6 MVC

Validation is an important step when handling data from a request in ASP.NET Core 6. FluentValidation is a popular .NET library which can make validation your models easier. It allows you to define your validation rules in a single place and integrate custom logic for your validation, which would require you to make a newContinue reading Duplicate Validation Messages with FluentValidation in ASP.NET Core 6 MVC

Install a Self-Hosted VPN with PiVPN on a Raspberry Pi

The Raspberry Pi is a very useful and versatile computer you can use to host and run a variety of services from your own home. An example of this is Pi-hole which allows you to implement network-wide ad-blocking for all your devices. However, when you’re away from your network (for example on a mobile deviceContinue reading Install a Self-Hosted VPN with PiVPN on a Raspberry Pi

Add Git Information (and more) to Windows Terminal (or PowerShell)

I’m a fan of Windows Terminal – it makes it easier for me to manage my terminal windows in a tabbed interface and makes it easy to access a terminal for either my Windows machine or the WSL guest in one interface. But sometimes, it is useful to add a bit more context to yourContinue reading Add Git Information (and more) to Windows Terminal (or PowerShell)

Using Cloudflare Access and tunnels to create an RDP jump host

Cloudflare Tunnels are a useful way of allowing private services to be accessed remotely, without exposing the devices to inbound connections. This can be combined with Cloudflare Access to provide a secure way of accessing services such as remote desktop. These services can be used to setup a bastion inside a private network. The bastionContinue reading Using Cloudflare Access and tunnels to create an RDP jump host

Network-wide Ad Blocking with Pi-hole

Ads can sometimes be a bit frustrating, or turn up in places we don’t expect. For example, ads on subscription-based services. Serving ads can also consume a substantial amount of bandwidth on some sites. There are a variety of ad blocking browser extensions you can install (such as Adblock Plus or uBlock) on your computerContinue reading Network-wide Ad Blocking with Pi-hole

Configuring a Vue.js SPA with Environment Variables

In a previous blog post I showed how to set up ASP.NET Core Web API to support a Vue.js client SPA. In this post I will show how to extend on that example so that the Vue.js SPA supports a development and production configuration. Since I am extending the previous example, I am assuming theContinue reading Configuring a Vue.js SPA with Environment Variables

Removing Sensitive Information from Git with git-filter-repo

Git has become the de facto standard in source control. Over 90% of respondents to the 2021 Stack Overflow Developer Survey indicated that they use Git. However, sometimes mistakes can be made and sensitive or secret information accidentally end up in the commit history. Thankfully, tools such as git-filter-repo exist to help rewrite history (theContinue reading Removing Sensitive Information from Git with git-filter-repo