Git Product home page Git Product logo

setup-guide's Introduction

Computer Setup Instructions

Whether you are starting class, needing to set up a new system, or re-install proper config on an existing system, these steps will walk you through how to prepare your computer for technical coursework.

This setup should be done in a single session. Please allow a minimum of 1 hour to complete.

You do not need to understand what is happening in each step of this process. Getting everything configured correctly is a vital step that will allow you to use the technologies required throughout the curriculum.

NOTE: During this process, you will be required to download a few files. For this setup process please right-click on links to open in a new tab when asked to download and install. This is so you don't lose your place.

Get started by selecting the appropriate starting point below.

Software Development Courses

Begin by selecting your operating system:

Ops and Cybersecurity Courses

Errors and Troubleshooting

If ever you encounter an error or unexplained activity, please consult the error documentation

setup-guide's People

Contributors

4a50 avatar applena avatar bnates avatar bradsmialek avatar brookr avatar cameron-walden avatar chanceharmon avatar dahlbyk avatar davidallanturner avatar davidsouther avatar ewhd avatar hexxking avatar jb-tellez avatar johncokos avatar justinhamerly avatar kassiebradshaw avatar mnfmnfm avatar rkgallaway avatar rogerhuba avatar sheyna avatar tammytdo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

setup-guide's Issues

Setup Guide Conversion to Knowledge-base Structure.

Placeholder for milestones:

  • Create new tree structure/scaffold for handling different paths within the setup process
  • Develop root level README content for each core directory
  • Windows - Working Paths
  • Linux - Working Paths
  • Mac - Working Path
  • Windows - Base set of Error tracing/fixes
  • Linux - Base set of Error tracing/fixes
  • Mac - Base set of Error tracing/fixes

Basic set up issues

How to enable copy/paste hotkeys in Windows Subsystem for Linux (WSL) / command prompt (cmd)?

I'm not sure if this is something you want to add to the setup guide or not but the TAs and I came across a few Window users who could not copy/paste into their Ubuntu.

Kassie did some digging and found this article. I vaguely remember my high school students needing to do something similar for their Chromebooks too.

solution source: https://superuser.com/questions/1410026/how-to-enable-ctrl-shift-v-in-windows-subsystem-for-linux-wsl-command-pr

Moving Setup to oh-my-zsh

Would like to have conversation about moving away from the curl of the .profile to installing oh-my-zsh. This simplifies a lot of the need for the .profile as well as the setup instructions. This also gives the user some powerful commands as they get more advanced with working in the terminal.

Script for Computer Setup

Maybe add a validate command to .zshrc to validate the setup. Add as an alias. Move to setup guide.

code-401-javascript( set-up-instructions adjustments)

Including 'Error' handling instructions in httpie, netlify, azure, aws and mongo would be helpful. When trying to trouble shoot an error during installation it would be helpful to have an additional instructions or a website to reference in regards to that error message.

Node.js Installation issues for Windows users.

Homebrew currently only hosts binaries for 64-bit Linux, Intel Macs, and Apple Silicon Macs: Homebrew Formulae page for Node. Even though 64-bit Linux is listed, students using WSL were not able to install the binaries.

During the latest round of 102 setups Windows users who tried to brew install node were greeted with a message that they need to use the --build-from-source option because there were not any bottles for their OS. Even with an updated system via apt and having installed build-essential we were unable to build from source. There are likely other dependencies required.

We may want to update the guide adding a Windows only set of instructions for installing Node.js via NVM or further instructions on building from source via Homebrew. Previous NVM instructions were replaced with the Homebrew instructions in commit 7dfdf7d. These could be reinstated for Windows users or we could use instructions directly from the NVM GitHub.

Following the instruction from the NVM GitHub page: The installer script curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash will create the required ~/.nvm directory and clone the nvm repository there. It also will add the NVM_DIR environmental variable to the student's .zshrc. To install Node.js itself students will just need to execute nvm install for the latest version or nvm install --lts for the latest LTS version.

