A Mind United

Development notes, docs, and scribbles.

Developer System Setup

Propsed Changes:

  1. Browsers
  2. xcode
    • Mobile Emulators
  3. Global Package Manager (homebrew)
  4. Python
  5. Ruby
  6. ?JVM? - brew install jenv - medium
    • brew install kotlin
    • do we need kotlin native?
  7. Additional Languages
    • GoLang brew install golang
    • Dart brew tap dart-lang/dart && brew install dart
    • php
    • mySQL
    • mariaDB
    • Other DBs?
  8. Node
    • NVM
  9. Git

  10. Terminal
    • Customise terminal
  11. vscode
    • Customise vscode
  12. IntelliJ IDEA (if you have a licence)
  13. SSH

Table of Contents

  1. Browsers
  2. Mobile Emulators
  3. Global Package Manger
  4. Python
  5. Terminal
  6. Code Editor / IDE
  7. Node
  8. NVM
  9. Git
  10. SSH
  11. Git Hosting
  12. CI/CD
  13. NPM js

Browsers

You’ll need a web browser to…use the web. Get Both.

Mobile Emulators

  1. Xcode (developer tools) from the app store

then the command-line tools (this takes a long time):

  xcode-select --install
Once Xcode is installed a link to the Ios simulator can be created by launching xcode:
  - Selecting 'xcode' menu -> 'Open Developer Tool' -> 'simulator'.
  - Once the simulator is open, drag its icon from the Launcher into the 'Applications' directory

Global Package Manger

A Global Package Manager will allow you to install libraries and tools that did not come with the Operating System.

Even when writting a Javascript project there will come a need for a Ruby, or Python Library, and you’ll need a package Manager to help with that.

One line install:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Make sure homebrew is up to date

brew update

Check the health of your homebrew install

brew doctor

Homebrew Website

Python

OS X ships with Python, so you can likely skip this step, but you may endup coming back if there is an issue installing something with pip.

# Install cmake to do builds
brew install cmake
# Install python...that was the goal here
brew install python
# Install pip so that we can load python packages
sudo easy_install pip

Terminal

The Terminal (or console to some) is an invaluable tool for modifying files, folders, system code, configurations, and running tasks.

There are a lot of tools for the terminal that will greatly ease and speed up you development.

If it seems daunting at first, don’t worry. You can mostly get away with copying and pasting until you are comfortable.

Taking time to customise the terminal’s shell, Plugins, Themes and colours is a great way to demystify it. It may not seem important to theme your terminal, but it will greatly empower you, as it helps you discover plugins and features.

Code Editor

A good Text Editor, Code Editor, or Integrated Development Environment is vital in helping to Write, find and modify code.

There are a lot of options when it comes to picking an Editor, but at the time of writing, Visual Studio Code is the preferred choice amongst Javascript Developers.

Node

Javascript originally just ran in the browser. It was used to decorate websites.

Now Javascript runs almost everywhere, and can be used for a lot more that just creating pop-ups.

The most common way to run Javascript outside of the browser is Node.

Node is a Javascript runtime, built on the V8 Engine. That’s the same engine that browsers like Chrome, and Edge use.

Install with Homebrew:

brew install node

or

One liner to install node in OSX:

curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg</a>.*|\1|p')}.pkg" > "$HOME/Downloads/node-latest.pkg" && sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"

NVM

Node Version Manager, or NVM allows you to easily install and switch between node versions.

This is really useful if you want to run an older project, or start working on something that uses Node features that are new, or experimental.

Install nvm via Homebrew

brew install nvm

Create system directory for nvm

mkdir ~/.nvm

Add following line to your profile. (.profile or .zshrc or .zprofile)

# NVM
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

Reload Your profile

source ~/.zshrc

Confirm that nvm works

nvm --version

List the currently installed versions of Node

nvm ls

Install a Node version

nvm install 12.8.1

Git

Git is a distributed version-control system for tracking changes in source code during software development.

Git is the de facto tool for tracking changes, hosting and sharing code. It will save you when you break you code, or need to find out what it was that you, or someone else did to the code.

One line install

brew install git

### Git LFS

Some repos use git LFS (Large File Storage) to help manage the repo size when dealing with Big files like images.

brew install git-lfs

git install lfs

### Git Tools

SSH Keys

ssh keys (Secure SHell) are a way to secure, or authenticate your account for remote login.

You will use ssh keys to securely login, create, or modify code, account settings, and more using external sites and service providers.

Go to your .ssh Directory

cd ~/.ssh

Check for existing keys, there should be ‘id_rsa’ (your private key) and ‘id_rsa.pub’ (your public key)

ls -al .

If they are not there, create them

ssh-keygen -t rsa -C "your_email@example.com"

Follow the prompts

Just press [enter]

Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** example@e
The key's randomart image is:
+--[ RSA 2048]----+
|  .oo.           |
|         p       |
|          dd     |
|     . = = .     |
|      - t - .    |
|     -+-+-+-+    |
|     ¯\_(ツ)_/¯  |
|                 |
|                 |
+-----------------+

Using SSH key

Open your public key file id_rsa.pub

code ./id_rsa.pub

copy the entire file contents and paste it into the input field of the site’s ssh key

Paste SSH key

Git Hosting account

Now that we have git, we’ll want somewhere to store the code. Especially if we want to share it.

Just sign up for a free account with any of these providers (but really, use Github):

  1. Github
  2. Gitlab
  3. Bitbucket

It is also possible that you work for a company that hosts thier own git instance. Just follow thier directions to setup.

You will also want to set up ssh keys for that account

Make sure that you have a public ssh key

CI/CD Account

Continuous Integration and Continuous Delivery platforms provide tools for updating, testing, publishing and releasing code.

These are a great way to automate the mundane tasks of checking out code, installing, building, running tests, bundling, and releasing.

CI/CD Providers

NPM Account

In order to publish a javascript module, you will need an NPM account.

NPM signup

Hosting

Hosting Providers