Invalid Reference Format Error in Docker

The other day I was enjoying the sunset in Williamsburg while wearing my irregular bucket hat. I got a text from a friend that’s working on a web app project. He kept texting me the error he got in his Linux terminal “Invalid Reference Format Error in Docker” while trying to build an image from a Dockerfile.

I asked him to send me more details. He was running:

docker build -t a-Beautiful-image .

I also tried to run it this way with docker run:

docker run -p 80:8080 a-Beautiful-image

And got the following more informative error:

docker: invalid reference format: repository name must be lowercase.

OH uh oh! Now it makes sense. You need to change the image name to all lower case:

docker build -t a-beautiful-image .

All works now!

Contact me if you have any questions. Also, take a look at my shop and let me know what you think.

Remove Network Credentials Windows 10

One of my clients texted me about having issues authenticating to a network share using his credentials. In this case somebody else was able to connect to the same network share, but he needed to connect using his own credentials.

The users found out that by rebooting Windows they can resolve this. But, who wants to reboot all the time?!!

After wearing my cool irregular bucket hat and brewed a good cup of coffee from Ecuador I was able to find a better way.

Removing the Network Credentials using the Command Prompt

After I found this solution I remembered I have done this years ago in Windows. This is what happens when you don’t document your solutions.

So, to remove the ‘cached’ network credentials open your command prompt and type the below to see which network shares are mounted and authenticated run:

net use

This will give you a list such as:

Status  Local  Remote  Network
OK             \\somesharename\somefolder

Now, to remote the above ‘cached’ network share run:

net use \\somesharename\somefolder /del

You should get a message:

\\somesharename\somefolder was deleted successfully.

Remember, you can always contact me if you have any questions. Also, remember to check my designs from my IT Handyman shop: (I make my own designs.)

Commenting within Jinja2 HTML Template

This one took me a while to find (in my case). I assumed it was not possible and was lazy to look around. But, after wearing my irregular bucket hat I decided to go for it.

