A repository for stuff while a Section Lead Project Manager for the CS7 cohort.
(I'm not actually serious about students not looking at this stuff.)
OR, am I???????
I don’t need to know a single thing about the students code, or even their project.
I just need to help them to help themselves.
!EASTER EGGS: Click on the ▶︎ black ▶︎ triangles ▶︎ to reveal EASTER EGGS!
- Project Manager Pull Request Review Demo w/Patrick Kennedy
Priorities
When possible (which should be almost always…), code reviews should be done during instruction in the morning. Emphasis is on the current PR’s, not the past ones. Then the queue of questions should be covered in the afternoon.
- if there are questions I can address quickly, then I do so in writing.
- Am trying to fight the urge to jump into a chat (even though it is often easier to verbally explain things).
- When given questions in DM’s, I’m in the habit of asking that the question be posted in help channels prior to answering. Also, good to confirm that the student with the question is PAIR PROGRAMMING and that their PULL REQUEST reflects the current state of their project.
The afternoon questions are great, but in-depth code reviews have more impact.
PM Daily Schedule (PST)
# | Time (PST) | Activity |
---|---|---|
1. | 8 | /jibble in |
2. | 805 - 820 | CS7 PM standup meeting |
3. | 820 - 9 | 1) GitHub PR code reviews, 2) Code challenge help, 3) SOLUTION LECTURE @845-9 |
5. | 9 - 11 | 1) GitHub PR code reviews, 2) #cs7_help, 3) AM Lecture 4) Attendance |
6. | 11 | /jibble out |
7. | 11 - 12 | LUNCH |
8. | 12 | /jibble in |
9. | 12 - 345 | 1) GitHub PR code reviews, 2) #cs7_help, 3) Zoom Breakout rooms |
10. | 345 - 415 | Daily Standup Form review |
11. | 415 - 430 | PM Team Meeting Standup Reports |
12. | 430 - 5 | PM Team Meeting Group Discussion |
13. | 5 | /jibble out |
# | Time (PST) | Activity |
---|---|---|
1. | 8 | /jibble in |
2. | 805 - 9 | CS7 PM standup meeting |
3. | 9 - 10 | CS7 PM Open Q&A with Instructor |
4. | 10 - 11 | 1) GitHub PR code reviews, 2) #cs7_help |
5. | 11 | /jibble out |
6. | 11 - 12 | LUNCH |
7. | 12 | /jibble in |
8. | 12 - 5 | Sprint Challenge: 12-1 Instructor Review, Attendance, Assessments, PR reviews, 1-on-1 meetings |
9. | 5 | /jibble out |
# | Time (PST) | Activity |
---|---|---|
1. | 12 | /jibble in |
2. | 12 - 345 | 1) GitHub PR code reviews, 2) #cs7_help, 3) Zoom Breakout rooms |
3. | 345 - 415 | Daily Standup Form review |
4. | 415 - 430 | PM Team Meeting Standup Reports |
5. | 430 - 5 | PM Team Meeting Group Discussion |
6. | 5 | /jibble out |
# | Time (PST) | Activity |
---|---|---|
1. | 12 | /jibble in |
2. | 12 - 5 | Sprint Challenge: 12-1 Instructor Review, Attendance, Assessments, PR reviews, 1-on-1 meetings |
3. | 5 | /jibble out |
Section Lead Daily Schedule (PST)
- What did you work on yesterday?
- What are you working on today?
- What is causing you to get stuck?
DAILY@9:05am PST Section Lead Stand Up Meeting
# | Time (PST) | Activity |
---|---|---|
1. | 450p day before or 750a | Schedule Code Challenge |
2. | 8 | /jibble in |
3. | 805 - 820 | CS7 PM standup |
4. | 820 - 845 | 1) GitHub PR code reviews, 2) Code challenge help |
5. | 845 - 9 | LECTURE: code challenge review |
6. | 905 - ... | WEDNESDAY Section Leads mtg: https://zoom.us/j/4558930151 or #staff_section_leads report |
7. | ... - 11 | 1) GitHub PR code reviews 2) #cs7_help 3) Attendance 4) Watchlist 5) AM Lecture |
8. | 11 | /jibble out |
9. | 11 - 12 | LUNCH |
10. | 12 | /jibble in |
11. | 12 - 345 | 1) GitHub PR code reviews, 2) #cs7_help, 3) Zoom Breakout rooms |
12. | 345 - 415 | Daily Standup Form review |
13. | 415 - 430 | PM Team Meeting Standup Reports |
14. | 430 - 5 | PM Team Meeting Group Discussion |
15. | 5 | /jibble out |
# | Time (PST) | Activity |
---|---|---|
1. | 8 | /jibble in |
2. | 805 - 9 | CS7 PM standup meeting |
3. | 9 - 10 | CS7 PM Open Q&A with Instructor |
4. | 10 - 11 | 1) GitHub PR code reviews 2) #cs7_help 3) Attendance 4) Watchlist |
5. | 11 | /jibble out |
6. | 11 - 12 | LUNCH |
7. | 12 | /jibble in |
8. | 12 - 5 | Sprint Challenge: 12-1 Instructor Review, Attendance, Assessments, PR reviews, 1-on-1 meetings |
9. | 5 | /jibble out |
CS7 Project Managers
# | Name | Location | TimeZone | OS | Text Editor | Console |
---|---|---|---|---|---|---|
1. | Matt Jackson | (Oakland, CA) | PST | macOS | VSC, VIM | |
2. | Aaron Wilder | PST | macOS | VSC, Atom | Iterm | |
3. | Tyge Johnson | (Salt Lake City, UT) | MST | macOS | Atom | |
4. | Manisha LaL | (Chicago, IL) | CST | macOS | VSC | |
5. | Satish Vattikuti | (Toledo, OH) | EST | win10 | VSC | |
6. | Andy Lavor | (PA) | EST | Linux: Kubuntu, Ubunutu, Fedora, CentOS | VSC | Terminator, bash, zsh |
7. | Patrick Kennedy | (Madison, NH) | EST | macOS, win10, Ubuntu | Atom, VSC, Vim, Sublime, Notepad++ | Terminal.app/Bash, GitBash, CMD, PowerShell |
- Manisha M-F 8-11 LUNCH 12-5
- Tyge Johnson: M-F 8-11 LUNCH 12-5
- Patrick: M-F 8-11 LUNCH 12-5
- Matt Jackson: M-F 8-11 LUNCH 1-5
- Aaron Wilder: M-F 8-11 LUNCH 1-5
- Andy Lavor: M-F 8-11 LUNCH 1-5
- Satish is Part Time: 20hrs total
- M W F: 8AM - 9AM
- M W F: NOON - 5PM
- Tu Th : 4PM - 5PM
Set Up Notes
- CS# on Piazza - Tai >>> Kevin
- CS# on Repl.it - Kevin
- Zoom logins (one for lead, one for CS# PM’s) - Tai >>> Kevin
- YouTube: Lambda School account access - Caleb
- Airtable access for Attendance, Watchlist, etc - Caleb
- CS# Google calendar - Jocelyn
jibble
/question
&/queue
Manage Class
tab to add students and instructorsNew Post
- add week# tag for letures; & the code challenges week# & coding_challenge tags for code challenges- NOTE: Just pasting the YouTube link WON'T necessarily result in an HTML link - it'll just be text. Piazza will make the URL hypertext, but only if you add a space after it (so their text editor evluates the link).
- MUCH more useful to students: EMBEDDED YouTube content!
- use it to monitor students progress with CC's.
- If they aren't completing them, check in.
- If they aren't even submitting them, show them how and remind them to submit them.
- Export CSV to analyze performance
Setting up repl.it code challenges
Per Emily:
- Log into repl.it - you should see the classrooms
- When you click on CS7's classroom there should be 3 tabs: published, scheduled, and drafts.
- Under drafts, find the code challenge and click on it.
- On it's main page on the top right you can schedule it.
- Select tomorrow and set the time to 7:59 AM (I do 8, but I'm a rebel)
- You can always go back to the scheduled version, click to open it up and you'll have options to edit the tests etc. If you scroll all the way to the bottom, there's a link to the model solution. That's the one the students will see after submission, and the one you can share if you don't want to write one
- Log in to the section lead Zoom account
- Go to "My Profile"
- Select the "Meetings" tab on the sidebar
- Set up a recurring meeting.
- In the jibble App channel, use
in
andout
, see also:help
- https://app.jibble.io/ to access your time sheet and edit times if need be.
- http://help.jibble.io/timesheets/how-can-i-add-or-edit-time-manually
- if a student hasn't been noted as being in attendance for 2 days, send a DM:
Hi {student},
Just checking in. {introduction if need be}. We may have simply missed you while we were taking attendance, but I’m writing to check in to make sure you have what you need for the course and are able to stay current with the coursework. Please let me know if you’re here and if there’s anything I can do to help.
How U Do Da'????
To display your remote aliases and the associated URL:
$ git remote -v
If you forked the Lambda School repository and cloned your fork, then origin
should be set to your GitHub repository. The name origin
is just a convention for signifying the GitHub repository which corresponds with your local Git repository.
If you do not have a remote alias set to Lambda School’s GitHub repository, you can add an alias for the remote unique resource locater specifying Lambda School’s GitHub repository. To do that, the git
command uses this syntax: git remote add upstream {URL}
. For example:
$ git remote add upstream https://github.com/LambdaSchool/Responsive-Web-Design.git
...then confirm that the alias is set with:
$ git remote -v
...then you can:
$ git pull upstream master
...to pull in the updates from Lambda School’s GitHub repository to your local Git repository.
Also, when you pull in new stuff from Lambda School’s GitHub repo, your local Git repository will want a commit message to log the update. The VIM or NANO text editors may pop up at you expecting you to know how to use them.
VIM is a “mode based” text editor. When you encounter it in git
- press
i
to enter “Insert” mode (may launch in Insert mode - look to the bottom left of the console display, does it say— INSERT --
? - type your commit message
- press
ESC
to enter the “command mode” - type `:wq: to “W”rite and “Q”uit
- you should be back in your regular console.
- type
git log
to confirm the commit message (pressq
to get back to your regular console)
If you are set up with the NANO text editor, ctrl-o
is the save command. Type your commit msg, the use ctrl-o
. At the bottom of the NANO text editor, you should see a list of command options.
To set Git’s default editor to your preference of VIM or NANO:
$ git config --global core.editor vim
...maybe you might need quotes around “vim”:
$ git config --global core.editor "vim"
or
$ git config --global core.editor "nano"
and there are ways to associate a text editor (Atom, Sublime) with Git: https://help.github.com/articles/associating-text-editors-with-git/
I have not tried this, but I am told that to set VSC as the default text editor, this command should do it with GitBash:
git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
Othherwise for folks using CMD/PShell:
git config --global core.editor "C:\\Program files\path...to\Visual\ Studio\ Code.app/Contents/Resources/app/bin/code.exe"
So, you say you’ve already pushed your ENTIRE node_modules
folder up to GitHub, eh?
- add ‘node_modules’ to .gitignore file
$ git rm -r --cached node_modules
$ git commit -m 'Remove the now ignored directory node_modules'
$ git push origin master
If you want to go “back in time” to a previous commit, copy something, return to your current commit and use the old code: https://stackoverflow.com/a/4114122/5225057
If you want to temporarily go back to it, fool around, then come back to where you are, all you have to do is check out the desired commit:
git checkout <first 7 or 10 letters in the git commit ID>
To go back to where you were, just check out the branch you were on again. i.e.
git checkout master
For example, use git log
to see your commit history, find the commit you want to make current, copy it’s commit ID, then use git checkout <commit ID>
to make a temporary branch from the commit. Use git branch -a
to list the branch and note the star next to the “current” branch. In your text editor, you should see the changes have reverted to the old commit. Copy what you need. Then switch back to the master branch with git checkout master
. In your text editor, you should see that the files are back to where you left off. git branch -a
will report that you are on “master again” and the temp branch is gone. git log
will also confirm that your latest commit is the current one. You can now paste the code you copied out of the old commit into your current work 🙂
- oh, it's a thing now with a web interface... templates... all that.
/remind
e.g./remind #cs7_staff @channel 805aPST - CS7 PMs Stand Up mtg: https://zoom.us/j/931925949 every weekday at 11:05am
- (see Zoom prefs to make a regular meeting URL)
/remind #cs7 @channel Before you go to lunch, update your Sprint Challenge PR by saving your work locally, committing all your changes and pushing them up to GitHub. You did submit a PR, right? Once you've done that, please fill out the Sprint Challenge Submission form: https://airtable.com/shrZZKYVu5SITs2R8 every friday at 1:55pm
- Slack chat supports mouse sharing and screen drawing
- Zoom
- Zoom
- Linux: http://www.maartenbaert.be/simplescreenrecorder/ (pic and sound)
- macOS: QuickTime Player does screen captures. To record sound, I installed SoundFlower (Got to the GitHub link)
- Windows: ???
- Ever need to quickly concatenate two Zoom meeting mp4's? …Like in 30 seconds?? Can haz FFMPEG???
$ ffmpeg -i PART1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1.ts
$ ffmpeg -i PART2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2.ts
$ ffmpeg -i "concat:temp1.ts|temp2.ts" -c copy -bsf:a aac_adtstoasc OUTPUT.mp4
- you'll need this on macOS:
brew install ffmpeg
- for other OS's: https://trac.ffmpeg.org/wiki/CompilationGuide
- or just start here: https://ffmpeg.org/
- ScreenFlow - Caleb has paid version to render w/o watermark
- an example using Cursor enlargement, click radar, and displaying modifier keystrokes (e.g.
⌘ + v
forpaste
):
- Convert .mp4 to .gif: https://ezgif.com/video-to-gif
- https://gifox.io
- Manual: https://github.github.com/gfm/
- CheatSheet: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
- Markdown Preview in Atom: https://flight-manual.atom.io/using-atom/sections/writing-in-atom/#previews
- Markdown Preview in VSC: https://code.visualstudio.com/docs/languages/markdown#_markdown-preview
- You can also edit the markdown text file, commit the changes, push it to GitHub and view the file online in the browser
- Click on this README.md file, then
- click the
edit
icon:
- wrap a section in this HTML:
<details><summary>Displayed Text</summary><p>
Nested text/markdown
</p></details>
- make it like this if you want the html collapsable in your text editor:
<details>
<summary>Displayed Text</summary><p>
Nested text/markdown
</p>
</details>
$ mongo <---- invoke the MongoDB
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
...
> show dbs <---- list all the databases
admin 0.000GB
config 0.000GB
local 0.000GB
users 0.000GB
> db <---- display which db is active (test is the default)
test
> use users <---- use a particular database
switched to db users
> db
users <---- see?
> db.users.find().pretty() <---- display contents nicely
{
"_id" : ObjectId("5ab457b6103d0e1cb6597d16"),
"username" : "bob",
"passwordHash" : "$2a$11$dsFfbj6ETxWbMtNJLEQEEOZnCKqFjjyFR2BA0gdO/sBvhJMkuFfSy",
"__v" : 0
}
> db.dropDatabase() <---- nuke db out of existence
{ "dropped" : "users", "ok" : 1 }
> quit() <---- well... this should be fairly obvious?
$
For folks like working in the console, there are cURL
equivalents for Postman commands. You can access these through the Code
snippets link in the Postman app:
https://www.getpostman.com/docs/v6/postman/sending_api_requests/generate_code_snippets
The Postman snippets are a little more verbose, but as an example, instead of using Postman for the Authentication Sprint routes and HTTP methods, these are the cURL
equivalents:
/api/users/
i.e. curl -x HTTP_METHOD {URL} -H {CONTENT:TYPE} -d '{"JSON":"DATA"}
$ curl -X POST http://localhost:5000/api/users -H 'Content-Type: application/json' -d '{"username":"cool_name","password":"reallydifficult"}'
{
"__v":0,
"username":"cool_name",
"password":"$2a$11$ZziXrc/QXfPxm42WWLPPJ.JyvQS.ClyBnPDYvdclDUv06v9Uaiwhu",
"_id":"5ab6c702ae098de170987a00"
}
/api/login/
i.e. curl -x HTTP_METHOD {URL} -H {CONTENT:TYPE} -d '{"JSON":"DATA"}
$ curl -X POST http://localhost:5000/api/login -H 'Content-Type: application/json' -d '{"username":"cool_name","password":"reallydifficult"}'
{
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImNvb2xfbmFtZSIsImlhdCI6MTUyMTkyODA5Mn0.8aSKqHzQkprobO5w4oo-SuC03M4YIYFyPCD9EVNXu_s"
}
/api/jokes:
i.e. curl {URL} -H "Authorization:{TOKEN}"
$ curl http://localhost:5000/api/jokes -H "Authorization:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImNvb2xfbmFtZSIsImlhdCI6MTUyMTkyODA5Mn0.8aSKqHzQkprobO5w4oo-SuC03M4YIYFyPCD9EVNXu_s"
[
{
"id": 30,
"type": "programming",
"setup": "Two bytes meet. The first byte asks, \"Are you ill?\"",
"punchline": "The second byte replies, \"No, just feeling a bit off.\""
},
et cetera...
- Strip out percentages
- use: http://sortmylist.com/ to sort (by first or last name) and make csv if need be
There are 47 CS7 students SORTED BY FIRST NAME
Aaron Burk Amanda Phillips Anthony Catalfo Ashlei Jones Charlie Sparks Christopher Beards Cliff Kang Cody Windeknecht Daniel J. Abbott Daniel Lara Danielle Tacheny David Loveday David Soudry Dixie Korley Eileen Eddy Eric Hechavarria German Gonzalez Giraud Julemis Glenn-David Daniel "David" Igor Yermak John Elijah Spraul John Paul Correia Jonathan Brunt Jonathan Bry Kevin Chan Lo Saephan Maximo De La Rosa Michael Marshalkovich Mike Streltsoff Nathan Daniel Flood Nathaniel Flory Nikhil Kamineni Peter A Gray Punit Rawal Richard Reis Ronald Miksch (Ronnie) Ronelle Mirron Lawson (Rain) Roy Tan Russell Leon Bates IV Russell Stinson Sergey Nam Shobana Ramesh Steven Magadan Terrie Boeun Kim Tyson Williams
SORTED BY LAST NAME
Daniel J. Abbott Russell Leon Bates IV Christopher Beards Jonathan Brunt Jonathan Bry Aaron Burk Anthony Catalfo Kevin Chan John Paul Correia Glenn-David Daniel "David" Eileen Eddy Nathan Daniel Flood Nathaniel Flory German Gonzalez Peter A Gray Eric Hechavarria Ashlei Jones Giraud Julemis Nikhil Kamineni Cliff Kang Terrie Boeun Kim Dixie Korley Daniel Lara Ronelle Mirron Lawson (Rain) David Loveday Steven Magadan Michael Marshalkovich Ronald Miksch (Ronnie) Sergey Nam Amanda Phillips Shobana Ramesh Punit Rawal Richard Reis Maximo De La Rosa Lo Saephan David Soudry Charlie Sparks John Elijah Spraul Russell Stinson Mike Streltsoff Danielle Tacheny Roy Tan Tyson Williams Cody Windeknecht Igor Yermak
Pull Request Reviews
Looks great - buttons work, layout's on point.
I opened the page in Chrome, Firefox, Safari & Opera and the buttons all worked.
Page layout looked good while resizing the browser.
No console warnings in the Chrome Dev Tools, well done!
Suggestion for GitHub Pull Requests and commits:
- Get in the habit of committing more often!
- Commit messages can be a valuable resource, and also help your focus on each step of the software development process.
- While things like `tried` and `done` might be _true_, they don't really describe the state of the project as you were developing it.
- Commit msgs don't have to be long, but often and succinct is good practice. The first fifty characters can be the whole commit message, but they can also be the title if you put a line in between the title and a longer explanatory description.
- The command `git log` will show you the history of your project (`space` to page through the longer histories. `q` will get you out of the history display). I try (and often fail) to get my commit message titles to tell the _story_ of my project development.
As for PRs - it's helpful for PMs/Instructors if you put _your name_ as the title of the PR.
Also, you can open a PR as soon as you fork and clone a repo.
As you push commits to your repo, they'll get added to the PR.
That way your work is available to us as you develop your project :)
For example, start a PR title with "**Student NAME: w.i.p.**"
Then when you are done, you can edit the title to read, "**Student NAME: done √**"
Will also be useful when pair programming to put both peeps names in the title.
Great job!
Afternoon Pair Programming Checklist
https://github.com/LambdaSchool/pair-programming-checklist
@channel Reminder: for pair programming “collaboration” through :github:
1. Person A forks the Lambda School repository.
2. Person A adds person B as a Collaborator.
3. Person B accepts invite.
4. Both clone person A's repository.
5. Work together, switch coding roles every half hour.
6. Upon the first switch, save all changes, commit, push to person A's repository and makes a Pull Request.
7. Push and pull changes as you switch.
8. Commit often!
9. Attend the end of day stand up meeting.
Errata
- out of sync with cs7
- List of students accuracy? Currently gleaned from the repl.it list of students who've completed assignments.
- List of Labs/Sprints released to students?
- For operational understanding of their knowledge base.
- And for Pull Request code reviews
Addenda
- Complete list of relevant LINKS released to class as supplemental/prepatory material.
- Deploy arc_hive to LS?
- Deploy Hackathon2018 Docker env project/sprint set up:
Hey Dan, did you watch any of the Hackathon 2018 demos?
There was a group that built an tool for LS students which - across platforms - could be configured to get students the tools they need for projects with minimal setup. If you have ~5-10 minutes to watch the demo, this link is cued up to their presentation: https://youtu.be/Kn3PX0QEK1U?t=28m53s
> There would be a docker file for each lesson; each student would install a docker at the beginning, which would include all dependencies and lesson files, and each student could grab their own personal editor; there would literally be no setup time; the lesson could be started immediately.
I’m thinking this could be useful in Precourse as well? Curious to know what you think - thanks!
Miscellany
- Helping Dan Frehner with https://github.com/mixelpixel/Getting-Started
- 1/2 hour demo video on GitHub.
- Implement Arc Hive into LS?
- Hackathon2018 Docker project?
- vidpresso???