diff --git a/Gemfile b/Gemfile index a219cca..e74aae0 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,9 @@ +# frozen_string_literal: true source 'https://rubygems.org' group :jekyll_plugins do gem 'github-pages' - gem 'jekyll-theme-primer' + # Jekyll requires webrick, but it is no longer bundled with Ruby 3 + # https://github.com/jekyll/jekyll/issues/8523 + gem 'webrick' end diff --git a/Gemfile.lock b/Gemfile.lock index 93e3ae2..9bf4d7e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,6 +225,8 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.14.4) multipart-post (2.1.1) + nokogiri (1.12.4-x86_64-darwin) + racc (~> 1.4) nokogiri (1.12.4-x86_64-linux) racc (~> 1.4) octokit (4.21.0) @@ -265,14 +267,16 @@ GEM unf_ext unf_ext (0.0.7.7) unicode-display_width (1.7.0) + webrick (1.7.0) zeitwerk (2.4.2) PLATFORMS + x86_64-darwin-20 x86_64-linux DEPENDENCIES github-pages - jekyll-theme-primer + webrick BUNDLED WITH 2.2.26 diff --git a/_config.yml b/_config.yml index 82759e0..fae704f 100644 --- a/_config.yml +++ b/_config.yml @@ -2,13 +2,26 @@ title: Introduction to Software Development Tooling description: > Learn the command line, version control, build systems, and correctness in Tufts' CS 50ISDT. -theme: jekyll-theme-primer google_analytics: UA-26440738-1 url: 'https://bernsteinbear.com' baseurl: /isdt +favicon: /favicon.ico permalink: pretty exclude: - README.md - LICENSE - Gemfile - Gemfile.lock + +# Configuration for Primer Spec +# https://github.com/eecs485staff/primer-spec +remote_theme: eecs485staff/primer-spec +kramdown: + input: GFM +plugins: + - jekyll-remote-theme + - jekyll-optional-front-matter + - jekyll-readme-index + - jekyll-relative-links + - jekyll-default-layout + - jemoji diff --git a/assets/css/style.scss b/assets/css/style.scss deleted file mode 100644 index 1e07394..0000000 --- a/assets/css/style.scss +++ /dev/null @@ -1,47 +0,0 @@ ---- ---- - -@import "{{ site.theme }}"; - -kbd { - background-color: #eee; - border-radius: 3px; - border: 1px solid #b4b4b4; - box-shadow: 0 1px 1px rgba(0, 0, 0, .2), 0 2px 0 0 rgba(255, 255, 255, .7) inset; - color: #333; - display: inline-block; - font-size: .85em; - font-weight: 700; - line-height: 1; - padding: 2px 4px; - white-space: nowrap; -} - -code.highlighter-rouge { - color: green; -} - -.footnotes { - @extend .border-top; - @extend .border-gray-light; - font-size: 0.9em; -} - -.navbar { - list-style-type: none; - margin: 0; - padding: 0 !important; -} - -.navbar li { - display: inline; - padding-right: 16px; - font-size: 20px; -} - -div#elephant img { - width: 100px; - position: fixed; - right: 0; - bottom: 0; -} diff --git a/assignments/01-cli-investigative.md b/assignments/01-cli-investigative.md index 68ad99f..06d9ef3 100644 --- a/assignments/01-cli-investigative.md +++ b/assignments/01-cli-investigative.md @@ -1,14 +1,15 @@ --- +layout: spec --- # Homework 1: CLI, Investigative ## Important: use Bash! - +
For this and all future assignments, please make sure you are using Bash as your shell, as that's what this course will focus on for the reasons described in [lecture](../lecture-notes/1-cli.html). The Tufts CS department's default -shell for new users is tcsh, so unless you've asked to have yours +shell for new users is `tcsh`, so unless you've asked to have yours changed[^change-shell], you'll need to run `bash -l` *each time you connect to the server prior to working on coursework*. Your prompt won't look any different after running this command, but you can run `echo $0` to check which @@ -21,6 +22,7 @@ shell you're using. database of students and staff, which only the department administrators can modify. To change your default shell to bash, write an email to [staff@eecs.tufts.edu](mailto:staff@eecs.tufts.edu). +
## CaLIsthenics: what's on the homework server? @@ -73,10 +75,12 @@ syllabus for an example) with each: extension. We do not care about whitespace, field order, or whether each line includes extra fields beyond these two. +
*Hint:* `\.[^/.]*$` is a regular expression that matches a literal dot (`.`), followed by any number of characters that are not a dot or a forward slash, followed by the end of a line. In other words, it matches the extension of files from line(s) containing file paths. +
This is not a trivial problem. Expect to have several different commands in your pipeline. Please ask for help early if you are struggling. diff --git a/assignments/02-cli-constructive.md b/assignments/02-cli-constructive.md index 623022c..a527295 100644 --- a/assignments/02-cli-constructive.md +++ b/assignments/02-cli-constructive.md @@ -1,4 +1,5 @@ --- +layout: spec --- # Homework 2: CLI, Constructive @@ -33,7 +34,7 @@ tree, the `.snapshot/` directory only shows up in listings (`ls -a`) in your top-level home directory. However, it is also present in every subdirectory if you specifically ask for it: -``` +```console $ ls -a Documents/ # No .snapshot/ listed! . .. do-not-read top-secret-file $ ls Documents/.snapshot/ @@ -175,11 +176,13 @@ comp50isdt cli-constructive whats-new.sh myls.c`. You must be logged into the homework server to use Provide. ## Just for fun... +
**At this point, you are done with the assignment. You need not read anything past this point if you don't want to.** However, if you're looking for a challenge, or if you want to learn some tricks involving syscalls and shared libraries in Linux, feel free to take a stab at the following. Expect to do a lot of Googling here, as we have not taken care to define every term we use. +
### Step 1: use `LD_PRELOAD` to intercept `opendir` `opendir()` and `readdir()` are not themselves syscalls; instead, they're diff --git a/assignments/03-vcs-investigative.md b/assignments/03-vcs-investigative.md index 71800bc..fae78b3 100644 --- a/assignments/03-vcs-investigative.md +++ b/assignments/03-vcs-investigative.md @@ -1,4 +1,5 @@ --- +layout: spec --- # Homework 3: VCS, Investigative @@ -79,7 +80,7 @@ easier to clone and use the CLI. around. 1. What was the first commit? Please provide the hash. 1. How many files were in it? - 1. Who authored the commit 1aec7078c4d173ff15ca15ce8ffd1a276d9c03b9? What + 1. Who authored the commit `1aec7078c4d173ff15ca15ce8ffd1a276d9c03b9`? What GitHub pull request does it belong to? This question requires some use of the GitHub UI. 1. Comment on the quality of the commit message. What would you change about diff --git a/assignments/04-vcs-constructive.md b/assignments/04-vcs-constructive.md index a40ef8b..6701ccc 100644 --- a/assignments/04-vcs-constructive.md +++ b/assignments/04-vcs-constructive.md @@ -1,4 +1,5 @@ --- +layout: spec --- # Homework 4: VCS, Constructive diff --git a/assignments/05-bld-investigative.md b/assignments/05-bld-investigative.md index dd54119..6008aa1 100644 --- a/assignments/05-bld-investigative.md +++ b/assignments/05-bld-investigative.md @@ -1,4 +1,5 @@ --- +layout: spec --- # Homework 5: BLD, Investigative diff --git a/assignments/06-bld-constructive.md b/assignments/06-bld-constructive.md index d088b1e..de3897d 100644 --- a/assignments/06-bld-constructive.md +++ b/assignments/06-bld-constructive.md @@ -1,3 +1,6 @@ +--- +layout: spec +--- # Homework 6: BLD, Constructive ## Build me up, buttercup diff --git a/assignments/07-cor-investigative.md b/assignments/07-cor-investigative.md index 1dcd9a7..76ff2da 100644 --- a/assignments/07-cor-investigative.md +++ b/assignments/07-cor-investigative.md @@ -1,4 +1,5 @@ --- +layout: spec --- # Homework 7: COR, Investigative diff --git a/index.md b/index.md index 1319c45..b1088b2 100644 --- a/index.md +++ b/index.md @@ -1,6 +1,21 @@ --- +layout: spec +disableSidebar: true --- +