bookmark_borderCan’t Scroll in Windows Subsystem for Linux

I don’t know when it started, but at some point in 2021 I was not able to scroll inside my linux terminal on Windows. I really don’t care why it started, but I do know the fix.

After banging my head on a wall, and living with it for a few months, I decided enough was enough.

Bring Back the Scroll

Right-click the header and click on Properties.

Click on the Layout tab.

Change the height value in Screen Buffer Size to 999.

Done. You’re welcome, I am glad we were able to put this phase of our life behind us.

bookmark_borderWorking with Merge Conflicts in Git

There are instances while working with a shared repo that your Pull Request will hit a conflict with the master repo and that will prevent your PR from being merged.

The easiest way to resolve this is going to be via your terminal.

Step 1 – Ensure you are working with the master repo (the repo you are trying to push your PR too)

The key is to make sure the origin of your repo is pointing to the right repository. By default, your local repo will probably have it’s origin set to your specific branch. Deconflicting in this instance is not possible.

Fix this by checking out the master.

git branch

This will give you something like this:

server:path$ git branch
* [name]-master
master
[user]-master

Will give you a list of the available repositories.

git checkout -b [name]-master master

Will switch the “origin” to the master repo. Only then, can you really resolve the problem.

Step 2 – Identify and Resolve the Merge Conflict

Step 1 is the most important, from there the steps identified by Github make the process simpler.

Running

git status

Will identify where the merge conflict is:

$ git status
> # On branch branch-b
> # You have unmerged paths.
> #   (fix conflicts and run "git commit")
> #
> # Unmerged paths:
> #   (use "git add ..." to mark resolution)
> #
> # both modified:      styleguide.md
> #
> no changes added to commit (use "git add" and/or "git commit -a")

Open that file, sytleguide.md, and scroll until you see the annotations that signify where the change is:

If you have questions, please
<<<<<<< HEAD
open an issue
=======
ask your question in IRC.
>>>>>>> branch-a

This will appear right in the fie, via your editor. All you have to do is choose which entry to keep. Delete section you don’t want, and be sure to remove the annotations.

It will look like this when you’re done:

If you have questions, please

ask your question in IRC.

Notice I removed the annotations, and the entry I didn’t want. I want everyone to come to IRC. šŸ™‚

Step 3 – Commit the Changes

Once you have identified what you want to keep, and delete proceed with committing the change.

$ git add .

$ git commit -m “Resolved merge conflict by forcing users to contact via IRC.

The final step is to switch back to your branch to avoid making changes directly to the master.

$ git checkout [user]-master

This will make sure that all future changes go back to your branch, and you can go back to your normal development process.

Hope this helps!

bookmark_borderTroubleshooting PHP-FPM: ERROR: [pool [name1]] unable to set listen address as it’s already used in another pool ‘[name2]’

This error is telling you that you forgot to update your listening address. You likely have another pool configuration pointing to the same address.

For example, name1.conf is pointing to:

listen = 127.0.0.1:9000

And, name2.conf is pointing to:

listen = 127.0.0.1:9000

Simply update the port on one of the configurations and restart PHP-FPM. For instance, name2.conf could listen on:

listen = 127.0.0.1:9001

Restart:

systemctl restart php7.2-fpm.service

That should be it.

bookmark_borderSigning an App using a CodeSign certificate with SignTool & Windows 10

I was recently working with a new Windows app we built at CleanBrowsing and our users were getting hit with security warnings post-installation. This warning was generated because the app was not signed.

Ok, let’s get things signed.

To sign I would need a code-sign certificate. I went through the process of getting an Extended Validation (EV) certificate from GlobalSign.

Site Note: The process was not too bad, you sign some forms, take some pictures and you’re done. You do need a Windows machine when download the certificate, be prepared for that.

This biggest annoyance is that you need Internet Explorer to download the certificate and install it on your token. I had to download IE 11 to get this done. Yes, I tried with MS Edge, and other modern browsers but nothing worked.

Couple of Prerequisites to be aware of:

  • SafeNet (You will get your token from this organization)
  • Windows SDK (Using Windows 10)

Be aware that signing will be done via the Windows command prompt. Pay special attention to where the SDK is installed.

PROCEED AFTER YOU HAVE RECIEVED TOKEN AND INSTALLED CERT

Step 1: Open Command Prompt in Administrator Mode

