announce
parent
810a355308
commit
5e28259642
|
@ -0,0 +1,34 @@
|
||||||
|
I've produced a [code_swarm](http://vis.cs.ucdavis.edu/~ogawa/codeswarm/)
|
||||||
|
visualization of the first 2+ years of ikiwiki's commit history.
|
||||||
|
|
||||||
|
[[img screenshot.png size="320x240"]]
|
||||||
|
|
||||||
|
* [50 MB ogg vorbis](http://kitenet.net/~joey/screencasts/ikiwiki_swarm.ogg)
|
||||||
|
* high quality version not yet uploaded
|
||||||
|
|
||||||
|
PS, while I'm posting links to videos, here's a
|
||||||
|
[video of a lightning talk about ikiwiki](http://log.hugoschotman.com/hugo/2008/07/webtuesday-2008-07-08-lightning-talk-by-axel-beckert-about-ikiwiki.html).
|
||||||
|
|
||||||
|
--[[Joey]]
|
||||||
|
|
||||||
|
### notes
|
||||||
|
|
||||||
|
Interesting things to watch for:
|
||||||
|
|
||||||
|
* Initial development of ikiwiki to the point it was getting web edits.
|
||||||
|
(First 2 seconds of video!)
|
||||||
|
* Introduction to plugin support, and later, plugin changes dominating code
|
||||||
|
changes.
|
||||||
|
* Introduction of openid support and the resulting *swarm* of openid
|
||||||
|
commenters.
|
||||||
|
* Switch to git, my name in the logs changes from "joey" to "Joey Hess",
|
||||||
|
and there are more code commits directly from others.
|
||||||
|
|
||||||
|
Getting the commit log was tricky because every web commit is in there too,
|
||||||
|
so it has to deal with things like IPs and openids. The [[code_swarm_log.pl]]
|
||||||
|
script will munge the log to handle these, and it was configured with
|
||||||
|
[[code_swarm.cfg]].
|
||||||
|
|
||||||
|
Video editing by kino, ffmpeg, ffmpeg2theora, and too many hours of pain.
|
||||||
|
|
||||||
|
Audio by the Punch Brothers.
|
|
@ -0,0 +1,51 @@
|
||||||
|
# This is a sample configuration file for code_swarm for ikiwiki
|
||||||
|
|
||||||
|
# Frame width
|
||||||
|
Width=640
|
||||||
|
|
||||||
|
# Frame height
|
||||||
|
Height=480
|
||||||
|
|
||||||
|
# Input file
|
||||||
|
InputFile=data/sample-repevents.xml
|
||||||
|
|
||||||
|
# Particle sprite file
|
||||||
|
ParticleSpriteFile=particle.png
|
||||||
|
|
||||||
|
# Project time per frame
|
||||||
|
MillisecondsPerFrame=21600000
|
||||||
|
#MillisecondsPerFrame=43200000
|
||||||
|
|
||||||
|
# Background in R,G,B
|
||||||
|
Background=0,0,0
|
||||||
|
|
||||||
|
# Color assignment rules
|
||||||
|
# Keep in order, do not skip numbers. Numbers start
|
||||||
|
# at 1.
|
||||||
|
#
|
||||||
|
# Pattern: "Label", "regex", R,G,B R,G,B
|
||||||
|
# Label is optional. If it is omitted, the regex
|
||||||
|
# will be used.
|
||||||
|
#
|
||||||
|
|
||||||
|
ColorAssign1="Discussion (blue)",".*discussion.*", 0,0,255, 0,0,255
|
||||||
|
ColorAssign2="Docs (green)",".*\.mdwn", 255,0,0, 255,0,0
|
||||||
|
ColorAssign3="Plugins (orange)",".*Plugin/.*", 255,116,0, 255,116,0
|
||||||
|
ColorAssign4="Code (red)",".*\.p[ml]", 0,255,0, 0,255,0
|
||||||
|
|
||||||
|
# Save each frame to an image?
|
||||||
|
TakeSnapshots=true
|
||||||
|
|
||||||
|
# Where to save each frame
|
||||||
|
SnapshotLocation=frames/code_swarm-#####.png
|
||||||
|
|
||||||
|
# Create a glow around names? (Runs slower)
|
||||||
|
NameHalos=false
|
||||||
|
|
||||||
|
# Natural distance of files to people
|
||||||
|
EdgeLength=40
|
||||||
|
|
||||||
|
debug=false
|
||||||
|
|
||||||
|
# OpenGL is experimental. Use at your own risk.
|
||||||
|
UseOpenGL=false
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# Munge a git log into log for code_swarm.
|
||||||
|
# Deals with oddities of ikiwiki commits, like web commits, and openids.
|
||||||
|
use IkiWiki;
|
||||||
|
use IkiWiki::Plugin::openid;
|
||||||
|
|
||||||
|
my $sep='-' x 72;
|
||||||
|
$/=$sep."\n";
|
||||||
|
|
||||||
|
my %config=IkiWiki::defaultconfig();
|
||||||
|
|
||||||
|
foreach (`git-log --name-status --pretty=format:'%n$sep%nr%h | %an | %ai (%aD) | x lines%n%nsubject: %s%n'`) {
|
||||||
|
my ($subject)=m/subject: (.*)\n/m;
|
||||||
|
if ($subject=~m/$config{web_commit_regexp}/) {
|
||||||
|
my $user = defined $2 ? "$2" : "$3";
|
||||||
|
my $oiduser = IkiWiki::openiduser($user);
|
||||||
|
if (defined $oiduser) {
|
||||||
|
$oiduser=~s/ \[.*\]//; # too much clutter for code_swarm
|
||||||
|
$user=$oiduser;
|
||||||
|
}
|
||||||
|
s/ \| [^|]+ \| / | $user | /;
|
||||||
|
}
|
||||||
|
s/subject: (.*)\n\n//m;
|
||||||
|
print;
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
Loading…
Reference in New Issue