Git error: Please tell me who you are

The other day after having a great cup of coffee from my friends coffee farm in Quillabamba, Peru I got an error in Git saying “Git error: Please tell me who you are”. This happened after I entered my usual Git credentials in my Terminal.

After doing some research I found out that Git made a big change on their way of authorizing users. Now users need to have “a personal access token”. In order to take care of this I had to do the following steps in my Git account:

  • First verify my email address(only if you didn’t do it before)
  • Go to your account Settings
  • Then go to Developer Settings
  • And the click on Personal Access Tokens
  • Tap on Generate New Token and give it a name
  • Give your token an expiration date (Why?)
  • Then select the access permissions, scopes and etc.
  • Finally, generate new token

Warning: Treat your tokens like passwords and keep them secret. When working with the API, use tokens as environment variables instead of hardcoding them into your programs. docs

DO NOT forget the above or you will have to do the whole process again!

How to use Git personal token now?

Open your Terminal and run the below. Replace according to your Git repo:

$ git clone
Username: your_username
Password: your_token_goes_here (Instead of your password)

After following these simple steps I was able to resolve this “Git error: Please tell me who you are” issue. Hope this helps. Contact me if you have questions.

Remember to check out my Shop where I feature my T-Shirts and Coffee Mugs designs inspired by Technology.

Check Windows NTP Configuration Using The Command Prompt

The other day I got a client asking for help syncing time across all Windows 10 thin clients with their NTP server. After taking a walk around NYC and witnessing many hanging shoes I refreshed my head I found a useful way to check Windows NTP configuration using the command prompt.

Using w32tm To Check and configure NTP using the Command Prompt

In Windows 10 open your command prompt and type the below command to check your current NTP configuration:

w32tm /query /configuration

The above gives you the current time configuration.

w32tm /query /status

The above shows you many more details, such as: stratum, precision, last sync, NTP server and etc..

time /T

This last one shows the current time.

At some Windows10 machines I got the below error:

The following error occurred: The service has not been started. (0x80070426)

This means the time service has is not running or disabled. I made sure to enabled accordingly either using the command prompt:

net start w32time

or at the services window when the above did not work:

Windows NTP Configuration services
Windows Time Services
Windows NTP Configuration Using The Command Prompt
Windows Time Services Properties

There’s also a way to set and start Windows NTP configuration using the command prompt this way:

w32tm /config /manualpeerlist: /syncfromflags:manual /reliable:yes /update

Then, as usual Windows stays problematic. I had to run the below commands in sequence:

w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time

I did all these because I found out by running:

net time /querysntp

I got the deprecated error:

The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.

At the end of the config you might need to run:

w32tm /config /update
w32tm /resync /rediscover

To make Windows 10 rediscover its NTP settings. Play around, research the official Windows documentation. You can also place all these command on a batch file and deploy it to all your clients.

Good luck! Contact me if you have any questions. Remember to check out my IT Handyman shop for cool T-Shirts and coffee mugs I designed once in a while.

How to Fix Cron “Operation not permitted” error in macOS

I have been working on putting together a simple bash script to backup my client’s macOS users files to a local NAS in their office. I put this script in a cron job in my macOS Big Sur, but kept getting Operation not permitted” error in my macOS Big Sur machine. WTF!

Crazy thing was that the script worked when I ran it directly on my terminal, but it gave me the above error when I placed it in my crontab. I decided to brew my coffee at home before troubleshooting this issue with this operation not permitted error in macOS.

It turns out the issue is with macOS Big Sur permissions for cron daemon.

Grant cron Full Disk permissions to fix operation not permitted error in macOS

Grant cron and your script Full Disk Access in Security and Privacy window

You need to go to your Security & Privacy settings in your macOS and unlock it by clicking on the ‘lock’ bottom left corner. Then do this:

Go to the folder window in macOS Big Sur
  • Go to the Privacy tab and select Full Disk Access.
  • Under the list of apps on the right panel click on ‘+’.
  • Use keyboard shortcut: Command+Shift+G to open “Go to Folder”.
  • Navigate or enter path: /usr/sbin/cron and select Go.
  • Make sure ‘cron’ now appears in the list of apps with Full Disk Access.
  • You may also need to add ‘smbd’ and ‘Terminal’ to the list. Use the same process indicated above.