Step 2: Set Working Directory to SignTool Directory

Using Windows 10 SDK, in 2021, this was my working directory for SignTool

cd “\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64

Step 3: Set appropriate options

This is what my command looked like when I was done:

signtool sign /a /tr http://rfc3161timestamp.globalsign.com/advanced /td SHA256 “C:\Users\[User name]\path\to\file.exe”

Options Used:

/a = automatically set the name according to what was on the certificate, if you want to set it differently I believe you use /nĀ “subject name”

/tr = This sets the timestamp, and the “r” option references a RFC3161 compliant trusted time stamp. Each CA will have a timestamp you can use. For example Globalsign uses: http://rfc3161timestamp.globalsign.com while DigiCert uses: http://timestamp.digicert.com

(note: the irony of those not using HTTPS is not lost on me)

/td = This sets the timestamp algorithm to use, the recommended configuration is SHA256 so just use that and save yourself the headache. Every provider will do this a bit differently. For GlobalSign, it only works if you use /advanced in the slug the way I have it: http://rfc3161timestamp.globalsign.com/advanced with the /td SHA256

” “ = Lastly, make sure you put the path to the executable you are trying to sign, include the double quotes.

When you hit enter, it will ask you for the token password ( I hope you haven’t forgotten it):

When it’s done, you’ll get this output in your command prompt:

Done Adding Additional Store
Successfully signed: C:\Users\[User name]\path\to\file.exe

bookmark_borderMigrating to a New User on Mastodon

Over the past year I have become a bigger proponent for platform like Mastodon. With such adoption, some things are not always as clear as you might expect them to be.

In this instance I wanted to change from one user to another. Example:

user1@noc.social to user2@noc.social

It is possible, but not as seamless as you might have come to expect from other experiences.

To this type of migration, you must do the following:

1. Create the new use account (e.g., user2@noc.social)

  • Navigate to Preferences > Account;
  • Scroll until you see Moving from a different Account;
  • Create an account alias, in this instance you’re using your old account (e.g., user1@noc.social);

