Category Archives: Technology

My BitTorrent Setup

First things first, like me, you must not download copyright protected content via BitTorrent. There’s plenty of open content available that downloads much faster on BitTorrent, compared to https and this article applies to such content.

In this post, I discuss using qBIttorrent to download data from the internet via BitTorrent. Below are the reasons that I didn’t like it

  1. My ISP could see that I am using bittorrents.
  2. Copyright providers can see my IP in the swarm and could trace specific downloads back to me.
  3. Downloads were quite slow, especially with finicky seeders.
  4. The process of looking for magnet links on sketchy websites was painful (a least 4-5 pop-ups for each click/tap). Also, I had to use a separate browser to copy magnet links because Safari doesn’t allow this.
  5. Most RSS feeds topped out at 1080p.
  6. qBittorrent is not under active development for macOS and is likely insecure..

My first reaction was to move to put.io, but I couldn’t justify its high subscription price considering I had already invested in a Home Server.

Enter alldebrid, which is a much cheaper and simplified alternative to Put.io. Here’s my setup

The overall setup may seem complicated, but below is a breakdown of what each individual component does.

AllDebrid

AllDebrid is basically a cloud-based service which pulls files from the torrent swarm and provides it to you as an https transfer. This is similar to what put.io does, however, AllDebrid is much cheaper, doesn’t provide permanent storage and relies on APIs for communication with other applications. Its own interface is quite barebones. This way, the torrents don’t touch your home network and your ISP sees nothing.

Files already cached with AllDebrid finish downloading in seconds (Popular TV shows etc).

RDTClient

RDTClient is basically an application which runs on your server/PC which you use to interface with AllDebrid. It uses API keys to access your AllDebrid account. It runs in a container.

The Servarr apps

The Servarr apps are a group of apps which make management of Movies and TV shows easy. Even though they all have native macOS apps, I chose to run them in containers, too, for uniformity.

Sonarr & Radarr

Sonarr is a TV show management utility. You let it scan your existing library and tell it which shows you want further automatic updates for. You can also ask it to download and maintain new TV shows for you. It has it own container.

Radarr is similar to Sonarr, but for movies. Without the additional complexity of seasons and episodes, it is much simpler in nature. Yet another container.

Both apps move the files to the appropriate folders used by Plex. In addition, they can also organise the folder and file names of your existing collection.

Although both apps can interface with torrent search engines directly, I prefer for them to go via Prowlarr for simplicity of management.

I use cloudflare tunnels to expose these applications to the internet for remote management.

Prowlarr and FlareSolverr

Prowlarr is a torrent search engine aggregator and management service. It interfaces with Sonarr and Radarr via API keys. Yet another container.

Some torrent search engines use Cloudflare protection (Like 1337x), Flaresolverr acts as a proxy to Prowlarr and bypasses Cloudflare challenges automatically, using a built-in browser. Last container for today.

Ruddarr

Ruddarr is an iOS application to manae Sonarr and Radarr. It interfaces with them via API keys and the Cloudflare tunnel.

The overall result is

  1. All my TV show episodes download automatically after release and appear in Plex
  2. Any movie I want to watch, I can search for, using the Ruddarr application and they appear in Plex within minutes
  3. I can monitor progress of TV shows and downloads via Ruddarr

As you can see, during idle, 6 containers combined use less than 1% CPU and 2GB RAM.

My only problem is, it is a long chain of services interacting with each other and if something breaks, it will take quite some troubleshooting to find out where the problem is.

Mac Mini M2 Pro: Video Decoding & Encoding

I recently lost a bunch of videos (mostly concerts) to a disk encryption mis-understanding., so needed to rip them again from their Blu-Ray sources. Having previously done video decoding/encoding on my daughter’s Mac, I was curious to know how the Mac Mini M2 Pro would compare when doing video decoding & encoding.

I used the trusty app Handbrake for this task.

1080p Recode

I started with the Blu-Ray disc for Hell Freezes Over.

Video/Audio specifications

Source : Blu Ray Disc, Duration 1:38:45

Video : 1426×1080, 30fps, SDR, H.264 to H.265, 8-bit
Preset : Quality, 60 CQ

Audio 1 : BD-LPCM to AAC, 320kbps, Stereo, 48KHz
Audio 2 : DTS to AAC, 320kbps, 5.1, 48KHz
Audio 3 : AC3 to AAC, 160kbps, Stereo, 48KHz

The first pass was using the default H.265 option, which was noticeable faster than the Macbook Air M1. But then I found the H.265 with Apple VideoToolBox option, which allows the video decode/encode process to be handled on the GPU.

ParameterBaselineRegular EncodingApple VideoToolbox
Average Power Consumption8W52W18W
Average CPU5%99%22%
Average Fan Speed1600 RPM2950 RPM1700 RPM
Average CPU Temp55C101C63C
Average GPU Temp44C95C68C
Average Frame Rate58 fps131 fps
Total Encoding time58 mins23 mins

As you can see, the performance difference is quite noticeable. With Apple VideoToolBox, the entire process is not only much faster (taking almost 70% less time), the CPU utilisation is much lower and the computer runs cooler, drawing much less power.

Handbrake 1080p Blu-Ray to H.265 softwareHandbrake 1080p Blu-Ray to H.265 Apple VideoToolBox
1080p Blu-Ray to H.265 Software vs Apple VideoToolKit Comparison

2160p Recode

I decided to push the computer further, so decided to document a 4K HDR file next.

Video specifications

Source : MKV File downloaded from here, Duration 00:00:30

Video : 3840×2160, 60fps, HDR, AV1 to H.265, 10-bit
Preset : Slow, RF 51

ParameterRegular EncodingApple VideoToolbox
Average Frame Rate7.6 fps53.7fps
Total Encoding Time3 mins, 55 secs35 secs

With a higher bitrate file, the difference is even more stark. The entire process completed in 85% less time.

Handbrake 2160p HDR AV1 to H.265 softwareHandbrake 2160p HDR AV1 to H.265 Apple VideoToolBox
2160p AV1 to H.265 Software vs Apple VideoToolKit Comparison

Overall, I regret not knowing about Apple VideoToolBox earlier.

Looking forward to pushing the mac for more intense tasks.

Retro Computing: Windows 98 SE/Further setup & config

Continuing from my last post, we look at the further setup and configuration of Windows 98 SE.

Emulator : UTM

After experimenting with UTM SE on iPad, then Synology VMM on the NAS, now I am using UTM on the Mac Mini.

Unlike the iPad, UTM on mac has full support for JIT, so performance is much better.

I use UTM Remote to access the VMs on my iPad, even though they are running on the Mac.

Windows 98 SE: Further Setup

The first screen after Windows 98 SE boots for the first time is this welcome screen. Time to disable it and prevent it from ever showing up again.

I heard the accompanying (rock) music for the first time ever, because I always had cheap AC’97 chipsets and you needed to install the drivers later, manually. Virtually, I can afford the Creative Sound Blaster 16; for which, Windows has drivers pre-installed.

The next step is to disable the Task Scheduler forever which I also, always did back in the day.

Windows 98 SE: Chipset driver setup

For the next few steps, it is advisable to keep the CD (Or the iso) popped in as windows will install a lot of drivers.

As you can see below, Windows 98 SE has failed to detect the PCI bus (and consequently, everything else connected to it). It needs a bit of manual push to be recognised properly.

We are at the 6th restart since starting the installation, so why not?

After the restart, Windows 98 SE detects a whole bunch of new devices, freshly exposed from behind the PCI bus. Surely some of the names are made up, right?

After the 8th reboot, yet more devices.

It’s not Windows if it doesn’t rash a few times along the way and Scandisk gets a chance to check the disks again.

Because Windows was not properly shut down, one or more of your drives may have errors on it
Because Windows was not properly shut down, one or more of your drives may have errors on it

Windows 98 SE: Display

With the display adapter correctly detected and the drivers installed, we can bump up the resolution and colour depth. Of course this brings us to the 10th restart.

Now its time to set a proper theme.

