diff options
Diffstat (limited to 'doc/news')
-rw-r--r-- | doc/news/code_swarm.mdwn | 34 | ||||
-rw-r--r-- | doc/news/code_swarm/code_swarm.config | 51 | ||||
-rwxr-xr-x | doc/news/code_swarm/code_swarm_log.pl | 25 | ||||
-rw-r--r-- | doc/news/code_swarm/screenshot.png | bin | 0 -> 64320 bytes |
4 files changed, 110 insertions, 0 deletions
diff --git a/doc/news/code_swarm.mdwn b/doc/news/code_swarm.mdwn new file mode 100644 index 000000000..6fab03766 --- /dev/null +++ b/doc/news/code_swarm.mdwn @@ -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. diff --git a/doc/news/code_swarm/code_swarm.config b/doc/news/code_swarm/code_swarm.config new file mode 100644 index 000000000..eea55debd --- /dev/null +++ b/doc/news/code_swarm/code_swarm.config @@ -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 diff --git a/doc/news/code_swarm/code_swarm_log.pl b/doc/news/code_swarm/code_swarm_log.pl new file mode 100755 index 000000000..25e0a67b0 --- /dev/null +++ b/doc/news/code_swarm/code_swarm_log.pl @@ -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; +} diff --git a/doc/news/code_swarm/screenshot.png b/doc/news/code_swarm/screenshot.png Binary files differnew file mode 100644 index 000000000..1178e3f64 --- /dev/null +++ b/doc/news/code_swarm/screenshot.png |