2. Log into existing account (e.g., user1@noc.social

  • Navigate to Preferences > Account;
  • Scroll until you see Move to a Different Account;
  • Add the new handle you will use (e.g., user2@noc.social);
  • Enter the password for the existing account (e.g., user2noc.social);

That’s it, your followers will be moved from user1@ -> user2@ and when a user goes to user1@ they will be redirect to your new user.

This is especially cool if you have been dying to get your name, but found it hard before on other platforms.

Things to Note:

Although it says it redirects a user, the experience is a bit wonky. It adds a banner saying the user moved instead of redirecting.

While it ports your followers, it doesn’t port who you are following. You will have to find people again and companies again.

Recommend doing this early on, but not doing it once you have set up a base.


I use noc.social for my Mastodon account. You too can create an account if you want to see what it’s about, it’s free. And you can find me at @tony@noc.social

bookmark_borderGoogle Authenticator App fails to load after iOS 14.2 Update

The recent iOS 14.2 update is a critical security update. If you haven’t done so already, you should really update.

If you do, be mindful that some apps might not load. For me, it was the Google Authenticator app. This was especially concerning because I use it for Two Factor Authentication (2FA) on a lot of systems.

The solution is simple, and all credit goes to Nick Lowe for sharing it:

It’s extremely straight forward. Once you offload it, you’ll see it immediately asks you to reinstall it. So don’t get too panicked.

One thing to be mindful of is iDevice Storage is generic and accounts for iPhone and iPAD. For me, on an iPhone it reads iPhone Storage:

What’s really nifty about this is it offloads the app without losing the data. Being this is my 2FA app, it’s critical I don’t lose it.

Apple does provide an instructional on what to do if an app doesn’t open after an update but doesn’t provide this as an option.

bookmark_borderLocked Out of Windows and Forgot Password

Made a bone head mistake this week. While testing on one of my machines I removed my user from the admin group, then changed the admin password. I also forgot to write down the admin password.

Yup, this means I now had a user configured that had no administrative privileges. Well, that sucks.

I was going to reimage the whole machine, but turns out there is an easier way if you are on Windows 10 and higher.

Enable Default Administrator Account

This is actually a pretty scary feature as it comes built into Windows 10 by default. You can enable the built-in Administrator account from the log in screen using the command prompt.

All you will need is a Windows Bootable USB, and you can create one easily following the instructions here: https://www.microsoft.com/en-us/software-download/windows10

When you first boot your Windows device you’ll notice the following utility Manager:

You want to switch it so that when you click on it, it opens the command prompt instead of the utility manager. To do this you have to switch the programs, and you can do this by repairing the system.

1 – Boot From a Bootable Windows USB / Disc

You can make this change in your BIOS settings.

When the bootable disc opens, you’ll be be presented with the Windows Setup page, click NEXT.

The next page is going to ask you to INSTALL, don’t.

The bottom left you will see an option that read “Repair your computer“, click on it.

You will be presented with a few options, select “Troubleshoot“.

Select the “Command Prompt” option.

Here we’re going to swap the utility manager with the command prompt program.

copy c:\windows\system32\utilman.exe c:\

This should respond with 1 file(s) copied.

copy c:\windows\system32\cmd.exe c:\windows\system32\utilman.exe

This will respond with:

Overwrite c:\windows\system32\utilman.exe? (Yes/No/All):

Answer Yes.

Now Reboot the Machine.

2 – Enable Default Administrator

When your machine reboots, click on the same utility manager option on the screen. If done correctly, it should enable the command prompt:

Now type this:

net user administrator /active:yes

This will enable the default system administrator, which by design has no password. Assuming you’re not on an enterprise machine, you can bet that it is likely still enabled.

Reboot the machine.

3 – Log In as Administrator

When the machine reboots you will see a new user – Adminstrator – on the screen. Select that user and log in.

Assuming you have not disabled this user, it should work.

TIP: This is actually a very scary feature that can be easily misused by bad actors so I recommend removing this user, or creating a different one, that isn’t the default moving forward.

bookmark_borderHow to Copy/Paste in Windows Subsystem for Linux (WSL)

If you’re working in terminal you’re used to using the copy / paste functions. Simple, but a necessity; when it’s missing you can get frustrated very fast.

I ran into this wall using the Windows Subsystem for Linux (WSL).

Turns out, it’s disabled by default.

Enable Copy / Paste

Enable it by opening the properties panel. You can access it by right-clicking the window pane header:

Then select the “Use Ctrl+Shift+C/V as Copy / Paste” option

That’s it. Now you can copy and paste, but if you’re coming from Mac, make note that you have to select the CTRL and SHIFT keys when making your Copy or Paste Selection.

bookmark_borderWslRegisterDistribution failed with error: 0x80370102

Been playing with Windows lately on my quest to move off Apple devices. Something I am extremely excited about is how they have made Linux more integrated into the OS.

In my process, however, I ran across an interesting problem that yielded the following error when trying to install Linux .

Site Note: Here is the instructional on how to install the Linux subsytem on your Windows device. Works great, minus the issue in this thread)

Installing, this may take a few minutes…
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 The virtual machine could not be started because a required feature is not installed.

This was extremely frustrating for a couple of reasons:

1 – Powershell was showing that Virtualization was enabled

2 – I could not find my virtualization option in Bios the way it was being recommend

Verify Virtualization Option In Your BIOS

In the end, I looked up my specific BIOS on Google and queried what they called Virtualization. It turns out, that for my specific motherboard (ASUS X570-PLUS) their virtualization option in the BIOS is called SVM Mode.

Enabling SVM Mode in the BIOS did the trick for me and I was able to proceed with my installation of Linux.

In the end, I found it by doing a basic google query for:

asus motherboard missing virtualization in bios x5570-plus

The very first response was “How to enable AMD Virtualization in the BIOS”

Tada!

bookmark_borderTroubleshooting PHP-FPM Pool Setup: WordPress Requires FTP/SFTP User After Successful Configuration

This post assumes you have successfully installed PHP-FPM and have confirmed it is running on the server, and

# systemctl status php7.2-fpm.service
ā— php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-08-13 03:40:43 UTC; 14min ago

Configured on the site:

But still getting this:

The good news is you are actually pretty close, and it’s actually something you missed in your site config file.

Go back and verify the port you’re listening on (e.g., vim /etc/php/7.2/fpm/pool.d/[pool name].conf). For instance, in my case it was:

listen = 127.0.0.1:9001

But my Apache config was looking for:

<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000/"
</FilesMatch>

A simple update to:

<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9001/"
</FilesMatch>

And a restart of the web server:

systemctl restart apache2.service

Should do the trick, and get you situated again.