Now, try again and test your cron job and let me know if it works. You can contact me if you have any questions. Also, check out some of my coffee mugs and T-Shirt designs inspired by technology:

Docker failed to solve with frontend dockerfile.v0: failed to create LLB definition

I was working on improving my Flask skills and at the same time learning about REST APIs and how to build them using Flask, Docker, MongoDB and AWS.

I’m using git in order to have my code available and practice whether at home or at the office macOS computer I have. Somehow, after pushing my last git update and then doing a git pull from my mac at the office i got the following docker compose build error:

Docker compose error
failed to solve: failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = Unknown desc = failed to fetch oauth token: Get "": dial tcp: i/o timeout

After many coffees that I received from my friend’s coffee farm in Quillabamba, Peru I found a quick solution which I’m still not sure why we have to do this.

The solution was quite simple. In your terminal run these two commands:


Then I ran again in my project directory:

docker compose build and then docker compose up

And everything worked again as it did before. I’m still very confused to why this issue happened. If you have any comments please add them at the bottom of this article.

You can also contact me if you have any questions. Thanks!

Ping Command Examples in Brief

The ping command is one of the most common used commands in the IT field. After taking a walk in Brooklyn New York City I decided to put together some ping command examples to remember.

Basic ping command

The most basic ping command example would be to just ping

Ping command example

You can also test your localhost TCP/IP with any of these two ping commands:

# ping localhost
# ping

Other important ping command examples

Linux by default sends continuous pings unlike Windows that sends four. One ping command option I was not aware is the -a which sends an audible ‘cue’ with each ping when is a successful one:

# ping -a

You can also adjust the number of pings using the -c option very easy. This example will only send eight pings:

# ping -c 8

If you don’t need to see the output of each ping you can use the -q option to summarize the results. This ping command example will show you if ping was successful at sending 3 packets:

Ping command using the -q option

A Little More Advance ping Example

You can change the size of the ping packet sent. It is usually 28 bytes. So, to send 128 bytes you will do:

# ping -s 100

You can also limit the total number of hops -routers- ping will pass by configuring the TTL(Time To Live) option:

# ping -t 10

There are many more ping command options. You can find them by checking the man pages.

Contact me if you have any questions. Also, remember to visit my shop and if you like my T-Shirts and coffee mugs designs grab one. Thanks!

How To Update macOS Using The Terminal

The other day my Finder crashed for some crazy reason. I’m using BigSur and wanted to update macOS using the Terminal since Finder was not responding. I decided to brew one of my favorite medium roast Caturra varietal coffee and put this little tutorial together.

Listing Available Updates On The Terminal

This is quite simple all you need to run is this command once you open your Terminal:

softwareupdate -l

This Terminal command will list available updates to install

softwareupdate command in Terminal

If you like to install all listed available updates just add -i -a to the softwareupdate Terminal command:

softwareupdate -i -a

Great thing about using the Terminal to download macOS updates is that you can keep using your computer while the download is happening in the background. Depending on the update type you might need to reboot at some point.

Now, if you want to specifically install a particular update then its a bit tricky. You will need to use -i and specify the update you want using single quotes ‘ ‘. For example this softwareupdate Terminal command will only install this Safari update:

softwareupdate -i 'Safari15.3BigSurAuto-15.3'
Updating Safari in macOS Terminal

You can also download the updates without installing them. Just add -d option to the softwareupdate tool in your Terminal.

softwareupdate -d 'Safari15.3BigSurAuto-15.3'

Hope you like this brief tutorial. Contact me if you have any questions or just want to say hello. You can also see my coffee mugs and T-Shirt shop. I created these designs for IT lovers. Thanks!

Enable vim Syntax Highlighting

I have to admit, I’m addicted to vim. There are many cool editors out there, but I still not used to them. Now, that I discovered how to enable vim syntax highlighting I decided to share some details.

First, I want to thank you for your support with my ITPro Helper shop. I’m going to add more cool inspiring T-Shirts and coffee mugs designs during this month.

After brewing a great cup of coffee from Panama I decided to put together this little tutorial. This instructions should work for any Linux distro or macOS. Just run this command to make sure you have vim installed:

vim -version

There are hundred of options to vim out there. I’m just going to concentrate on a few in this post.

Open any script to check vim syntax highlighting

For example I’m working on this Flask/Python file, I opened to check vim syntax highlighting:

.py file view in vim

In my case I already enabled vim syntax highlighting on this file by running this command while having the file opened with vim:

:syntax on

If you want you can turn it OFF:

:syntax off

You will need to do this every time you open your file. But, if you like to make this changes permanent in vim you will need to edit or create a .vimrc file in your home directory:

vim ~/.vimrc

Now, all you need to enter your desired vim options line by line. For example:

syntax on

Save it and that’s all!

If you like to set your syntax highlighting specific to a language then you can for example set it to python:


But, you can set it to other languages: perl, php, awk and etc..

Filezilla.xml could not be loaded

I got this error Filezilla.xml could not be loaded right after launching a new Filezilla install on a clients Windows 10 machine. I have never seen this one before. Filezilla has always worked flawless for me. So, I decided to brew my own coffee before I investigate this issue.

The quick fix for Filezilla.xml could not be loaded

This is the error and it shows you where filezilla.xml lives. You have to type the path on Windows explorer because some directories are hidden.

Filezilla.xml could not be found

Type your directory path as show in the screenshot above.

Rename the file: filezilla.xml to whatever you want, maybe filezilla_old.xml.

Close Filezilla and open it again.

If you get similar errors showing you “other files that cannot be found” while you’re closing Filezilla. Then, do the same procedure as above. Locate the file and rename it. Restart Filezilla each time.

How to Create Backups Using Robocopy in Windows

I was given a task to backup some data from some Windows computers to a local NAS drive. There are many options out there, but I remembered I many years ago I used a tool called Robocopy. As usual, Windows eventually bought this company and now Robocopy is part of Windows command tools.

Open your command prompt in Windows and type robocopy just to verify. You should see a brief output telling you about robocopy.

robocopy output in command prompt Windows

Now that you made sure robocopy is available in your Windows computer we can put this little script together maybe with a great cup of coffee on your desk. I will go directly to it:

@echo off 
robocopy C:\Users\%username%\Desktop\  \\hqnas01\home\migrated_data\Desktop /MIR /XA:H /R:1 /XA:SH /FFT /XJ > C:\temp\%username%_migration.log


C:\Users\%username%\Desktop\Source directory.
\\hqnas01\home\migrated_data\DesktopDestination directory.
/MIRMake a mirror backup. If you delete something from the source, it will also be deleted in the destination.
/XA:HLeave out hidden files.
/R:1The number of retries if the file is locked.
/XA:SHLeave out hidden files and system files.
/FFTThis is very important when backing up to a Linux NAS. If you leave this out it will try to copy files over and over even when they are already present. Just use it!
/XJExclude junction points. Those crazy hidden My Music, My Pictures and My Videos folders under Documents.
> C:\temp\%username%_migration.logFor creating a .log file in order to see what happened. If you’re adding more than one line of backup locations you should add ‘>>’ instead of ‘>’ so you can append to the .log instead of replacing what you had before.
robocopy example with explanation

Make sure you don’t confuse source with destination or you can have catastrophic lost of data. Contact me if you have any questions. Check out my shop with cool T-shirts and mugs designed by myself.

Install Shell Completion for Docker in macOS Big Sur

Docker Desktop comes with scripts to enable completion for the docker and docker-compose commands. The completion scripts may be found inside, in the Contents/Resources/etc/ directory and can be installed both in Bash and Zsh.


Bash has built-in support for completion To activate completion for Docker commands, these files need to be copied or symlinked to your bash_completion.d/ directory. For example, if you installed bash via Homebrew:

ln -s $etc/docker.bash-completion $(brew --prefix)/etc/bash_completion.d/docker
ln -s $etc/docker-compose.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-compose

Add the following to your ~/.bash_profile:

[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion

OR (this one worked for me!)

if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion

In my case since I’m using macOS Big Sur I wanted to change my default shell to bash. Big Sur comes with zsh as default. Below is my .bash_profile that worked for me. Yes, I used homebrew to install bash_completion. Not sure if this was necessary. Let me know what you think in the comments area below.

export PATH="/opt/homebrew/bin:$PATH"
if [ -f $(brew --prefix)/etc/bash_completion ]; then
   . $(brew --prefix)/etc/bash_completion