oh-my-zsh: Insecure completion-dependent directories detected

In case you encounter this error on installing oh-my-zsh, do the chmod commands below.

?  ~ source ~/.zshrc                                                                                                  
[oh-my-zsh] Insecure completion-dependent directories detected:
drwxrwxr-x  16 Anton.Perez  admin  512 May  4 10:42 /usr/local/share

[oh-my-zsh] For safety, we will not load completions from these directories until
[oh-my-zsh] you fix their permissions and ownership and restart zsh.
[oh-my-zsh] See the above list for directories with group or other writability.

[oh-my-zsh] To fix your permissions you can do so by disabling
[oh-my-zsh] the write permission of "group" and "others" and making sure that the
[oh-my-zsh] owner of these directories is either root or your current user.
[oh-my-zsh] The following command may help:
[oh-my-zsh]     compaudit | xargs chmod g-w,o-w

[oh-my-zsh] If the above didn't help or you want to skip the verification of
[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to
[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]? ncompinit: initialization aborted

Run these:

?  ~ chmod 755 /usr/local/share/zsh
?  ~ chmod 755 /usr/local/share/zsh/site-functions

How to add environment variables in Mac OS X

Adding here for reference (tried this in Mac OS X Mojave):

# To set an environment variable, enter the following command:
launchctl setenv variable "value"

# To find out if an environment variable is set, use the following command:
launchctl getenv variable

# To clear an environment variable, use the following command:
launchctl unsetenv variable

Install sqlcmd on Mac OS X

In case you need to run SQL Server scripts from your Mac, do the following to install (NOTE: I use HomeBrew.):

    • From the terminal, type:

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
ACCEPT_EULA=y brew install --no-sandbox msodbcsql mssql-tools

    • You should see something like in the screenshot. Type “YES” if prompted and be on your way.
    • Once done, type:


Selenium: How to assert a WebElement that doesn’t exist

Just in case you need to assert that a WebElement doesn’t exist, here’s a code snippet that you can use.


public int isElementPresent(String xpath) {
    return  driver.findElements(By.xpath(xpath)).size();

@Then("^I expect to see the link On the page$")
public void iExpectToSeeTheLinkOnThePage() {
    assertTrue(demoPage.isElementPresent() > 1);

Git: Syncing fork repo against upstream repo

In case you need to make sure your forked repo is up-to-date with the original repo (i.e. /git/original/HelloWorld vsĀ /git/anton/HelloWorld), here’s what you need to do in your terminal:

$ git remote -v
$ git remote add upstream git@git.url.io:original/HelloWorld.git
$ git remote -v
$ git fetch upstream
$ git checkout master
$ git merge upstream/master
$ git merge upstream/master
Updating ad3aeb1c..3f5ef884
pom.xml | 5 +-
26 files changed, 139 insertions(+), 578 deletions(-)

Ref: https://help.github.com/articles/syncing-a-fork/