13:48:53 <sgallagh> #startmeeting Gource: Telling Stories via Source Code
13:48:54 <zodbot> Meeting started Sat Aug 10 13:48:53 2013 UTC.  The chair is sgallagh. Information about MeetBot at http://wiki.debian.org/MeetBot.
13:48:54 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
13:49:30 <sgallagh> Hi, my name is Suzanne Reed
13:49:38 <mizmo> #meetingname Gource: Telling Stories via Source Code | Live stream: http://ur1.ca/ezp2r
13:49:38 <zodbot> The meeting name has been set to 'gource:_telling_stories_via_source_code_|_live_stream:_http://ur1.ca/ezp2r'
13:49:43 <sgallagh> My presentation is Gource: Storytelling via source code
13:49:58 <sgallagh> ah, go ahead mizmo. Didn't realize you were covering htis
13:50:03 <mizmo> i'm not
13:50:04 <mizmo> sorry
13:50:07 <mizmo> just trying to fix /topic
13:50:07 <sgallagh> oh
13:50:15 <mizmo> #topic Gource: Telling Stories via Source Code | Live stream: http://ur1.ca/ezp2r
13:50:41 <mizmo> #meetingtopic Gource: Telling Stories via Source Code | Live stream: http://ur1.ca/ezp2r
13:50:45 <mizmo> #meetingname Gource
13:50:45 <zodbot> The meeting name has been set to 'gource'
13:51:43 <sgallagh> Gource itself is a version-control visualization tool
13:52:03 <sgallagh> Takes the code from a repo and visualizes it in nodes/leaves that are files and branches that are directories
13:52:13 <sgallagh> We can play with it to control the results
13:52:17 <sgallagh> Works with non-git
13:52:26 <sgallagh> Gource can parse a git repo on its own or use custom logs
13:52:45 <sgallagh> If you just run gource on a repo, you're gonna get a kind of information, colors, avatars, names
13:52:55 <sgallagh> Using custom logs, we can affect how the story is written
13:53:05 <sgallagh> The tool we use to do that is caolled log_generator
13:53:16 <sgallagh> Multi-gource is combinming multiple repos
13:53:33 <sgallagh> If you're interested in openstack you can go to their webpage and clone all of their repos
13:53:44 <sgallagh> It will stitch them together and create a fake gitlog that can be used instead
13:53:52 <sgallagh> That way gource can parse it as a single repo
13:53:56 <sgallagh> colorize is another tool
13:54:15 <sgallagh> We can use the colorizing to change the colors to match your organization or show the different projects being stitched together
13:54:22 <sgallagh> Also used in user-highlighting
13:54:31 <sgallagh> Show all the commits written by Suzanne in green
13:54:41 <sgallagh> Branches by year
13:54:53 <sgallagh> Prepends a date ahead of a directory so that each new branch is a new year of the project
13:54:58 <sgallagh> Let's generate some logs
13:55:27 <sgallagh> A regular git log would just look like "a commit, author ,date and commit message"
13:55:36 <sgallagh> And yuou can adjust and reparse it in log-generator
13:55:47 <sgallagh> Use a little shell code to generate the log to add the name status
13:56:04 <sgallagh> Tells us if you've added, modified or removed a file which changes the color
13:56:12 <sgallagh> Settings can be controlled by either a commandline or a config file
13:56:20 <sgallagh> On the command-line, options are just given with other optoipns
13:56:30 <sgallagh> A config file in gource looks a little something like this.
13:56:42 <sgallagh> Everything in brackets is a comment, everything else affects the story
13:57:16 <sgallagh> Auto-skipping seconds when nothing happens speeds things up
13:57:24 <sgallagh> Changing seconds per day is faster
13:57:31 <sgallagh> You can hide many things like filenames
13:57:41 <sgallagh> Bloom is the aura around visualizations. Can control intensity
13:57:50 <sgallagh> We found the cleaner look (removed) was better overall
13:58:08 <sgallagh> Character development: custom avatars are how to highlight users and groups
13:58:14 <sgallagh> We created avatar-gen to help create them
13:58:29 <sgallagh> Gource handles the avatars with an individual file per avatar
13:58:38 <sgallagh> Users need to match git username exactly to be the same avatar
13:58:52 <sgallagh> The avatar generator uses the email domain to map the avatars
13:58:59 <sgallagh> Red Hat->Shadowman, etc.
13:59:04 <sgallagh> Gravatar can also be used.
13:59:13 <sgallagh> "And they look pretty sweet"
13:59:26 <sgallagh> To publish visualization, a ppm stream is piped into ffmpeg
13:59:38 <sgallagh> <describing command in slides>
13:59:47 <sgallagh> This is the best configuration that I've found
13:59:52 <sgallagh> Most consistently good results
14:00:02 <sgallagh> Github repo has other options, as does Gource docs
14:00:16 <sgallagh> Idea of what some of these things do:
14:00:26 <sgallagh> Look at the yum log
14:00:31 <sgallagh> This is a custom log
14:00:47 <sgallagh> <describes layout>
14:00:54 <sgallagh> Different users are getting different colors
14:00:58 <sgallagh> Part of user highlighting
14:01:14 <sgallagh> We chose to publish yum as our first major story
14:01:35 <sgallagh> I started this beforehand, and I though that it was a way to show the impact of Seth Vidal
14:01:46 <sgallagh> So we highlighted his commits and put a special emphasis on his work
14:01:53 <sgallagh> <demo>
14:02:06 <sgallagh> Each branch is a new year
14:02:13 <sgallagh> Right now ,all commits are Seth's (blue)
14:02:22 <sgallagh> Other commits show up as white, but right now you can't tell
14:02:29 <sgallagh> Red Hat/Fedora joins in
14:02:40 <sgallagh> As the community got more involved, it became a stream of people working on the project.
14:02:51 <sgallagh> Letting demo run
14:02:58 <sgallagh> (Looks pretty excellent -- Steve)
14:03:20 <sgallagh> Yum looks best broken up by year
14:03:28 <sgallagh> Because it has a lot of work but a small nuber of files
14:03:59 <sgallagh> A couple other things we played with a lot: timing
14:04:07 <sgallagh> Seconds per day vs overall speedup by time
14:04:20 <sgallagh> Most config files can be slightlt modified to fit another project
14:04:29 <sgallagh> But all need tweaking because each story is different and unique
14:04:32 <sgallagh> <demo ends>
14:04:49 <sgallagh> It's also on youtube if you're interested in seeing it
14:04:57 <sgallagh> Higher-quality copy being published soon
14:05:10 <sgallagh> <acknowledgements>
14:05:18 <sgallagh> (From the slide)
14:05:51 <sgallagh> That is Gource.
14:05:54 <sgallagh> Are there any questions?
14:06:08 <sgallagh> "When working on this project, have you been looking at other similar projects?"
14:06:20 <sgallagh> I know there are some other projects. I myself haven't worked with them.
14:06:44 <sgallagh> One really cool one looked like a pong game for your website/server. If the server missed a request, the paddle missed.
14:06:46 <sgallagh> Logstalgia
14:06:53 <sgallagh> Demo of it on Fedora Infra
14:07:17 <sgallagh> <lmacken> lewk.org/logstalgia.webm
14:07:46 <sgallagh> <buffering>
14:07:56 <sgallagh> Also written by Andrew Caldwell
14:08:05 <sgallagh> Always open to input and requests for features
14:08:18 <sgallagh> "Do you have any videos of OpenShift or OpenStack stuff?"
14:08:26 <sgallagh> I haven't gotten it running. Overly-massive
14:09:03 <sgallagh> "Are there tutorials on how to set up a visualization?"
14:09:09 <sgallagh> The documentation is very good
14:09:20 <sgallagh> Some of the descriptions can be misleading
14:09:31 <sgallagh> "make the background transparent" is not what it sounds like
14:09:34 <sgallagh> Some are confusing
14:09:43 <sgallagh> But if you play around, you can get a good idea of what you're doing
14:09:56 <sgallagh> "Example configs?"
14:10:03 <sgallagh> Yes, I have a bunch that I have pushed
14:10:13 <sgallagh> I'm going to do a quick screen demo that I couldn't actually get to work
14:10:19 <sgallagh> I have it written, should be available soon
14:10:22 <sgallagh> "Github location?"
14:10:33 <sgallagh> http://github.com/gourciferous
14:10:46 <sgallagh> http://github.com/FOSSRIT/gourciferous
14:11:05 <sgallagh> "If someone wanted to contribute, where should they start?"
14:11:14 <sgallagh> Add sound/music? (audience)
14:11:22 <sgallagh> I wonder if that should be Gource or an extension
14:11:34 <sgallagh> As for things to add: We're working on a GUI but that's having troublke
14:11:42 <sgallagh> If anyone wants to fix glade, that would be a good place to start
14:11:51 <sgallagh> We also have a couple template ideas on the glade branch
14:12:02 <sgallagh> There's a couple pictures/paper mockups that we're transferring into glade
14:12:09 <sgallagh> That's definitely a tool that would be most helpful to everyone
14:12:18 <sgallagh> "Can we see one of the mock-ups?"
14:12:22 <sgallagh> I can probably pull it up.
14:13:11 <sgallagh> This is what I'm working on so far
14:14:37 <sgallagh> Avatar generator does the same thing gource does
14:14:54 <sgallagh> It creates avatars for email domains and then a filesystem page
14:15:04 <sgallagh> But its default is to pull avatars from Gravatar
14:17:00 <sgallagh> Gource can do defaults and overrides on the gravatar images
14:17:14 <sgallagh> You can change any of the files in the per-entity config file
14:18:05 <sgallagh> "It would be cool in the future if we could give it a github organization and have it clone all repos in the org"
14:18:19 <sgallagh> "How long does it take to run something like the Seth/Yum video?"
14:18:24 <sgallagh> Rendering it took about three hours
14:18:36 <sgallagh> Gource does have to render each picture as it goes along, so it's very time-consuming
14:19:22 <sgallagh> "Xen was experimenting with the OpenShift organization. We're still trying to figure out the benchmarking for how many repos we can handle at once"
14:19:34 <sgallagh> "Just running Gource will bog down the box, let alone rendering"
14:19:41 <sgallagh> Rendering is not a fun time
14:19:49 <sgallagh> (Quotes above were Remy)
14:20:19 <sgallagh> Gource does not like handling large number of file additions at once. Heavy load.
14:20:55 <sgallagh> Rendering requires a good video card
14:22:35 <sgallagh> <vigorous applause>
14:22:40 <sgallagh> Enjoy the rest of Flock!
14:22:44 <sgallagh> #endmeeting