• Stars
    star
    354
  • Rank 120,042 (Top 3 %)
  • Language
    Java
  • License
    Other
  • Created over 16 years ago
  • Updated almost 11 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A (fork of a) slick visualization for your source code

code_swarm is an experiment in organic software visualization.

See http://vis.cs.ucdavis.edu/~ogawa/codeswarm for a picture of what we want to produce.

Google Code Project : http://code.google.com/p/codeswarm/ Google Group/Mailing List: http://groups.google.com/group/codeswarm

Building

Prerequisites

You will need the Apache ant build tool, at least version 5 of the Java SDK from Sun, and Python version 2.4 or later. Linux users: we've been unable to get code_swarm to compile with the GNU toolchain, Sun's implementation is strongly recommended. If you're able to get it to compile with another toolchain, we'll be glad to include instructions here on how to do so.

Mac

Recent versions of OS X come with a good java compiler and Python interpreter, so all you need to do is get and install ant.

If you have DarwinPorts/MacPorts, you can simply: sudo port install apache-ant

Linux

sudo apt-get install ant 
sudo apt-get install sun-java6-jdk 
sudo update-java-alternatives -s java-6-sun 

Tested with Ubuntu 8.04, probably similar in other linux distributions.

You should also ensure that Python is installed. Run python in the terminal if you're unsure.

Windows

  • download ant: http://ant.apache.org/bindownload.cgi

  • unpack it and add the location of its binaries to the the PATH environment variable. For instance, add at the end : C:\apache-ant-1.7.0\bin;

  • download the Sun Java SDK at http://java.sun.com/javase/downloads/index.jsp

  • install it and add the Java binaries to the PATH : C:\Program Files\Java\jdk1.6.0_06\bin;

  • then create a new environment variable called JAVA_HOME and set its path to C:\Program Files\Java\jdk1.6.0_06;

  • download and install Python from http://www.python.org/download/ and ensure that it too is in the PATH

Getting the source code

git

A git fork of the main code_swarm repository is maintained at http://github.com/rictic/code_swarm/tree/master

This fork contains a number of patches which improve the speed of code_swarm significantly, as well as an executable, which makes running code_swarm a one-step process.

To obtain a clone of the repository, simply use:

git clone git://github.com/rictic/code_swarm.git

Subversion

The main code_swarm repository however is on Google Code: http://codeswarm.googlecode.com/

To get the source, see http://code.google.com/p/codeswarm/source/checkout

Running code_swarm

With Java and ant installed, and the code_swarm source downloaded, running it on a git, svn, or hg based project is easy:

  • Add code_swarm/bin to your PATH. A line like export PATH=$PATH:/path/to/code_swarm/bin in your ~/.profile or ~/.bash_profile should do it
  • cd project/to/visualize
  • code_swarm

Other ways of running code_swarm

Running manually

While code_swarm was developed to visualize source code repositories, its input format is generic, and some have experimented with visualizing other collaborative environments, including user activity on wikis and freebase.com.

code_swarm can be invoked by pointing it at a project config file, which contains a number of options for customizing the visualization. The config file must point at a repository xml file, which contains a set of events, which each describe a file, edited by a person, at a specific time. The time is specified as the number of milliseconds since January 1st, 1970.

Example config files can be seen in data/sample.config and bin/config.template

To invoke code_swarm with a given config file, use ./run.sh path/to/project.config

SVN GUI

For an experimental GUI where you can specify a svn url to visualize:

  • cd path/to/code_swarm
  • ant run

Other commands:

  • ant will build, but not run the project
  • ant all will also generate Javadoc HTML documentation
  • ant clean will delete all intermediate and binary files

More Repositories

1

processing-tower-defense

A proof of concept tower defense game written in Processing.js
JavaScript
67
star
2

Mario-AI-Competition-2009

A competition about learning, or otherwise developing, the best controller (agent) for a version of Super Mario Bros.
Java
32
star
3

bash_profile

My bash profile, full of the little aliases and shortcuts that make life worth living
Shell
25
star
4

airlock.chat

An exercise in learning wasm and rust and game development by cloning the game among us
Rust
16
star
5

generatejs

Generates highly varied syntactically valid javascript
Haskell
9
star
6

tiny-os

project for an OS course
C
5
star
7

test-parser

A ruby library and command line tool for parsing the results of various testing systems, including rpsec, junit, pyunit, cutest, quickCheck and more.
Ruby
5
star
8

twerp-h

A simple, stackless lisp interpreter
Haskell
5
star
9

sutsis

A lightning-fast lojban dictionary
JavaScript
4
star
10

Bitcoin-estimator

Playing with writing a javascript constraint network (and also an estimator of some bitcoin values)
JavaScript
4
star
11

gunit

Testing tool for ANTLR grammars
Java
3
star
12

sync-monitor

A cross-platform program to watch for filesystem changes and report them on command
3
star
13

simple-delphi

A simple python re-implementation of freebase-delphi
JavaScript
3
star
14

query-recommender

monitors queries to Openbook and provides a few stats utilities
JavaScript
3
star
15

LegislationHopper

A hopper for Nomic that's responsible for choosing what legislation will be next proposed
Python
2
star
16

launchdate

App Engine app for tracking release dates of things you're interested in
Python
2
star
17

refresher

a simple tool that magically refreshes your html when you make an edit
JavaScript
2
star
18

ANTLR-Precedence-Climbing

An ANTLR preprocessor that adds precedence climbing expression parsing to ANTLR
Java
2
star
19

hypnos

simple reminder / events bot for discord
Rust
2
star
20

lolwiki-scraper

A very simple and hacky crawler for the league of legends wiki
JavaScript
2
star
21

Providence

an experiment with visualizing program execution, given total knowledge
Python
2
star
22

web-template-workbench

An html template system for exploring emerging standards
TypeScript
1
star
23

advent-of-code-2021

just a little rust AOC 2021 repo
HTML
1
star
24

fuzz-complete

TypeScript
1
star
25

Sublime-Text-Configs

My sublime text config dir - less broken
1
star
26

serviceworker-notification-demo

HTML
1
star
27

JS-for-Pythons

A presentation on coding in Javascript for folks familiar with Python
JavaScript
1
star