Windows 98 : Dangerous Creatures
Windows 98 : Dangerous Creatures

This used to be my mother’s favourite theme, even if not mine. I used to keep this on in hopes that she would like it and let me use the computer for some more time.

Time to shut down the VM and let it rest for yet another adventure for another day.

Microsoft Windows 98: Windows is shutting down
Microsoft Windows 98: Windows is shutting down

Homebridge & Plex on Home Server

I recently did some pretty complicated configurations on my Synology NAS & subsequently the Mac Mini & decided to make diagrams to document how things communicate with each other. The below sections describe the traffic flow for Homebridge & Plex on my home server.

Homebridge

The Homebridge traffic flow is relatively straight forward.

Traffic flow, Homekit
Traffic flow, Homekit

Homebridge acts as a bridge between IoT devices and Apple’s HomeKit. There are many 3rd party plugins for different types of devices. The plugins are searchable/downloadable from the app itself.

Homebridge Plugins : LG ThinQ & Miot
Homebridge Plugins : LG ThinQ & Miot

The traffic flow goes like:

  1. Homebridge polls your IoT devices regularly (depending on how the plugins are built) and gets status information, storing it in a local database
  2. Homebridge shows up as a HomeKit bridge to your HomeKit home hub and exposes all its connected accessories.

There’s a fair bit of mDNS involved for device discovery, so make sure your router allows Layer 2 multicast between the wired and wireless networks.

Plex

There are 2 use cases here, both a bit complicated

Plex Home Media Streaming

Traffic flow, Plex Media Streaming
Traffic flow, Plex Media Streaming

Plex Media Server is installed on my Mac Mini and can access all my media.

For devices on the local network, streaming is straight forward, the devices access Plex Media Server and stream the media.

Plex Streaming graph
Plex Streaming graph

For devices on the internet, I needed to setup a Cloudflare tunnel for remote access. This is because my ISP doesn’t provide a Public IP via which I can establish direct inbound access. Cloudflared establishes a tunnel outbound from my NAS to Cloudflare’s servers. Devices on the internet use DNS mapping on a domain name to locate the tunnel endpoint and stream media through it.

Plex IPTV Streaming

A few weeks ago, I figured out how to integrate my IPTV service with Plex. Now, Plex by itself doesn’t support IPTV services, but it does support TV tuners. That’s where Threadfin comes in.

Traffic flow, Plex IPTV Streaming with threadfin
Traffic flow, Plex IPTV Streaming with threadfin

So, there are 2 separate, independent traffic flows we need to consider.

IPTV Control Traffic

Before IPTV streaming can start, all the devices involved need to have the correct information. This is how it goes:

  1. Threadfin fetches the channel list from the IPTV provider using an authenticated .m3u playlist
  2. Threadfin fetches the programme guide from the IPTV provider using an authenticated .xml file
  3. Threadfin allows you to filter both the above to reduce the list of channels sent to Plex.
  4. Threadfin exposes itself as a TV tuner to Plex. Plex fetches the filtered list of channels and EPG information from Threadfin.

One quirk with Threadfin is that it stores the original playlist in its memory, so the container may use up a lot of RAM. My container was using 2.6GB RAM with 113k channels in the playlist. After I asked my IPTV provider to trim it, currently it is using 800MB with 37k channels.

IPTV Media streaming

Threadfin doesn’t participate in the actual media stream. When a channel is selected on Plex to be viewed, Threadfin provides Plex with the actual streaming URL.

Once Plex has the original URL, it starts fetching the stream directly from the IPTV server and provides it to all client devices, local or remote, using the same mechanism as media streaming.

Retro Computing: Windows 2000 Professional

After the painful (and unstable) experience of using Windows 95 and Windows 98, Windows 2000 Professional came as a breath of fresh air. It was the first version of Windows I used, based on NT technology. While going through the process of running it on my NAS, I tried to recall what I felt the first time I installed it.

This was almost 25 years ago, and I was apprehensive about moving to a new platform. When I consulted my friend Vishal Chopra about it, his simple advice was “2000 is a higher number than 98, so it is better”.

