Sorting and comparing in vi / vim / vimdiff

I regularly use vimdiff to compare files on a local server with a remote server via SFTP. I keep forgetting how to get VI to refesh the view when one of the files has changed on the filesysem. It’s simply done with
:diffupdate
When comparing, if the order of lines in the file doesn’t matter and you think that they are similar except for the order, you can also use the built-in command:
:sort
to sort the lines. Mark the lines you want to sort first with visual marking mode (V) and then apply the sort.

Convert seconds to HH:MM:SS format in Excel

I need to know how to do this today but couldn’t find an easy copy and paste answer, so I had to make one myself.

Other solutions I have seen use the TIME function will work so long as the number of hours is less than 24, once they are higher then it will fail as it’s actually using a date format and just showing the time portion of it (and date formats cannot have more than 23 hours in a day). E.g. 86401 seconds (a day plus one second) will show “00:00:01″.

The way around it is to use a bit of maths (floor and mod) and build the hours, minutes and seconds up with concatenation. For example, in a new Excel document set the following cells:

A1=86401

A2==CONCATENATE(TEXT(FLOOR.MATH(A1/60/60),”00″),”:”,TEXT(FLOOR.MATH(MOD(A1,60*60)/60),”00″),”:”,TEXT(FLOOR.MATH(MOD(A1,60)),”00″))

This will give a value of “24:00:01” which is what I needed.

Note, I’m purposely formatting the H, M and S values with two digits, but if the number of hours is larger than 99 then it will expand to three or more figures.

Hope someone finds this useful!

Directory listings from “dir” in Windows in wrong codepage

When trying to output a directory listing using
dir /b /s > files.txt
I had a problem where the accented characters were appearing incorrectly.

The solution (found in this answer on stackoverflow.com) was to change the codepage of the terminal before running the command with
chcp 1252
(in this case it changes it to the Western Europe codepage which is what I needed, other characters may require other codepages).

Running multiple versions of Skype on Windows 10

I like to keep my personal and work Skype accounts separate, and also have a “support” account as well, so I like to have multiple versions of Skype running on my work computer. Since upgrading to Windows 10 I am unable to use the “Launcher for Skype” software to have multiple copies running. The only way I found to accomplish what I needed was to use an old version of Skype and launch it on startup with a batch file.

In order to set this up you need to do the following:

  1. Install Skype 7.15 or lower (this isn’t that easy to find, you’ll need to search for this on sites which archive old versions of software)
  2. Create a batch file “C:\Users\%username%\Skype.bat” with the Skype usernames and passwords you user to login to each account. See a sample batch file below
  3. Create a shortcut in “C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” which opens Skype.bat in a minimized window. If you give the shortcut a Skype icon it won’t even look like a script is running on startup.

Contents of Skype.bat (repeat the last 4 lines for each new account you wish to run, replacing XXXX with your username and YYYY with your password):

@echo off
echo Starting Skype: XXXX...
start "Skype: XXXX" "C:\Program Files (x86)\Skype\Phone\Skype.exe" /secondary /username:XXXX /password:YYYY
echo Connecting as: XXXX...
timeout 20

Windows Server 2012 wasn’t deleting old backups

Today I realised that our Windows 2012 backups were not working because we had run out of space on the backup disk. Windows Server Backup should automatically delete the oldest backups but for some reason it wasn’t doing this. (From what I read this may be due to corrupt snapshots.)

The solution seems to be to try to manually delete the oldest backup. This can be done by first giving the backup drive a drive letter (in this case E:) and then running:
vssadmin delete shadows /for=x: /oldest

However, this didn’t work for me as I received the error:

Error: Snapshots were found, but they were outside of your allowed context. Try removing them with the backup application which created them.

To fix this problem you need to view and delete them manually.

From the command prompt:

diskshadow
list shadows all
delete shadows set {id of shadow to be deleted if selective deletion is to be performed}

OR

delete shadows all {if all shadows are to be deleted}

This information was found on this site: https://support.software.dell.com/appassure/kb/121604

Process PayPal Express Checkout for third parties

Today I needed to find out how to process PayPal Express Checkout transactions for third parties. PayPal allows merchants to give permissions to other merchants to perform transactions on their behalf, without having to hand over their private API username, password and signature. While we have implemented Express Checkout for ourselves, I couldn’t find out how to perform the transaction on behalf of another merchant until I found this useful post.

To quote from the link above:

Yes, you specify an alternate “SUBJECT” of the transaction.

Normally your SetExpressCheckout request looks something like:

METHOD=&VERSION=&PWD=&USER=&SIGNATURE=&...

Now it will look like this:

METHOD=&VERSION=&PWD=&USER=&SIGNATURE=&SUBJECT=...

Payee_PayPal_Account is the email address/username the user uses to log in.

(Note that email address/username is NOT the API username of the account.)

Thanks Jeremy!

Edge on Windows 10 opens and closes immediately

I had a problem with the Edge browser only a day after doing a clean install of Windows 10. When I tried to open it it would open, sit on the screen with the big blue background and the “e” logo, and then disappear about 4 second later. I was able to fix it by following the below steps:

First delete the Edge folder. The path:
C:\Users\%username%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe

Then Launch Powershell as and run the following command:
Get-AppXPackage -Name Microsoft.MicrosoftEdge | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" -Verbose}

Hit enter and once the command is executed try opening Edge again.

For me it worked without having to restart, but the place where I found these instructions suggested restarting a couple of times. Here is original article I found.

Also, I ran the command without the -AllUsers parameter, not sure if that was why I didn’t have to restart.

Hope that helps someone!

Allowing Apache to listen on a different port with SELinux

I wanted to set up a virtual host in Apache today using a different port than the standard but kept getting a permissions error when I tried to start Apache. The problem turned out to be SELinux not allowing the port to be used. In order to fi it I just needed to add the port as one of the allowed ports for Apache.

For example, to allow Apache (httpd) to listen on port 12345 the command is

# semanage port -a -t http_port_t -p tcp 12345

How to enable the Active Directory Schema Snap-in

When installing a Windows Server 2012 server to replace an old Server 2008 I needed to access the Active Directory Schema Snap-in but it didn’t appear in the Microsoft Management Console list. It seems that the DLL for it isn’t registered with Windows so you need to do that first. You simply need to do Start > Run > regsvr32 schmmgmt.dll > and then click OK.

After you do that the option should appear in the Add or Remove Snap-ins list withing Microsoft Management Console.