I found it! and it was very simple. If you need to comment within a Jinja2 template you need to use {# #} tags. For example:

{# {{ Hello Hello soyhat.com }} #}

I have been trying the below and never worked for me:

<!-- {{ Hello hello }} -->

I still have a long way to go before I can feel comfortable building my web app using Flask. I will not give up. Contact me if you have any questions. Remember to check out my designs below.

Install Docker Red Hat 8 Workaround

After taking a walk at the park wearing my new Irregular bucket hat I got a call from a customer wanting to install Docker on Red Hat 8. I have installed Docker on Ubuntu and macOS, but never on Red Hat. I found something right away in the Docker’s documentation site:

We currently only provide packages for RHEL on s390x (IBM Z). Other architectures are not yet supported for RHEL, but you may be able to install the CentOS packages on RHEL. Refer to the Install Docker Engine on CentOS page for details.

I said shit! But, after reading the last sentence I got some hope back. I really don’t understand why Docker doesn’t support on x86_64 architecture.

Then I decided to follow the CentOS installation way by setting up the repository:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

I ran yum to install the latest Docker version:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

You might be prompted to accept the GPG key. If so, go ahead and accept it.

Now Docker is installed, but NOT running. You need to start it:

sudo systemctl start docker

Next, verify Docker engine installation is running:

sudo docker run hello-world

The above command downloads a test image and run it in a container. You should see something like this:

Install Docker Red Hat 8

This means Docker has been successfully installed on Red Hat 8. Great that instructions for CentOS worked!

Now, if you like to run Docker without ‘sudo’. Follow the below steps:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker (this is to force group changes)

If you don’t run newgrp command then you will need logoff and login for changes to take effect.

Verify again without using sudo:

docker run hello-world

The above command should do the same as before. Contact me if you get errors.

If you like to configure Docker to start on boot with systemd do the following:

sudo systemctl enable docker.servicesudo 
systemctl enable containerd.service

You should see the output:

Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/lib/systemd/system/containerd.service.

If you like to stop the above do the opposite:

sudo systemctl disable docker.service
sudo systemctl disable containerd.service

If you need to change logging drivers read this documentation.

Remember to check my shop. I design cool T-Shirts and coffee mugs. Thanks!

How to Add Fonts macOS Terminal

While I was trying my new Irregular bucket hat design at home I got a message from one of my macOS clients. It was about installing new fonts for their macOS machines at the office. I knew this was simple, but I wanted to deploy the fonts using the macOS terminal.

It was late and the client wanted to have the fonts ready the next day. I only had terminal access to the macs at his office. After brewing a great cup of specialty coffee from Ecuador I found a way to do this.

Open your terminal and move/copy the new fonts to: (for system wide use)

/Library/Fonts

or: (for use by the current user only)

~/Library/Fonts

Since I wasn’t sure I copied the new macOS fonts to the /Library/Fonts this way anybody using this mac will have access to the fonts.

This is simple, but sometimes we tend to forget simple steps. Hope this is useful. Remember you can always contact me if you have any questions. Also make sure to check out my shop for cool T-Shirts and coffee mugs. I make my own designs. Thanks!

Microsoft Outlook is Trying to use the printer macOS

A macOS client texted me yesterday about Microsoft Outlook trying to use the printer error. The user was trying to print to a personal HP printer connected over the network. He was only getting the printing error for this specific printer, but did not get the error when trying to print to his office’s main Xerox printers in the office.

Microsoft outlook needs permission to print error
Microsoft outlook needs permission to print error

Before taking on this Microsoft Outlook printing issue I had to wear my irregular bucket hat and brew some coffee from Honduras at home.

After researching I found the current user was not part of this “Print Operator”. This group is the _lpadmin group. The user is also a domain user, but this did not make a difference.

I found two ways to resolve this. See below. Both solutions you need to use our friend the Terminal.

Adding the user to the _lpadmin group:

sudo dseditgroup -o edit -a someuser _lpadmin

Adding the staff group(all macOS users belong to this group) to the _lpadmin group:

sudo dseditgroup -o edit -t group -a staff _lpadmin

To quickly check what groups your user is a member run this command:

id <user_name>
id paco

The above will display all groups the user is a member:

uid=501(rgm) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae),701(com.apple.sharepoint.group.1)

Hope this helps somebody. You can contact me if you have any questions. Also, check out my T-Shirt and coffee mugs store. I make my own designs. Thanks!

Photoshop Could not open “.tif” because the TIFF file uses an unsupported color space

After I brewed my favorite coffee variety Caturra at home I got an email from a macOS client regarding issues with their Photoshop not opening .tif files. They just started scanning a butch of images in .tif format for later editing.

Starting Photoshop version 22.5.2 stopped supporting .tif files. According to Adobe this is due to security vulnerabilities.

I advised the macOS client to scan in a different format: .jpg, .png with high DPI to keep the best resolution.

Read Adobe’s security bulletin about this.

Contact me if you have a better solution or if you have suggestions for scanning images for later editing in Photoshop.

Always remember to check out my T-Shirts and Coffee mugs shop. I make my own designs. Thanks!

Filezilla Error loading queue_sqlite3

The other day a Windows 10 user client called reached out to me panic about this error in Filezilla “Error loading queue_sqlite3”

I put my irregular bucket hat before taking on this one. Then I remote to the user’s machine trying to figure out why this is happening. I tried to re-install Fillezilla and still got the above error. Then, I remember that Filezilla keeps this sqlite3 DB file for faster processing. So, when this happens it means the sqlite3 file is corrupted.

The only way to fix this issue is to remove or rename the sqlite3 file. I renamed it just to be safe and rebooted Windows. All worked after this. Filezilla generated a new one.

Hope this brief tutorial helps somebody. You can always contact me if you have any questions. Remember to visit my IT Handyman shop for cool coffee mugs and T-Shirts I designed.

How to get Password Age using Powershell

After brewing my favorite coffee variety at home a client emailed me asking if there’s a way to get password age for the Active Directory users in her small company. This was for about 80 users. To be honest, I have not touched AD in a while. But, I found some clues for getting password Age using Powershell in Windows Server.

I found some magic in getting password Age using Powershell. A very simple command to get all users with their passwordlastset and passwordneverexpires:

Get-ADUser -Filter * -Properties passwordlastset, passwordneverexpires | ft name, passwordlastset, passwordneverexpires

You can also send the results to a CSV file:

Get-ADUser -Filter * -Properties passwordlastset, passwordneverexpires | select name, passwordlastset, passwordneverexpires |Export-CSV -Path c:\users.csv -Encoding utf8

You can also exclude users that password never expires:

Get-ADUser -Filter * -Properties passwordlastset, passwordneverexpires | where {$_.passwordNeverExpires -eq $false } | select name, passwordlastset, passwordneverexpires

But, to really fined tune the Powershell command you can use the below. It will give you a list of all users and the exact password expiration date:

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

I hope this brief tutorial can help someone out there. If you have other ideas please share them in the comments section below. Thank you for your support!

Add your Script to your Local Path macOS

The other day I created a script using Imagemagick for efficiently get my image ready for the web. After making a fantastic espresso coffee at home I decided to add my script to my local path. This helps because it will make your script ‘global’. This means you can invoke it from any location while in your Terminal – it will run as any other command such as ping, ssh, rsync and etc..

Adding your Script to your Local Path in macOS is easier than I expected. Just copy your script to this path in your macOS:

/usr/local/bin/

I know you can also do a link to it, but I decided to copy it for now and test.

Now, I can call my script from any directory in my Terminal. For example, when I have a folder full of images waiting to be optimized for the web, I just do:

myimagescript /images_for_the_web

or:

cd /images_for_the_web and then type myimagescript

Hope this brief add your Script to your Local Path macOS tutorial helps. You can always contact me if you have any questions. Also, check out my coffee mugs and T-Shirt designs below. I made them myself. Thanks!