Transfer WhatsApp Messages from Android to iOS

After nearly a decade, I decided to switch back to iPhone for the first time since the iPhone 4. I was willing to spend an afternoon redownloading all my apps and meticulously signing in to each one, but my years of chat history on WhatsApp eluded me. Currently, there is no official way to transfer your chat history from Android to iOS. This may be changing soon, as WhatsApp recently added support for iOS to Samsung transfers on select devices with the promise of support to come soon....

October 11, 2021 · Matt Olan

Proxmox GPU Passthrough Guide

My wife and I recently started playing Cities: Skylines together with a multiplayer mod, but her older MacBook Pro wasn’t powerful enough, causing the server to throttle my game to allow hers to catch up. With the ongoing chip shortage and crypto boom, buying new hardware to remedy this issue was off the table. Instead, I opted to share my existing hardware through virtualization using Proxmox Virtual Environment and GPU passthrough....

June 28, 2021 · Matt Olan

Using the OpenFaaS IngressOperator with Traefik v2 on Kubernetes

Lately, I have been migrating the public services I have running on a DigitalOcean Droplet to a cluster of Raspberry Pis running K3s at home. To simplify the development workflow for my projects I have converted many of them to OpenFaaS functions that run on the cluster. As many of these projects are exposed as subdomains, I have deployed OpenFaaS with its IngressOperator which helps me manage the mapping from nodeinfo....

May 9, 2021 · Matt Olan

Migrate from Authy to Another 2FA App

With the recent changes to LastPass Free limiting the types of devices you can concurrently use with one account, I decided now was the time to migrate to a new service. I settled on a self-hosted instance of Bitwarden, specifically the bitwarden_rs implementation in Rust that allows me to run it within a single Docker container. One new feature of Bitwarden I was particularly happy with was the integration of a TOTP generator....

February 21, 2021 · Matt Olan

How to Create and Enable Swap in Linux

Running low on memory can cause applications to crash, the system to become unresponsive, and other issues. This is common on memory limited systems, especially on SBCs like the Raspberry Pi. Swapping to disk can be used to allow for some extra breathing room at the cost of performance. You can check to see if you already have swapping enabled by running the following command in a root shell, or with sudo....

January 16, 2021 · Matt Olan

Raspberry Pi iSCSI Root on Ubuntu 20.04

Over the holidays, I wanted to build a Kubernetes cluster on some Raspberry Pis I had, which were collecting dust. I spun up a simple Rancher K3s cluster, but quickly discovered they were heavily IO-bound. I decided that if I was going to use this cluster for real applications, I would need a better storage solution. IO performance is the primary issue keeping me from using Raspberry Pis in more of my projects....

December 29, 2020 · Matt Olan

How to Downgrade Steam Games

Yesterday, Sid Meier’s Civilization VI got a new update for the New Frontier Pass. This update had the unfortunate side effect of breaking compatibility between the Windows and macOS versions of the game, meaning that when the two versions tried to join an online game it would spit out a “Version Mismatch Error”. In order to regain compatibility I needed to rollback or downgrade my Windows version so that it would be on the same, older version as my friends on macOS....

May 22, 2020 · Matt Olan

Making a piSCSI USB Drive — Part 2

Continuing directly from my previous post, I have received my RockPi 4b in the mail and, using the exact same methods outlined before, have set it up for OTG and iSCSI. To automate these steps, I created a simple script that initiates the device and starts the mass storage module, and put it into /root/ #!/bin/bash -ex iscsiadm -m discovery -t st -p SERVER-IP iscsiadm -m node --targetname "TARGET-NAME" --portal "SERVER-IP:3260" --login /sbin/modprobe g_mass_storage file=/dev/sdX stall=0 I then added the following rule to crontab under root to have the script run at startup....

April 22, 2020 · Matt Olan

Making a piSCSI USB Drive — Part 1

I use my home Synology NAS to consolidate nearly all my data in one place. One exception to this is my PlayStation 4, which can connect to the NAS to consume media, but not to store games or backups. As my console’s hard drive quickly filled up, I had considered taking advantage of the PlayStation’s external hard drive support. This, however, would completely ignore the eager terabytes of available storage sitting just a few feet away in my NAS....

March 30, 2020 · Matt Olan

Hilda Peak

1/1000s f/6.3 50mm ISO100 Shot on ILCE-6400

September 26, 2019 · Matt Olan