ShadowPlay is a feature of modern NVIDIA graphics cards that allows for recording games and other applications at native resolution with only a minimal performance hit. It also includes some genuinely useful features like instant replay. Unfortunately, the audio options for recording are pretty limited. By default, all audio is recorded to a single mixed track. This includes the game audio, but…
Proxmox VE is an open-source ( AGPL v3 ) virtualization platform for running containers and VMs. It's comparable to a proprietary solution like VMware ESXi . It can be downloaded and installed completely free of charge, lacking only access to support and other things that more enterprise-focused users care about. For a homelab install, the free version is perfect. ...except for one thing. Each…
This post will detail how to simulate activity on your computer in order to prevent it from auto-locking or going into sleep mode. Note that this will usually also prevent the "auto-away" functionality of various chat programs from ever marking you as "away". Generally you should change your operating system's settings to disable sleeping and auto-locking if possible instead. These methods are for…
Warning You probably shouldn't do this. If you already know this and don't care, read on. Background In Canada, the CRTC mandates that telecommunications companies and other organizations broadcast warning messages over various mediums, one of which is via cell phones. Overall, this is a good idea that saves lives. However, the implementation is incredibly bad. All alerts, no matter the severity,…
Background Up until a few months ago, my home network setup was pretty terrible. The entire house ran off the WiFi provided by an OpenWRT -powered TP-Link WDR3600 from 2013 in the far corner of the house. So when I fired up a game on my laptop via Steam in-home streaming and got unplayable lag and stuttering, I just figured that the issue was the network and left it at that. After all, the gaming…
Background Both this site and my home server use HTTPS certificates provided by Let's Encrypt . Previously I was using the http-01 challenge method, but once wildcard certificates became available , I decided to switch to the dns-01 method for simplicity. My domains are currently registered through Namecheap which provides an API for modifying DNS records. The only catch is that it can only be…
Google's Chromecast is a pretty useful device. It plugs into the HDMI port of a TV and allows users to "cast" content to it via a smartphone, Chrome browser , etc. This content is mostly assumed to be streaming services like Youtube , Spotify , or Netflix , but for someone who doesn't really buy into the whole cloud revolution like myself, it's still perfectly capable of playing local content as…
The situation The Nexus 5 that I've had for almost 5 years started bootlooping repeatedly. I've replaced/repaired multiple parts of it over the years but lately it had been more flaky than usual. For example: Sometimes when booting it would show a "Firmware update in progress, don't disconnect your computer" message, even though there was nothing connected to the USB port. It would randomly freeze…
Background In my current rental situation, the landlord provides internet included with the rental. Since it's fast enough and has enough bandwidth this isn't an issue at all. The only problem is that the modem provided by the telco is an ancient Alcatel-Lucent Cellpipe 7130 5VzA2001 modem/router combo. It's running firmware version 1.0.4.4R8-wh , released on 2012-05-08 16:30 (there are no…
With multiple Gmail accounts, it's often easier to forward all emails to a single main account that you actually check. This can be accomplished by setting up a forwarding account in Gmail's settings. However, something that isn't immediately obvious is that messages that are considered spam are never forwarded. While Gmail's spam detection is extremely good, it's not perfect. There have been…
Preface In this entry I'll use two command line tools ( curl and jq ) to request currency conversion rates from the Bank of Canada . Now obviously getting the same data through the normal web interface is possible as well. However, doing it this way returns the data in a machine-readable form, allowing it to be customized or used as input into other programs. The basic flow will be request the…
Yesterday I finally ticked something off my todo list that'd been on there for a while - I added proper HTTPS support to this site, powered by Let's Encrypt . The Qualys SSL Labs SSL Server Test now gives this site an A+ rating . You can see all the certs (past and present) for it on crt.sh , an online certificate search tool. For those interested in how things work: Let's Encrypt is a "free,…
The subscription feature on Youtube allows you to keep up to date with content that people upload to the site. Since I use an RSS reader for every other blog or site that I follow, why not do the same for YouTube subscriptions? Update This method no longer works. The YouTube v2 API (which is what this method was using ) was retired on April 20th, 2015 . To work around this, each channel must be…
In addition to running this website, I also run a home server. For convenience, I point a subdomain of cmetcalfe.ca at it so even though it's connected using a dynamic IP (and actually seems to change fairly frequently), I can get access to it from anywhere. As a bit of background, the domain for this website is registered and managed through Namecheap . While they do provide a recommended DDNS…
At work, I use iTerm2 as my main terminal emulator. For quick access, I have it configured to drop down from the top of the screen when F12 is pressed. Unfortunately, it also shows up in the application switcher, bumping up into the 'last used' position whenever it's activated and getting in the way. Since I already have access to the terminal via F12 , there's no need for it to be shown in the…
Update CyanogenMod has effectively been replaced by LineageOS . The links in this article originally all pointed to CyanogenMod but since it no longer exists, I've updated them to use the LineageOS equivilents where possible. The instructions will also need to be slightly modified for use with LineageOS builds. Introduction I finally just bought a new phone (a Nexus 5 ), and after flashing…
Ridiculous Fishing is a game by Vlambeer about fishing. That's if you can call chainsawing fish and blowing them out of the sky with a bazooka "fishing". I've been playing this game on and off for a while now, but just recently I had a problem where my save file somehow got corrupted, making the app refuse to open. The problem first manifested as the game freezing for up to 5 seconds when…
When an application isn't opening (and clearing the cache doesn't help) it sometimes helps to reinstall it. However, uninstalling then reinstalling the app normally will delete all the data associated with it. The way around this is to directly call the package manager from the shell and give it the -k argument, which tells it to keep the data and cache directories. Simply connect the device to a…
Having Git autocomplete branch names when doing a checkout is super useful. Having the autocomplete hang for 30 seconds because it has to look up all 3000 of the remote branches in a massive repo is not so useful. It's actually pretty frustrating. My solution: changing the git checkout autocomplete to only look at local branches, while using a git checkoutr alias to preserve the original behaviour…
The Xposed Framework is a neat Android program that enables user-made modules to change the behaviour of the lower-level Android OS. It does this by modifying /system/bin/app_process to add some hooks into it. The issue is that when flashing a new ROM, the modified app_process is reverted back to the original version, disabling the Xposed Framework until it's restored. Update The Xposed Framework…
Preamble This article will focus on setting strict speed limits on misbehaving devices on your network. This can be a housemate incessantly torrenting, your kid downloading movies on iTunes, or anyone else clogging up your network with their overzealous bandwidth gobbling. If you're looking for help with the QOS (quality of service) settings that come baked into most router firmwares, this article…
When installing Wine for Linux , the install script insists on associating all text files with its built-in notepad.exe As someone who uses Vim almost exculsively, this is definitely not the desired behaviour. To stop this from happening, run the following command before installing Wine. 1 export WINEDLLOVERRIDES = 'winemenubuilder.exe=a' This sets the path of the winemenubuilder library (the…
I used to run this site on two different platforms. There was a static landing page hosted on my server, and a blog hosted on Blogger . While the landing page was reasonably nice-looking (screenshot here ), the blog looked terrible. Free Blogger templates are generally not the nicest-looking things to look at and the one I used was no exception. More importantly though, the Blogger composer made…
Steam for Linux is a little odd in how it handles a user clicking the close button. Instead of exiting the program or mimimizing the application to the system tray, it just minimizes it to the taskbar. The developers have said that this is temporary and that it will be changed in the future, but for now, there is a workaround. To make Steam always minimize to the system tray, just add…
GitHub currently doesn't provide a way to convert an issue to a pull request in their interface. However, the capability exists in their Pull Request API . Update I've built a self-hostable webapp called gh-i2p that makes this process easier. To call the API using a simple curl command, run the command: 1 2 3 4 curl --user "[github username]" \ --request POST \ --data '{"issue": "[issue num]",…
Android will automatically perform a media refresh when an SD card is mounted. Using adb , we can fake that event by manually sending a MEDIA_MOUNTED intent. For example, if you wanted to run a media refresh of the entire SD card: 1 adb -d shell "am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard" To refresh different directory, just change "/sdcard" to the absolute path of the…
Fehlstart is an application launcher, much like Launchy , Quicksilver , or GNOME Do . However, where other launchers focus on adding features, Fehlstart is as basic as they come. If you want to search for files or control your media player, look elsewhere. Felhstart launches applications. Period. Fehlstart isn't in any major repositories so it has to be compiled from source. Install dependencies…
Storytime So you're in your first year at Queen's University residence and you want to access the internet. Sounds reasonable. You plug in your Windows laptop, open your browser, and...nothing. Well, mostly nothing. A page that tells you that you've been quarantined and to please click here, download IDA, install it, and let it work it's magic. Sounds easy right? What they don't tell you is that…
When accessing computers on a LAN, it's often useful to access them by name instead of IP. This is especially true when dealing with dynamic IP addresses. In Windows, other Windows computer names are automatically resolved to an IP address. In most Linux distros however, this is not the case (by default). To resolve Windows NetBIOS names in Linux, you'll need the winbind component of the Samba…
As is the way with Vim , there are a ton of features, but stumbling on the combination of commands that does what you want can be a bit difficult sometimes. In this case, the objective is to perform a search and replace over some files. This is done in two steps: loading up the files to process, then issuing a command to run on each of the files. Load up the files to search using the args command.…
When using Google Sites, there is currently no way to make a backup of your site, or download the site so you can host it on another server. This command uses a tool called wget to spider through a website and download all the public files to the local computer. Unix users will most likely have the wget tool already installed (if not, you can install it via your preferred package manager), while…
I recently needed to back up the contents of a website, but found that a disk quota was preventing me from doing so. What I really needed to do was find a way to compress all the files and, instead of storing the archive locally, pipe the output to another server. After much Googling and messing about, I ended up with the following command: 1 2 3 #Uses the tar utility to backup files to an…
Before you start, make sure the iPhone is connected to the internet via 3G or WiFi. Navigate to the main settings screen Tap "Mail, Contacts, Calendars" Tap "Add Account..." Tap "Other" Tap "Add Mail Account" Enter your name, the address of the account you want to access ([your NetID]@queensu.ca), your password, and an optional description Tap "Save" Tap "IMAP" Scroll down to "Incoming Mail…
TortiseHg can be a bit of a pain to set up if you don't want to have peagent running in the background all the time for authentication. This method uses TortisePlink (comes with the install) for authentication, and runs it only when it needs to authenticate. Generating a public/private key pair Download PuTTYgen and run it. Generate the key pair by clicking the generate button. Optionally, enter a…
Sharefest is a site that allows users to send files of arbitrary size via a P2P connection. To use it, go to the site, select a file to share, then give the link to friend. All they have to do is visit the URL and they'll be able to download the file you shared. This transfer is directly from your computer to theirs, without the file being uploaded anywhere between. This also makes it easy to stop…
Gmvault is an open source project that allows users to download all of their emails, as well as the labels. From there it's as simple as opening them up in a program like Outlook or Thunderbird to view them. It also includes an option to restore the emails. Most email clients have the capability of doing this, but this was by far the quickest way. Automatic incremental backups can also be done by…
A recent project of mine involved tearing apart an old keyboard (a Dell Y-UK-DEL1 ) and using the media keys to make a simple media controller box. Everything went smoothly with the build, but when I plugged it in, the music media key launched VLC instead of my preferred player, foobar2000 . After spending a while in the control panel looking for how to change this behavour and finding nothing, I…