Windows 2000 Professional: Setup

The first phase of the setup process resembled Linux more than it did other Windows versions.

Yeah sure, nuclear, chemical or biological weapons.

Oooh, a shiny, new, modern file system.

The part of copying files was extremely fast.

The first boot screen was less modern than Windows 98. The second boot screen was more modern than Windows 98, showing a progress bar for the first time.

The second phased of setup felt as if it was running within Windows.

Networking was pretty robust in Windows 2000 Professional. I always felt (maybe placebo effect) that my dial-up internet worked faster and was more stable on it.

The first version of Windows I used that encouraged you to configure a login password.

Windows 2000 Professional: Out of Box Experience

The first order of business was disabling the terrible “getting started” screen forever.

believe this bubble was redundant, as people were already familiar with the Start menu for many years by now.

Second order of business was enabling web content for the desktop and exposing hidden files and folders.

Thankfully, Windows 2000 did not put Task Scheduler in the system tray by default, disabling which was also an action item with Windows 98.

The shut down experience was also much better on Windows 2000.

Luckily, most of the games I played back then worked well on Windows 2000; although DirectX did not come out of the box.

Bye-Bye Synology, Hello Mac Mini

I had been using my Synology NAS for a few months now. However, as I started to do more and more with it, its inherent lack of processing power started to irk me. The CPU was too slow, the RAM too limited. More than that, its ugliness on my living room shelf disgusted me. Eventually, I decided to replace it with a Mac Mini.

Synology DS224+ next to my Mac Mini
Synology DS224+ next to my Mac Mini

Since I was anyways using the NAS more as a computer than for storage (a measly few hundred GBs), the choice was not difficult. I got a good deal on a used Mac Mini M2 Pro and went about migrating my data and services from the Synology.

Remote Access

Since I planned to use the Mac Mini as a headless server, the first thing I needed to do during setup was enable remote access. I used my TV as the initial display. Luckily, macOS has built-in VNC & SSH servers and enabling them was as simple as checking a few boxes.

Remote Management and Remote Login, macOS
Remote Management and Remote Login, macOS
Remote Management, macOS
Remote Management, macOS

With an Apple only environment, you can have better security by

  1. Selecting the “Remote Management”, not the “Screen Sharing” option
  2. Not selecting the “VNC viewers may control screen with password”
  3. Using VNC over SSH when connecting with clients over the internet

The above will break compatibility with most commercial VNC applications. I like Screens 5 & Termius for VNC and SSH respectively. Both apps are paid, but quite powerful.

After verifying that remote access was working, I disconnected the TV, keyboard and mouse for good & haven’t needed them since.

Docker & Threadfin

The service I was most worried about was Threadfin, because it is not natively supported on the Mac and I need to run it within docker.

Thankfully, docker desktop works quite seamlessly on the Mac and the settings & environment variables look similar to container manager on Synology. My only problem was, I couldn’t get the container to auto-start after reboots, using environment variables in the GUI. Eventually, I could get it to work via the terminal

docker update --restart always <container_id>

Once it worked, I could clearly see the performance difference. While on Synology, the container took approx 2-3 mins from start to being usable, on the Mac, it takes less than 10 seconds.

PS: You can’t fetch new images from docker’s repository till you click on the verification link sent via email, if you have created a new account.

CloudflareTunnel

Cloudflare tunnel is installed via homebrew. It is as simple as copy/pasting a few commands via Terminal. Since the configuration of the tunnel is handled from the Cloudflare dashboard, there are no further steps required on the Mac itself.

Bonus feature, Cloudflare also allows you to setup VNC & SSH connections to your device, exposing a web interface to any browser you want to use it with. Over the same tunnel.

Plex & Homebridge

Plex is supported natively on the Mac and installing it is as easy as mounting the disk image. It detected Threadfin as a DVR fairly easily.

At first, Plex refused to detect media content from my external SSD, which was an APFS encrypted volume. However, after erasing it and setting it up as un-encrypted, it was detected fairly quickly. Funnily, once I encrypted it again, it continued to work, so I am not sure what the original problem was.

