Skip to content

Latest commit

 

History

History
140 lines (122 loc) · 3.96 KB

Hagelberg-SwarmCoding.org

File metadata and controls

140 lines (122 loc) · 3.96 KB

Swarm Coding

1 Who am I?

1.1 Phil Hagelberg (http://technomancy.us)

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

\vskip10pt

./Hagelberg-SwarmCoding/heroku.pdf

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

./Hagelberg-SwarmCoding/athens.jpg

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

\pause

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}

\pause

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

  • Chat log analysis
  • Dependency games (Clojuresphere data)
  • Group web site (members, projects listed)
  • Games
    • Mastermind
    • Tic-tac-toe

\pause \vskip10pt

14.3 To host: \texttt{wget git.io/swarmup.sh}