The Beauty and Joy of Computing labs resource repository.
We use a project called "llab" to be able to display the lab content nicely. It's contained in the "submodule" llab
which somewhat changes the way you need to work with git
.
(As an aside, if you're interested, you should definitely check out llab.)
git clone --recursive
OR
git submodule init
git submodule update
To update the repo you should do this:
git pull
git submodule update
The main "production" server for labs is hosted at Berkeley, here.
We also sometimes use CS10 students as lab rats, and you can view beta labs on the CS10 site.
However, the repository is setup so that any fork can be run using GitHub pages.
The main BJC repo can be viewed in a live state, here, or you can use your own fork by visiting the following url: http://[username].github.io/bjc-r/
, where you replace [username]
with your GitHub account name.
While GitHub pages are convenient, you'll likely want to run your own web server to make debugging changes much more quick and easy. In order to view the labs, you'll need to have an Apache server running on your machine. Here are some simple instructions for a couple different platforms.
No matter the platform, you should server files from /bjc-r/
at the root of your server.
The easiest way to setup a server is to use a simple, built-in Python server.
cd
into one level above thebjc-r
directory.- In a separate window run
python -m SimpleHTTPServer
(for Python 2) orpython3 -m http.server
for Python 3. - Navigate to http://localhost:8000/bjc-r in a browser.
- That's it! :)
Windows guide coming...sometime. However, the Python solution should work as well.
A basic guide on writing labs is, here. However, for the most part, all you need to do is write some HTML. To contribute:
- Create your own fork of
bjc-r
. - Optionally: Create a new branch for your feature.
- Work away!
- Create a pull request.
- Get feedback on the pull request and make changes as needed.
- Be super awesome! :)
Of course, submitting issues is always welcome and encouraged! These issues can be bugs, questions, improvements or anything you'd like to share.