Isaac Sloan - Web Developer, Photographer, Musician and Citizen of Earth
Banner700

Binding to port 80 or 443 with a non root user.

November 30, 2017

Apparently it's impossible to bind to a port under 2000 with a non privilaged user. Not sure how I got this far into my career without knowing that.

Anyway the solution is to run this as a root user to give the binary permission.

sudo setcap CAP_NET_BIND_SERVICE=+eip /path/to/binary

This can be problematic as every-time the binary changes you have to do it again.

Binding to port 80 or 443 with a non root user.

Logging into mysql -u root with non root user on Mysql 5.7

November 30, 2017

When you upgrade from Mysql 5.6 to 5.7 you will no longer be able to log into mysql's root user without root access.

This is annoying if you're using it for development as most frameworks assume the development database can be connected to via root user with no password.

This solution is to change the login plugin back to native_password.

  1. Use sudo to login:

    sudo mysql -u root

  2. Change login plugin:

Logging into mysql -u root with non root user on Mysql 5.7

How to safely remove Byte Order Marks (BOM) from files created on windows

October 15, 2017

The problem

If you read enough files created on a windows box you'll eventually run into this. ""\xEF\xBB\xBFyour expected string" instead of "your expected string". I recently ran into again while parsing some csv files exported in windows. In order to parse the string you'll need to remove what is called a Byte Order Mark.

Solution

Just search for "\xEF\xBB\xBF" and remove it.

How to safely remove Byte Order Marks (BOM) from files created on windows

Setting up MacOS Sierra for Rails Development

December 15, 2016

One of the only differences I've noticed is installing mysql is slightly different.

Step 1: Install XCode Command Line Tools

Install xcode.

xcode-select --install

Step 2: Install and prepare Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew update

Step 3: Install rbenv

brew install rbenv ruby-build openssl
Setting up MacOS Sierra for Rails Development

Lets Encrypt Setup and Auto Renew (NGINX)

July 20, 2016

Installation and Setup

sudo su  - root # NOTE: This has to be run as root. Be very careful!
cd /usr/sbin
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto

Nginx Configuration

Add the following to your nginx server configuration block vim sites-enabled/yourdomain.com

  location ^~ /.well-known/ {
    root /usr/share/nginx/html;
  }
Lets Encrypt Setup and Auto Renew (NGINX)