Homebridge is also natively supported on the mac and is installable via homebrew. Thankfully it comes with backup/restore functionality out-of-the-box, which worked seamlessly. Just had to keep in mind 2 things:

  1. The plugins are not backed up and restored, so these need to be installed on the new machine manually before restoring the backup
  2. I had to delete the bridge from my home app and add it again for my device status to work properly.

Backblaze Backup

Unlike my NAS, there’s no disk redundancy on the mac, so I chose to subscribe for Backblaze’s backup service. It is quite cheap, allows unlimited storage and if you need, they can even send you a USB drive to restore your content from.

Backblaze backup on macOS
Backblaze backup on macOS

It took around 2 days for the client to upload all my data in auto-throttled mode.

qBittorrent

For macOS, most people recommend Transmission to download torrents and the app itself is rock-solid, however, it is lacking support for RSS feeds. One can use add-ons like flexget to enable this, but I couldn’t get it to work.

Eventually, I settled for qBittorrent, which, although dated, has all the necessary features and works quite well. Its web UI is near-unusable on mobile phones, though and I couldn’t find a client on the App Store which works well, yet.

qBittorrent v5.0.5 on macOS
qBittorrent v5.0.5 on macOS

Resource & Environmental monitoring

I use TG Pro to monitor environmental parameters like temperature, fan speeds. It is a paid app, but is quite cheap and requires a one-time-payment only.

I use stats to monitor the CPU, GPU, Memory and bandwidth utilisation on the Mac. It is open-source and installable via homebrew.

Stats & TG Pro on Mac Menu bar
Stats & TG Pro on Mac Menu bar

Summary

Overall, what I miss most from my Synology is its easy-to-use web interface and cloud connectivity features, which worked seamlessly. Even after a lot of effort, I cannot achieve the same level of integration on the mac, as all the services are from separate providers & lack cohesion.

However, the sheer computing power and the lack of physical ugliness more than makes up for it.

Retro Computing: Windows ME/Setup

Continuing my adventures with Retro Computing, this time on Synology Virtual Machine Manager. Next up, Windows ME Setup.

Windows ME was critically panned on release. It dropped many features from previous Windows versions, but did nothing to improve stability. I made an ISO from my old and scratched Windows ME disk, mounted it in Synology VMM and let it boot.

The boot screen sent me into throes of nostalgia. So did the next steps.

I could feel myself going crazy when the setup GUI came up; thankfully, the mouse & keyboard worked without any tinkering. The installation process and steps were quite similar to Windows 98.

The whole process was much faster than Windows 98 SE, because VMs run natively on the Synology, which has official/proper Hypervisor support.

After the first reboot, I was presented with the famous “first time” Windows ME boot splash screen. Another huge dose of nostalgia.

The second phase of setup has much different graphics compared to the first phase, a bit more bright & modern.

More to come, soon.

My Home Network

Recently I was describing my home network to someone and decided to document it for posterity. Below is the main network design.

The Router

My Router is a TP-Link BE800, which is a decent router, theatrics aside. I got a good deal on a used unit and am quite happy with it. I am using the following features on the router

  1. PPPoE (IPv4 and IPv6) for WAN authentication and negotiation
  2. IPv4 NAT (with ALG) & Firewall
  3. IPv6 Access Lists
  4. DNS Proxy
  5. On the LAN
    • IPv6 SLAAC
    • DHCP server with DHCP Bindings
    • Layer 2 multicast for mDNS

The router is capable of connecting to TP-Link’s cloud, which means you can manage it remotely using their app without having/knowing a public IPv4.

Local Area Network

I have my LAN set up as shown above. Everything is one /25 subnet.

Wired (Main)

All devices that need guaranteed high throughout and low latency connect to the router via 1/10Gbps ethernet port. The devices include, but are not limited to

  1. Playstation
  2. Apple TV
  3. Syology NAS

Obviously this puts constraints on where I can place these devices especially the ugly NAS, which I am not too happy having on the living room shelf.

Wireless

I have different SSIDs on the wireless network depending on the requirements of each device.

SSID1: 5/6Ghz (Main)

