3 Office - General Setup

3.1 Team Communication

Team communication is done through a bunch of systems:

  • Slack is our primary back and forth tool. It’s used for general questions, referencing issues, and is nice for topic-specific channels and handling code. Something to be aware of is that our conversations disappear after 90 days because we don’t pay for Slack, so if there’s something you don’t want to lose, create an issue !

  • Github issues are the go-to for drawing attention to code. An issue can be anything from an actual problem with the code, a task that needs to be completed, or just a place to document what is happening.

  • Github Discussions are a new feature that we are trying out. They are a place for more general conversation and can be used to ask questions, share ideas, and connect with other team members.

  • To stay up to date with what we are currently working no please make sure to watch the repos. This means you will get email notifications about issues and PRs, etc for that repo. Below is a screenshot of how to watch a repo.

3.2 Payroll setup

Please send over the following info so that you will be paid!

  • bank name and institution number
  • branch/transit number
  • account number
  • account type (chequings or savings)

Please also fill out this TD1 form which we need to keep on file.

All this info can be sent to tara@newgraphenvironment.com and please cc al@newgraphenvironment.com. Thanks.

3.3 Time tracking and expenses

We use Harvest for time tracking and expenses. Please make an account and we will invite you to join our account. Here are some general guidelines for time tracking and expenses:

Time Tracking:

  • Time is always billed to a project even if the client is not always billed for it. Most tasks (ex. backgound research, troubleshooting technical issues, etc) are part of the job to get things done so they can be included conceptually in the tracking (although perhaps not always billed).
  • Harvest has a built in timer which you can use for keeping track of which projects you are working on.
  • Rounding to the nearest 15 minutes is a reasonable way to keep track of time.
  • It’s really important include details about what we working on in the notes section as it helps with team management. It is also helpful for the times when we provide raw time tracking data to clients to help them understand all the great work that got done
  • An example of detailed notes would be: Chpts 3 -5 of R4DS, Upper Bulkley Roundtable Meeting, build collaborative GIS project
  • You can take a paid 15 minute break every 3.5-4 hours and these breaks can be tracked within the job where most of the work for that period is completed.

Expenses:

  • For reimbursements, submit it in the expenses section of Harvest and attach a receipt of the items purchased.
  • For mileage and per diems, there are drop down menus in Harvest.

Overtime averaging agreement:

  • Due to the common scenario of long drives to field sites, overtime is accrued only after 40hrs/week (time and a half) or after 12hrs/day (double time). An example is that if we work 4 @ 10hr days in the field one week there is no overtime. However, if we work a 5th day for 11hrs - all of the 5th day’s 11 hours are either paid out at time and a half or banked at 1.5hrs/hr for future paid time off.

3.4 Homebrew

For those on an Apple computer, Homebrew is a package installer for MacOS that can simplify the install and management of packages (example Git). To download homebrew follow the instructions at https://brew.sh/ . Once Homebrew is installed, just paste brew install git into your terminal to install Git, easy! Many packages can be installed with homebrew (using scripts too) and you can see a list of examples here https://github.com/NewGraphEnvironment/dotfiles/blob/master/brew.sh .

3.5 R, Rstudio, Git and Github

Here are some things to get started on.

  1. R is the programming language we use for most of our analysis. Install R on a mac or from https://mirror.rcg.sfu.ca/mirror/CRAN/.

  2. RStudio is the commonly used IDE (Integrated Development Environment) for R. Download R studio from https://posit.co/downloads/. Please do not install RStudio with Homebrew as we ran into issues in the past.

  3. What the heck is Git ?! Git is a version control system that lets you manage and keep track of your source code history. Install Git with Homebrew if you are on a mac (if on Windows or Linux follow this link here).

  4. Github is a cloud-based hosting service that lets you manage Git repositories. Create a Github account using your newgraphenvironment.com email and we will invite you to our repos. More on Github lingo under the section 6.4.

  5. Setup Rstudio and Git following these instructions https://happygitwithr.com/rstudio-git-github. They play well together. Use devtools package whenever possible.

# 4.  Get setup with `wsl` and `posgresql`. I put my notes from long ago [here](https://github.com/NewGraphEnvironment/pg_wsl) . I was using rstudio-server to run scripts like those in `bcdata` and `bcfishpass` through the terminal. Have a look [here](https://github.com/NewGraphEnvironment/dotfiles/blob/master/install_geo.sh) for some insights into getting postgres set up and tuned.
  • We don’t often text unless we are in the field, yay!

  • Emails, make sure to use explicit titles so that they are easily search-able later. You can also use Gmail labels to sort emails by project.

  • We use Google calendar for holidays and meeting schedules etc. Please create a calendar using your newgraphenvironment.com email and share it with us, thanks.

3.6 Private info

There are a couple ways we store and share private info, such as environmental variables, public and private keys, and passwords. Here is our current set up:

3.6.1 Environmental variables

Environmental variables are variables that are not shared through communications between computers and servers such as passwords or API keys. For example, we use environmental variables to store passwords and settings we use to access remote Postgres databases.

One way to set up environmental variables is within Rstudio. These variables do not persist outside of Rstudio sessions (ex. when running command line programs) but are easy to set up and see:

  • Use usethis::edit_r_environ() to open the .Renviron file in the root of your project. This file is used to store environmental variables that are specific to your project.

  • Once we have shared environmental variables with you, copy/paste them into the .Renviron file. After restarting R using the shift+command+0 keyboard shortcut they will be available in all Rstudio sessions.

3.6.2 Verified commits

When possible - we use verified commits on Github. Details on how to set them up can be found at https://docs.github.com/en/authentication/managing-commit-signature-verification .

3.6.3 LastPass

LastPass is a great way to store and share passwords. Please get yourself set up with a LastPass account linked to the newgraphenvironment.com email so we can share passwords for certain things.