Skip to content
/ hivemind Public
forked from guoguo12/hivemind

Usage stats for the Berkeley EECS instructional computers.

Notifications You must be signed in to change notification settings

bchee/hivemind

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hivemind

Hivemind displays usage stats for the Berkeley EECS instructional computers.

How does it work?

Every five minutes, backend/census.py is executed. It connects to each server listed in backend/server.txt via SSH and collects information. The results from all of the servers are combined into a single JSON file (data/latest.json), which is then uploaded to Firebase Hosting.

You can view the most recently generated JSON file here: https://hivemind-data.firebaseapp.com/latest.json.

Overall load formula

The "overall load" heuristic is implemented in toRating() in main.js.

How to contribute

Want to host the website locally? Clone this repo, switch to the gh-pages branch, and start a web server in the project root directory.

The backend (i.e. the script that grabs data from the servers) is a little harder to set up:

  1. Install pysftp.
  2. Clone this repo, switch to the gh-pages branch, and navigate to backend/.
  3. Make a directory called private/.
  4. Create an RSA key pair (id_rsa and id_rsa.pub) inside private/ with no passphrase.
  5. Add the public key to your class account's ~/.ssh/authorized_keys file.
  6. Change the value of LOGIN_USERNAME in census.py to your login.

You should then be able to execute census.py to grab data from each server in servers.txt. The results are printed to stdout.

Dataset

Usage stats for the Hive servers, collected between 11/14/2015 and 12/21/2015 at approximately 10 minute intervals, are available as a educational dataset. There are a total of 5,252 JSON files (~50 MB uncompressed, 7.4 MB zipped).

For details, contact the author.

Credits

Hivemind was made using jQuery (with the Tablesorter plugin), Moment.js, Skeleton, clipboard.js, and Hint.css.

About

Usage stats for the Berkeley EECS instructional computers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 49.4%
  • JavaScript 23.0%
  • HTML 16.1%
  • Python 10.7%
  • Shell 0.8%