Category Archives: Mac

IntelliJ .http/.rest cli support

I’m a big fan of the IntelliJ .http/.rest files but only being able to run them from within the IDE was not very satisfying. So I was looking for a way to run them from the cli as well and found This project offers a cli tool named rest-cli that is able to run IntelliJ’s files including env files. So those can also be integrated into CI/CD or other workflows that don’t use IntelliJ.

On the release page you can find the latest version of the tool as zip or brew package. If I remember correctly I was able to install the brew package with

brew install -f

But just downloading it and putting it into the path also works fine.

nvm slows down shell startup

Recently I was wondering why my shell is taking so long to show a prompt and was able to track it to nvm – node version manager. The check which version to use as default takes quite long so I was looking for a solution that allows me to keep nvm functionality and have a fast shell.

When installing nvm it tells you to add the following statement to your shell config:

export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/" ] && . "/usr/local/opt/nvm/" --no-use # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

Line to of this is causes the delay in the startup. As more on the backend side of development I don’t switch node versions and so on around very often so I found a solution that let’s me disable this check, which version should be used on nvm startup by adding a default version to the path and disable that check in the startup script:

# set default node version
export PATH="~/.nvm/versions/node/v12.18.3/bin:$PATH"
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/" ] && . "/usr/local/opt/nvm/" --no-use # This loads default nvm version from above and skips default check
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

The first line set my default node version to 12.18.3 as default – which is stable right now. Then I added --no-use to the end of the second line. Now every time i start the shell node 12.18.3 will be used until i say nvm use. But that’s a tradeoff I can live with to have my shell start in an acceptable timespan again.

Add charles certificate to JVM

This is an example how to do that on a Mac:

sudo keytool -import -noprompt -alias charles-$(date +%Y%m%d%H%M%S) -file "Downloads/charles-ssl-proxying-certificate.pem" -keystore "/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/lib/security/cacerts" -storepass changeit


Add charles ssl proxy certificates to JDK on a mac

First you need to run charles and enable SSL proxying. The see which JDK is used by your application and add the certificate to the cacerts file:

curl -s http://ssl.charles/ --proxy > cert_file
sudo keytool -import -noprompt -alias charles-$(date +%Y%m%d%H%M%S) \
  -file cert_file \
  -keystore /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/lib/security/cacerts \
  -storepass changeit
rm cert_file