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