Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
150 lines (131 sloc) 4.26 KB

Swarm Coding

1 Who am I?

1.1 Phil Hagelberg (

  • Soli Deo Gloria
  • Hacker-Errant, Heroku
  • Second-tallest man in Clojure



2 Who am I?

2.1 Relevant qualification:

  • Founded Seajure, Seattle Clojure Group

3 User groups

3.1 What are we trying to achieve?

  • Social
  • Learning (teaching?)

4 User groups

4.1 The lecture model

  • What’s going in this room here
  • But not sustainable
  • Not even a particularly good way of learning

5 User groups

5.1 The lecture model works if…

  • Audience is sufficiently alert, caffeinated, etc
  • Presenter can keep your attention.
    • good jokes
    • cat pictures

6 Learning


7 Learning by discussion

7.1 Socratic dialog

7.2 Discussion among a small group

7.3 Asking questions, not giving answers

8 Learning by shared models

8.1 Computer Communications

  • by J.C.R. Licklider and Robert Taylor
  • Creative communication
    • distinct from simply data transfer


8.2 Communication: collaborative modeling

9 Learning by shared models

9.1 Computer Communications

9.2 Communication: collaborative modeling

\begin{quote} Any communication between people about the same thing is a common revelatory experience about informational models of that thing. \end{quote}


9.3 Computers bring immediacy over distance

9.4 Computers remove ambiguity

10 A REPL process as a shared model

10.1 Interactive programs

  • Able to act directly on that substance
  • Dispensing with intermediate modeling steps
    • (Modeling still happens in your head)

11 The technology

11.1 SSH as a shared user

11.2 \texttt{tmux attach}

11.3 \texttt{lein new hack-project}

11.4 Emacs/Vim

12 Criteria for a hack project

12.1 Short, accessible

12.2 Contrived vs practical (harder, more interesting)

12.3 Start by doing a fresh project each time

13 Running a session

13.1 Start with everyone introducing themselves

  • Ascertain skill levels

13.2 Hold a “tooling workshop” session first

13.3 Explain the project, goals

13.4 Pass around control

13.5 By the end, hope to have produced something

  • Push to Github/Clojars/Heroku

14 Let’s try it out

14.1 Groups of up to ten

14.2 Project ideas

15 Let’s try it out

15.1 To host:

15.2 To join: