swcarpentry / DEPRECATED-bc

DEPRECATED: This repository is now frozen - please see individual lesson repositories.
Other
299 stars 382 forks source link

Shell filesystem consistency #671

Closed rbeagrie closed 10 years ago

rbeagrie commented 10 years ago

In preparation for teaching the shell lessons at a bootcamp next week, I did some organizing of the material and wanted to make a pull request in case it would be useful to everyone else.

This PR puts all the material for the shell lessons into one consistent filetree, so that learners can be working form the same home directory. It also updates the lesson text and images so that everything should hopefully match the new layout. Unfortunately, you can't add empty directories to a git repository, so I removed them from the find lesson (this is part personal preference, as I don't think the -empty parameter is that useful to them at this stage).

Another personal preference change I made was removing the -print parameter from all of the find commands as we never explain it, and I think the less flags we introduce the better. Happy to be over-ruled on that one if someone has a good reason for keeping it in.

Whilst the lesson material is all in filesystem/users/nelle I've also added the file tree from the challenges to the first lesson into filesystem/users (although here again all the directories have to have a file inside to add them to the repo).

This might be relevent to the discussion in issue #646

rbeagrie commented 10 years ago

Oh and I forgot to say that I also have an updated version of the SWC virtual machine that has the users home directory set to /users/nelle and also has all of the shell lesson material in the right place, if anyone is interested!

claresloggett commented 10 years ago

This looks great! I just tried building the site from your fork and running through the lessons myself, matching the filesystem found in found in novice/shell/filesystem against the lesson instructions; I assume that's the intended structure to use. It nearly all matches but I spotted a couple of inconsistencies (some of which may have already been there before your fork - I haven't used the all of the Unix lessons before):

In "Files and Directories":

  1. The first ls instruction shows some files and directories in the example output, one of which (Desktop, i.e. nelle/Desktop) seems to be missing in the filesystem in the git repository.
  2. Further down, after cd data and pwd, we call ls again and the example output has slashes after directory names. Probably the student here should be told to call ls -F, to get the output shown.
  3. Near the end of the lesson, tab autocompletion is described, using ls no as an example to autocomplete to north-pacific-gyre. Since notes.txt is in the same directory at this point, I'd suggest autocompleting from ls nor else there will be some confused students who don't know to press tab twice.

In "Finding Things":

  1. I was a little confused right at the start of the lesson since haiku.txt is not in Nelle's home directory (it is in nelle/writing). I suggest adding a cd writing instruction at the start of the lesson. This will probably be clear enough - the convention throughout the lessons has been pretty consistent in going back to Nelle's home directory at the start of each new discussion.
  2. The line "Nelle's home directory contains one file called haiku.txt and four subdirectories" isn't quite right any more - it's now nelle/writing that contains these things rather than her home directory.
  3. Of the four subdirectories mentioned in that line, one directory, nelle/writing/old, seems to be missing in the filesystem in the git repository.

I'd be happy to issue these as a pull request instead if that would be easier - I assume the right way to do it would be to issue them to your fork and then for you to update the PR.

rbeagrie commented 10 years ago

Thanks for the suggestions @claresloggett !

I think this commit should fix all your points except the two points about missing files. When I do a fresh clone and checkout of that branch, the files seem to be there for me:

git clone git@github.com:rbeagrie/bc.git test_bc
cd test_bc
git fetch
git checkout -b shell-filesystem-consistency origin/shell-filesystem-consistency 
ls -F novice/shell/filesystem/users/nelle/

What OS are you using? Is it possible that on some systems git doesn't bother to create empty files (/users/nelle/Desktop contains only one file, which is empty).

claresloggett commented 10 years ago

@rbeagrie I'm using a Mac but I don't think that was the issue. I am seeing the Desktop directory - sorry, this was probably just me. However I'm consistently not seeing the writing/old directory, even on linux. Do you see that one?

I also don't see it at https://github.com/rbeagrie/bc/tree/shell-filesystem-consistency/novice/shell/filesystem/users/nelle/writing . It doesn't seem important, so if it's really not there it might be just as easy to update the lesson text as the filesystem.

Honestly if that's the only issue I'll just merge, but if you don't see it either, maybe you'd prefer to update first. Let me know either way.

rbeagrie commented 10 years ago

@claresloggett Ah I think I see the issue. I'm on holiday this week but I'll have a look at it next weekend and then it should be ready for merge! Thanks for the help :)

gvwilson commented 10 years ago

Is this one ready to merge?

claresloggett commented 10 years ago

@gvwilson there is one (very minor!) inconsistency which I think @rbeagrie wanted to fix before we merge. However am I right in thinking I could merge, then he could update the PR, then I could merge again? If so I'll merge right away as the changes could be useful for upcoming workshops.

rbeagrie commented 10 years ago

Sorry for the radio silence - I've been away on holiday. Anyway, the last few issues should now be fixed and ready for merge.

claresloggett commented 10 years ago

Merged! Thanks @beagrie !