Want to dive into learning about technical infrastructure at the OCF, but not sure where to start? Here are some self-paced tasks you can do on your own. Feel free to ask for help in our Slack, Discord, Matrix, Slack, or in person during staff hours!
Tasks marked with an asterisk (*) require staff privileges. If you want to work on these but haven't officially been given staff privileges yet, let a current staffer know you’re working on starter tasks and we will add you.
These tasks don’t have to be completed in order.
Internet Relay Chat (IRC) is a chat protocol invented in the 80s, an early precursor to Slack. The OCF runs an IRC server (since 2002!), which is bridged to our Slack network. Many staffers prefer IRC to Slack due to its wide breadth of customizable clients, as opposed to Slack, which requires using their application.
For this task, pick an IRC client, install it on your computer, and use it to connect to the OCF IRC network (details at https://ocf.io/irc). Some popular clients are:
See http://www.irchelp.org/clients/ for more recommendations.
Once you’ve joined IRC, pick any channel (#rebuild, #henlo, etc) and say hi!
All of our servers run Linux, and we interact with them over the command line. There are a lot of online resources about using the Linux command line, so if you're confused about something, try Googling it!
If you haven't used the command line before, you can go to our command
reference page and try running some commands. You
can also connect to our ssh server
ssh.ocf.berkeley.edu) using your own SSH client.
If you want to get more comfortable, try completing lab 1 from the OCF/XCF Linux System Administration DeCal.
Our chat bot is named
create and its source code can be found at
https://github.com/ocf/ircbot. Before testing the IRC bot right away, make sure
you know how to use it:
create: thankswill trigger a response!
Once you’ve learned about
create, you can start making changes to it!
create-yourusernameinstead of simply
OCF staff use a collection of scripts when interacting with the campus
community. For example, before creating an account for a student organization,
we make sure the person requesting the account is listed as a signatory for that
group. Staff members use the
signat command to perform this
signatcommand to list the signatories for the Open Computing Facility or another student organization of your choice. Hint: if you are not sure how to use the
signatcommand, try running
signat --help. This trick works with most commands. OCF scripts also have documentation on this website.
Every OCF account has web hosting enabled at https://www.ocf.berkeley.edu/~yourusername. As an example, check out ckuehl’s website.
ocflib is a Python library we maintain which is installed on every OCF host. For this exercise, you won’t need to make modifications to ocflib.
import ocflib.lab.staff_hoursto import utilities relating to staff hours.
staffhours = ocflib.lab.staff_hours.get_staff_hours()to get the list of staff hours.
staffhoursand check that it matches the info on the staff hours page. For instance, you should be able to run
staffhoursto see the info corresponding to the first staff hour entry on the page.
Your turn! Use ocflib functions to get the following information in your interactive Python shell:
If you get stuck, don't forget that you can search the GitHub repo or Sourcegraph to find more info.
Whenever a technical change to the OCF is made, we use a pull request on GitHub. Pull requests allow staffers to propose changes in discrete chunks and get feedback before the code goes live.
You're going to make a pull request to ocfweb. Specifically, you'll add your name to the list of everyone who's completed this task.
<OCF username>@ocf.berkeley.edu) is not connected to your account, add it to your account emails.
xclipcommands will probably not work. Instead, just run
cat ~/.ssh/id_rsa.puband manually copy it to your clipboard.
You only have to do this part once. Now that your fork is set up, all future pull requests to ocfweb will use this same clone.
git checkout -b <branch-name>. You have now created and switched to your new branch.
Now, you can edit the file and add your username. Figure out which file corresponds to the completion list and add your username to that file. (Just add the name for now, don't worry about adding the URL or brackets.)
There are a few options for editing the file:
emacs, you can use that to edit the file.
~/remotefolder on the desktop, which is synced to your home directory on supernova.
git add, and make a commit using
git push origin <branch-name>.
Once the pull request has been submitted, other OCF staff will have a change to review your changes and make sure they look good. Once one or two people approve, the pull request can be merged and your change will go live.
Sometimes you will want to update a pull request after it has been created, because you thought of something new or because another staffer suggested a change. In this case, you'll update your pull request so that your username on the list links to the pull request you made.
[username](https://link.to/pull/request). The brackets and parentheses indicate that this is a link in Markdown, which is the markup language we use for the docs.
git rebase -i HEAD~2(
~2is the number of commits to rebase) to do an "interactive rebase" of the last two commits.
git logto check: you should only see one commit at the top that is authored by you, instead of two.
After pushing, the pull request on GitHub will automatically update with the new changes.
Congrats on making your PR! If you want to learn more about what you can do with git, check out our documentation on git.