The downside to including the script directly would be updating the link as NVM versions are released. Potentially the guide could just link directly to the GitHub readme at the installation heading: https://github.com/nvm-sh/nvm#installing-and-updating and the student could be directed to copy that code snippet -- we could include an image like this to help direct them:

snippet

NVM instructions lacking steps

Following the NVM setup instructions, there is no guidance given about the steps that NVM reports need to happen after installation:

Add the following to /Users/brookr/.bash_profile or your desired shell
configuration file:
 export NVM_DIR=“$HOME/.nvm”
 [ -s “/usr/local/opt/nvm/nvm.sh” ] && . “/usr/local/opt/nvm/nvm.sh” # 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

We should be telling students how to take action on this. What have they been doing up to now? It doesn't seem to work unless this step is done.

Some students are getting WSL 2.0, it messes with node, lets switch to nvm

Some students are accidentally installing WSL 2.0, i believe this can be seen if their wsl version is 20.x or higher, maybe 18.x
Node was unable to install on about 1/3 of my class' machines. None of the workarounds were reliable. The easiest way to get around / head off this issue is to install node through nvm
https://github.com/nvm-sh/nvm
they run this command for windows
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

this one for mac
brew install nvm
For mac, this article seems to suggest directories must be created. I need a test to be done on a mac to see if these are up to date https://medium.com/@jamesauble/install-nvm-on-mac-with-brew-adb921fb92cc

then all students will run
nvm install node 10

Proposal: switch all students to installing nvm before installing node.

WSL2: Ubuntu sending students to windows mnt on initial load

As WSL2 has progressed, bugs and performance issue have escalated for those storing their repos in the Windows File System. Further WSL2 optimization will more strictly mandate that repos not live in the Windows File System. To that end, students on Windows machines using WSL2 should be directed to the Ubuntu side of their machine and save files there. Ideally at ~/home/<username>

I would advocate for a two-part process to maximize the student experience:

  1. Implement the change at the 102 level to protect students from ever having a less than ideal windows experience
  2. Publish an official instructions page for how to resolve the issue for current 201, 301, and 401 students

Here are instructions that have been proven successful for making that conversion for 301 as of class-02 if helpful. Note that it is not campus agnostic, likely could just include cd at bottom of .profile with an appropriate comment, and other language could be optimized as well:

ONLY DO THIS IF YOU ARE CURRENTLY SAVING ON THE WINDOWS SIDE OF YOUR MACHINE

  1. ACP from ALL of your 301 repos and merge into main. this should be your lab, DSA, and Reading I believe
  2. in terminal type cd and press enter. you should see ~$
  3. run the command pwd and you should see ~/home/
  4. run the command ls if you do not see a codefellows directory, create one by running the command mkdir codefellows
  5. cd into codefellows, run the command ls if you do not see 301 and 401 directories run the command mkdir 301 401
  6. clone your 301 repos into the appropriate places. I would clone the dsa repo into codefellows, and the gallery of horns into 301
  7. Technically at this point you are good, but to find those repos you must always run the cd command FIRST thing when you open Ubuntu.
  8. Here’s a fix for that: run the command nano ~/.profile it should take you to a different screen and with a bunch of strange looking code. if it does not and you encounter a permissions issue run sudo nano ~/.profile and enter your Ubuntu password instead. This should take you to that magical place
  9. using your down arrow key to navigate, arrow all the way down. underneath the last line of code leave an empty space and paste in the following code snippet
# ur evaluates to the absolute path to your Ubuntu user's root.
export ur=~/codefellows/
# This gives us a quick way of moving directly to the Ubuntu root
alias cdur='cd "$ur"'
# This brings you to your Ububntu Working directory immediately when you open a new terminal.
cdur
  1. once this snippet is properly entered, use the command Control X to exit, y to save and enter to finalize this process. open a new ubuntu and you should see codefellows on the command line! From here forward you should automatically be brought to this place on the Ubuntu side of your machine where things work more dependably and with greater speed!

Direct students to set default branch to main

Somewhere in setup, students should run git config --global init.defaultbranch main. For students with a recent version of git, this will make all future repos created default to a main branch rather than master.

