Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Scripts to aid in swarm coding.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 dotfiles
Octocat-spinner-32 .gitignore
Octocat-spinner-32 COPYING
Octocat-spinner-32 README.md
Octocat-spinner-32 id_swarm
Octocat-spinner-32 id_swarm.pub
Octocat-spinner-32 swarmup.sh
README.md

Swarming

A set of scripts and dotfiles to bootstrap swarm coding.

Usage

NOTE: Only the host of the swarming session needs to follow the instructions below.

Participating Prerequisites

  • A *nix terminal. If you're on Windows, check out the PuTTY program.
  • Basic familiarity or affinity to a terminal-based editor such as Emacs or Vim.
  • Someone willing to host a swarm coding session.

Connect to a swarm host with the following commands*.

$ ssh swarm@$HOST_IP
$ tmux attach swarming

* With PuTTY, you will actually be entering the host ip in a Windows dialogue, then prompted for the username later.

Hosting Prerequisites

Permissions

  1. Be on a *nix machine
  2. Have the ability to sudo

Software

  • sshd
  • tmux
  • A terminal-based $EDITOR of your choice, Vim and Emacs (24+) are currently supported.

Pre-installation

  • Add a user with username swarm to your machine.

    Suggested command:

    $ sudo adduser swarm --gecos "" # set password to swarm

  • Log in as the swarm user: ssh swarm@localhost

Installation

As the User swarm:

$ git clone git://github.com/nuclearsandwich/swarming.git
$ swarming/swarmup.sh

Go Swarm!

After bootstrapping leiningen and symlinking the appropriate dotfiles for your chosen $EDITOR, the last command will start a tmux session called swarming as well as print a message that you can share with your swarm on how to connect.

==> Created tmux session
==> Bootstrapping Leiningen
==> Symlinking Editor Dotfiles
==> Direct the swarm to connect using $ ssh swarm@10.10.10.7
==> Happy Swarming

Roadmap

The dependency on the root sshd server is both a security risk to host machine and a pain point for flexible, yet precise instructions. It'd be cool to bundle an embedded ssh daemon (Dropbear?) and run it as the non-privileged swarm user on port 5022 or something.

Since Swarm coding is not, as a rule, bound to Clojure just as it was not bound to emacs, I would like to add support for other languages such as Ruby, Python, Go, or Racket.

License

Copyright © 2010-2012 the Seattle Clojure Group Released under the Eclipse Public License.

Something went wrong with that request. Please try again.