Category Archives: How To

SVN Command Line Basics

I keep forgetting SubVersion basics from the command line, and thought this quick little cheat sheet might come in handy. I’ll cover the basics:

  • checking out
  • updating your local copy
  • checking current file status
  • committing a change
  • adding a file
  • removing a file

Checkout Out

To make an initial copy of an online repository, we use the checkout command. It’ll create a new folder with the name of the online repo in the current directory and copy all its contents into it. Checkout can be abbreviated with co:

Updating your Local Copy

If you’ve already checkout out a repository, and you’re not sure if changes have been made on the remote, you can update your local copy using the update command. It can be abbreviated with up:

A list of updated files will be displayed, as well as the revision of the current commit. If no files are displayed, your local copy is up to date. Check svn help update for details.

Checking the status of current files

SVN let’s you display a status of all current files. This lets us decide what has been changed locally before a commit has been made. We use the status command for this, or its abbreviation stat:

A list of files and their status appears, or nothing if all files in your local copy match the online repository. Check svn help status for details.

Committing a change

When one or more files have been changed, it’s time to submit this change to the online repository. We do that with the commit command, abbreviated with ci (short for checkin). It’s customary to leave a small comment as to what this change does, using the -m switch:

Commit will store changes across multiple files. There’s no need to submit each file individually. The commit command is designed to make all changes final, such as updates, additions and deletions. It’s usually used at the end of all changes that have been make, as a final synchronisation step.

Adding a file

Add will add a new file to the repository. It’s necessary to add files to put them under version control, otherwise they’ll be designated with the ? parameter (as unknown state). The same goes for directories.

Removing a file

If you delete a file from the local directory, we must tell SVN about it. Otherwise it will assume the file still in the online repo is out of sync and should be downloaded to your local copy first (being obviously missing and all). Delete will remove a file for us. The command can be abbreviated with del, remove or rm:

Further Reading

How to add your Twitch URL to Reddit

I’ve been meaning to join Reddit about 20 years ago and never got round to it. Sadly my last name and site name are gone by now, but I finally managed to sign up – new for 2020 and all that. While I was there, I accidentally stumbled upon the option that lets you add your Twitch URL next to your user name. I had read how to do it recently, but it didn’t mean anything until I saw it.

Here’s how it works.

The option is not set on your user profile, but on the community, i.e. the Twitch Subreddit. You must join it first, head to its main page, then click the little pencil icon next to the option “Use Flair Preview”.

This will give you the option to edit your flair and show it on this community.

Hit apply and that’s it! Anytime you make a post or comment in the Twitch Subreddit, your link will be shown.

How to redirect a URL in NGINX

I’m a fan of easy to remember URLs, rather than long cryptic ones. For things I give our verbally or in chat I sometimes setup redirects using one of my domains and NGINX directives.

So when I’d like to point users to my 3D Shenanigans channel, I can tell them to go to https://3ds.wpguru.tv rather than https://www.youtube.com/channel/UCmBV6fLZMzCaIEXzF1SSJuQ/ (because which human in their right mind could possibly remember the latter).

Thing is, I can never remember what the exact syntax is, so I thought I’d write myself a note for such future redirection setup. Here’s what the above example looks like when added as a directive to the subdomain:

Note the use of the semicolon at the end of the line and the curly braces. I’m not that versed in NGINX, but every time I look at it I think “that’s easy”, and promptly forget only seconds later. I hope this helps both you and me to remember next time.

How to setup Loop Recording on the GoPro HERO 8

Loop Recording has been fairly intuitive to setup up until the GoPro HERO 7. The option is still available on the HERO 8, but it wasn’t obvious to me how to enable it. Now that I’ve found out how to do it, I thought I’d share it with you.

The trick is that any of the new settings presets (i.e. Standard, Cinematic and Activity) cannot enable Loop Recording. You have to create a fourth (custom) preset with which you can activate it.

Continue reading How to setup Loop Recording on the GoPro HERO 8

How to setup AirPods (1st generation) with a MacBook Pro (2011)

I really like my first generation AirPods. I use them on my 2012-2018 devices all the time, but I had never tried them on my old MacBook Pro from 2011. I had always assumed they probably use some low-energy version of Bluetooth 4 or whatnot, expecting they won’t work. But I was wrong! They DO work – it’s just that the setup process is slightly different than on my other devices.

Here’s how I could connected them successfully.

What usually happens

Ordinarily, iCloud seems to take care of spreading the connection love. That is, AirPods connected to my iPhone will automatically be “seen as available” by my iPad and my Desktop Mac. All I have to do is to head over to the little speaker icon on the Mac, then select my AirPods from the list.

On my MacBook Pro 2011 that doesn’t work. There’s no AirPods entry. I had to pair them manually.

Make the 2011 MacBook see the AirPods

So what we need to do then is this:

  • switch Bluetooth on (obviously)
  • put the AirPods in their case
  • open the lid
  • press the pairing button on the lid and leave it open
  • take the AirPods out (but leave the case open)
  • wait a moment to hear the connection beep

Now we can close the case and listen to the AirPods. The pairing process takes a little longer, and oddly enough there’s no AirPods entry to select in the list of audio devices. Be that as it may, they are indeed connected and can be used to listen to audio now.

Why that is I do not know – and perhaps I don’t need to either. All I know is that they’re working fine under macOS High Sierra. Hope this helps!