Add > to command palette open prompt

In this section of the setup:
Mac and Linux Users Only: Install shell commands

Running ⇧⌘P opens the command palette, but the > that tells it to search for commands is missing. Should add > to instructions. ⌘shiftP opens the palette so it's ready to take commands.

401 JS Setup

Remove Azure from 401 JS Setup

Azure was not used in 401D41 and if there are no plans to use Azure in future 401 JS classes, it could be removed from the setup.

Skipping Steps!

On each page of the setup guide, give the option to verify that this was already done or is setup.

If the verify works, move to the next page. If not, complete the stuff below.

Fix script loading for all platform

  • Migrate as many steps as possible into the script students run.

    • backups
  • Source all steps from .code_profile

    • set $CODE_PROFILE as flag that it's been run
  • prevent double-execute

301 setup script dsa.sh error due to master/main changes

There's a bad URL that's holding up 301 pre work students from executing the setup script. This looks like a neglected revision due to a recent master > main branch nomenclature changeover. Whoever is making these changes needs to test any related scripts to avoid students encountering this.

Fixed by #64

Faulting code:

#!/bin/bash
# Download and configure the DS&A Repo First
downloadRepo() {
  curl https://codeload.github.com/codefellows/data-structures-and-algorithms/legacy.tar.gz/main --output dsa.tar.gz
  tar zxvf dsa.tar.gz --strip 1
}

Error:

$ tar zxvf dsa.tar.gz --strip 1
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

The root cause is https://codeload.github.com/codefellows/data-structures-and-algorithms/legacy.tar.gz/main pulls down a HTTP error code instead of the actual file. So the next few commands are trying to decompress a text file that just has error text in it.

Class 02 "installfest" issue with Windows Store

Moving issue from Code-102

For Windows users, in the setup guide on page 1, it is telling the reader to go to the Windows Store and "Get" the windows terminal and "Ubuntu" app.

During the class, i was doing the "installfest" with the students on a brand new machine and both myself, and all of the students on windows (about 4), were unable to push the "Get" button on the windows store....nothing happened. So we had to find an alternative route. Here is what we learned:

Windows Terminal

go to the "releases" within GH: https://github.com/microsoft/terminal/releases
Find the "latest release". this was 1.8.1092.0 at the time of this issue
At the bottom of the "latest release" section, you will see "assets", and under assets is a downloadable file that ends in .msixbundle
Download this file, and run it. That does the same thing the "Get" on the windows store does for Windows Terminal.
Ubuntu App:

go here: https://docs.microsoft.com/en-us/windows/wsl/install-manual
Select the proper version: "Ubuntu 20.04", a download of a .appx file will occur
run this file, and it will do the same thing as the "Get" from the windows store
These instructions should be noted in the setup guide as an alternative option. I'm sure there will be times in the future where the "Get" doesn't work from the store.

Brew Installed in a different location

Nighttime 102 student had brew installed in the following directory:

/usr/local/bin/brew/

instead of

/opt/homebrew/bin/

Gave errors in adding path to .zprofile.

NPM Constant Issues

NPM seems to have 1-4 different paths for users to need to add to their .zshrc profile. Suggest moving to using node or straight npm. Per conversation in 102 channel, looks like node is the better fit.

Mac M1 users vs Homebrew Install

just a thought, I've had a few Mac M1 chip users have to install homebrew differently than what our guide suggests to.

This command seems to work better for M1 users:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

and this is the command we have in our guide:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

The only difference is HEAD vs master.

However, after the curl command, Homebrew will tell you that it is not in the PATH and will give you two commands to run in order to do so. Both times I tried running these commands, Homebrew seems to have persisted once the Terminal was closed and re-opened.

==> Next steps:
 Run these two commands in your terminal to add Homebrew to your PATH:

    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/xxx/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"

I vaguely remember doing something similar when I set up my new M1 chip back in November too.

Source for solution: https://stackoverflow.com/questions/66666134/how-to-install-homebrew-on-m1-mac

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.