All high throughput, low latency requiring wireless devices connect to this SSID and the router automatically switches the clients between 6Ghz (WiFi 7 and WiFi 6e) and 5Ghz (WiFi 6). This includes the below family devices

  1. iPhones
  2. iPads
  3. MacBooks and work Windows Laptops
SSID2: 2.4/5Ghz (Guest)

All devices which don’t belong to our family, go into this network. This includes friends, helpers, workers’ devices etc.

This network is isolated from the main networks, only has access to the internet.

SSID3: 2.4Ghz (Main)

All low throughput, but trusted wireless devices connect to this SSID. This includes

  1. Apple Watches
  2. HomePods
  3. Kindles
SSID4: 2.4Ghz (IoT)

All low throughput, un-trusted wireless devices connect to this SSID. This includes

  1. Air Purifiers
  2. Washing machine
  3. HomeKit cameras

This network is isolated from the main networks, only has access to the internet, with the exception of a specific port allowed to the Apple TV (Which is the HomeKit Home hub).

Apple Freeform

Special shout out to Apple Freeform, which is now my go-to tool for making diagrams. I was on the lookout for something similar to Microsoft Visio for personal use. Freeform not only meets expectations, but surpasses Visio in terms of usability.

Apple Freeform on iPad
Apple Freeform on iPad

Cloudflare

I had dabbled with CDN before (LiteSpeed, Jetpack), but a recent requirement around my NAS required me to move my DNS service to Cloudflare. So I thought, why not use their CDN, too and compare the before and after performances?

For web traffic, you can use Cloudflare in two modes

  1. DNS only
  2. DNS plus Proxy

As the names say, the first option uses Cloudflare servers as your authoritative name servers, but your traffic goes straight to your original server. There’s no caching and there’s no CDN.

Turning on the proxy is where the real benefits are supposed to be visible. I used their free plan for testing.

As you can see, I used various tools to test the difference in performance.

Network Latency

Being a network engineer, the first thing I tested was network latency difference between my web server and Cloudflare’s proxy.

I tested from Thailand, and as expected, Cloudflare’s proxy has significantly lower latency compared to my web server, which is based in the US. The benefits may be lower if tested from the US itself.

Pings to domain resolving to web serverPings to domain resolving to Cloudflare’s proxy
Web Server vs Cloudflare proxy Proxy Ping Results

Average 224ms latency vs 36ms.

This means that my users can experience better Round Trip Times to my website globally by connecting to their nearest CDN, instead of all focusing on one server in the US.

But ping is only part of the story. For real-life results, I used the below tools.

I ran all the tests raw with Cloudflare paused and WordPress plugin disabled. Then I re-ran the tests again, one day after enabling both.

Google PageSpeed Insights

Google PageSpeed Insights is an important tool, especially because Google uses this score as a metric to calculate its search engine Page Rankings. It is a bit simplistic, as in it doesn’t let you select a source server. But it does show results for both mobile and desktop.

Google PageSpeed Insights Mobile RawGoogle PageSpeed Insights Mobile Cloudflare
Google Pagespeed Insights Mobile, Raw vs Cloudflare
Google PageSpeed Insights Desktop RawGoogle PageSpeed Insights Desktop Cloudflare
Google Pagespeed Insights Desktop, Raw vs Cloudflare
Google PageSpeed Insights Desktop RawGoogle PageSpeed Insights Desktop Cloudflare

As you can see, there’s a minimal performance gain, which makes sense because Google’s servers are likely in the US, similar to mine.

DebugBear

DebugBear is similar to Google, but also shows a helpful graph of the different activities happening during your page load. Again, only US is available as a location for free.

DebugBear Mobile RawDebugBear Mobile Cloudflare
DebugBear Mobile, Raw vs Cloudflare
DebugBear Desktop RawDebugBear Desktop Cloudflare
DebugBear Desktop, Raw vs Cloudflare
DebugBear Mobile RawDebugBear Mobile Cloudflare
DebugBear Desktop RawDebugBear Desktop Cloudflare