UPDATE: After restarting my MacBook, the AirPods did indeed show up in the Bluetooth menu, so now it behaves just like my Mac Mini. Even Macs need restarting every once in a while.

How to pause recordings in OBS 24

A wonderful new feature in OBS 24 is the ability to pause you recordings. This can come in handy if you want to create a quick and rough recording, without taking multiple files into a video editor. It’ll speed up your workflow and increase quality for files you want to send away “as is”.

Question is: HOW do we pause recordings in OBS 24 and above?

If you’ve been looking for a pause button but can’t find it, let me give you some pointers on how to make it magically appear. First of all, OBS can’t pause live streams. Those have to be delivered continuously. By default, the encoder for recordings is the same that’s used for live streaming. It’s efficient and reduces processing overheads.

Under Settings – Output – Recording you’ll see an option that’s set to “Use Stream Encoder”. If you change that, it means OBS will open up different settings that can be configured independently of those used for streaming (for example, you could use a software encoder instead of a hardware encoder, or use a different bitrate).

As soon as we change this, and then press the big RECORD button in the main interface, we’ll see that it has a PAUSE option next to it.

Now we can either stop the recording as usual (closing the file), or pause the recording and then un-pause it so that OBS keeps recoding at the end of same file.

And there you have it! You can download OBS 24 from the official website or the GitHub Repo (past versions are available under the Releases Section).

PS: OBS 24.0.1 was the 100th release by the team 🎂 I’ve even made a video to celebrate:

How to play XIII (Classic) – PC Keyboard Layout

Back in the days when I had a physical copy of XIII, I never had that problem with the console versions of the game. There are only so many buttons to press on a controller, and there’s an in-game tutorial that tells you.

Surprisingly, the current GOG.com version comes with a manual, but it does not mention the keyboard layout. Neither did the original manual for the physical game if I remember correctly. When I wanted to map the PC kets to my controller using Xpadder, I quickly realised that aside from walking and basic shooting, I had no idea how to use the scope of the grappling hook.

I’ve compiled this handy list to remind me how it works for next time, might come in handy if you’re in the mood for some retro comic type FPS action:

  • WASD keys – walk around, rather fast
  • hold the left SHIFT key – in addition to WASD to walk slowly
  • SPACE – Jump
  • MOUSE – look around
  • Left Mouse – Fire
  • Right Mouse – Alternative Fire (like throw grenades, or stab with a knife)
  • Q – use Quick Heal, i.e. take next available med kit
  • E – Action (i.e. open doors, pick up items, etc)
  • G – Throw hand grenade
  • R – Reload Weapon
  • Right ALT – use the Sniper Scope
  • C – Crouch down (toggle between standing and crouching)
  • Page UP / Page DOWN – cycle through weapons

UMLAUTBOARD: Easy access to Umlaut Characters from anywhere

I’ve just released UMLAUTBOARD, a super simple single-page mobile friendly website that allows anyone to copy German Umlaut characters to their clipboard. Let me tell you a little about why I made this, how it works, and how ya’ll can expand it if you want. And here’s what it looks like:

What is UMLAUTBOARD?

The idea is very simple: it’s a fixed page with umlaut characters at the bottom. Click on one, and the respective character is copied into the current device’s clipboard. Now navigate to where you need that character and paste it in. This works irrespective of your operating system, mobile/desktop device or keyboard/language settings.

All you need to remember is this short URL ub.wpguru.co.uk. Works on any OS, anytime and anywhere.

Continue reading UMLAUTBOARD: Easy access to Umlaut Characters from anywhere

How to find the URL to a Facebook Post

I wanted to share a quick screenshot with a viewer on YouTube, and come to think of it, I didn’t know where to put it. My Facebook Page sprang to mind, since it’s not doing much of anything, so I pasted it there with the intention of sharing a link to the post.

However, every available share option on Facebook doesn’t give yo a direct URL. It’s all meant to stay “within the platform” and all, and direct URLs are not something they’d like to you discover easily. It’s Facebook after all, the people from the Cambridge Analytics scandal in 2018.

So how do we find that URL to a post? Let me show you. Hover over the time of the post, in the item that says “just now” or “4 days ago”. That’s actually a powerful menu. Right-click on it to reveal it (courtesy of your browser).

One of the options you’ll see is “copy link location”, which will give you the direct URL you can share anywhere so people can view the post.

And that’s it – you’ll end up with a hugely long URL like this one: https://www.facebook.com/wpguru.tv/photos/a.342467492449157/2796419980387217/?type=3&tn=-R, but it’ll work just fine.

Note that the post you’re sharing needs to be public for everyone to see it, otherwise people will only see a “login to Facebook” screen. Not everybody has Facebook (anymore), nor is this a guarantee for logged-in users to see the post.

Hope this helps!

How to revoke active Discord Invites

Discord invitations can either be set to expire automatically after a given amount of time, or they can be set to “never expire”. The latter ones are great if you give the link to select users only, however sometimes you might just want to disable them manually.

Here’s how to do that in Discord for Desktop (Windows and Mac).

Right-click on your server’s title and choose Server Settings. I mean the strap at the top above all the channels, not the server icon on the left hand side.

In here, on the sidebar at the bottom left, find the Invites section, under User Management.

This will show you a list of your currently active invites. Hover over the one you’d like to revoke and click the little red X icon in the top right corner.

That’s it! Once removed, the invitation link is no longer valid, and users trying to join your server that way will receive a message.