As you can see, there’s an insignificant decrease in the load score for mobile, although desktop being perfect to begin with couldn’t be improved on.

Solarwinds Pingdom

Pingdom has an advantage over the last 2 tools in that it allows you to select a server location to test from. I chose Australia, being far from USA.

Pingdom rawPingdom Cloudflare
Solarwinds Pingdom, Raw vs Cloudflare
Pingdom rawPingdom Cloudflare

As you can see, there’s an insignificant amount of decrease in Pingdom’s score, but the load time and the number of requests are down significantly.

Wattspeed

Wattspeed’s lighthouse tool allows you to test for Desktop and Mobile separately, but doesn’t let you select a source server.

Wattspeed Lighthouse Mobile RawWattspeed Lighthouse Mobile Cloudflare
Wattspeed Lighthouse Mobile, Raw vs Cloudflare
Wattspeed lighthouse desktop RawWattspeed Lighthouse Desktop Cloudflare
Wattspeed Lighthouse Desktop, Raw vs Cloudflare

Significant increase in scores for both Desktop and Mobile.

Overall Verdict

Test ToolRaw ResultsCloudflare Results
Google PageSpeed (M)80/10084/100
Google PageSpeed (D)99/10099/100
DebugBear (M)71/10091/100
DebugBear (D)100/100100/100
Pingdom75/10074/100
Wattspeed (M)82/10099/100
Wattspeed (D)76/10084/100

The verdict is clear, in most cases, Cloudflare provides significant and measure-able improvements in page load times. Considering that the service is absolutely free, it is a no-brainer to use it.

However, performance benefits are not the only advantages

  1. Cloudflare will stop DDoS attacks on your website.
  2. Cloudflare allows you to set up firewall rules to block certain traffic to your website (eg on the basis of geolocation).
  3. Even if your website ever goes down, Cloudflare can continue exposing your website from its cache.

Retro Computing: Epic Fail!

Continuing from the last post, we continue with my attempts to host Retro Computing VMs. However, there has been a change around how I host my VMs.

As I mentioned before, the performance running VMs on UTM SE sucks balls. No fault of the app itself, the problem is around the artificial limitations imposed by Apple on iPadOS. So I decided to find another way to run them.

Microsoft Azure Dv3-Series

I recently found out that service like Google Compute Engine and Microsoft Azure support nested virtualization. Basically you can run VMs inside the VMs they provide you. Due to my aversion to Google, I chose Azure.

Signing up for Azure’s free tier was pretty painless (If you don’t count opening each link within their portal in a new tab). Although, a few terms are a bit technical and require doing a bit more research.

I chose the below starting specs for my parent VM:

Zone: Asia Pacific (Central India)
OS: Windows Server 2022 Datacenter Edition
CPU: 2 vCores
RAM: 8Gb
Disk
: HDD 32Gb, 500 IOPS, 60Mbps

*I chose Central India as the Datacenter, because I also wanted to use this VM to access Indian websites, geolocked outside India.

It was a bit technical getting Nested Virtualization enabled.

I used the Windows app to remote-in to the parent VM and installed Oracle Virtual Box to host my child VMs. Luckily, the Windows app supports transfer of files from the iPad to the VM, but it is painfully slow (400-700 KBps).

Slow file copy via the Windows iPad app
Slow file copy via the Windows iPad app

Eventually, I ditched this approach, because

  1. The on-going costs were more than I was willing to spend on this project (Especially because there is no way to accurately predict how much you will be charged)
  2. There was no sound emulation

Synology Virtual Machine Manager

Synology Virtual Machine Manager (VMM) is Synology’s (mostly) free Hypervisor that can be installed on its DSM platform. Since my newest NAS now supports this, the next step was to run my Retro VMs on it.

The software is quite powerful and except clustering, almost all the features are free.

However, the Hypervisor doesn’t seem to be optimised to run such old OSes. I could get the Windows 98 installation to complete, but I couldn’t get the OS to boot however much I tried.

It was safe to assume even older OSes like Windows 95 and Windows 3.1 would never work. So I gave up.

My Retro Computing plans are on hold for the time being.