Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
VISUALIZE YOUR CODE REPOS
AND MORE WITH GOURCE
Dawn M. Foster
@geekygirldawn	
  
dawn@dawnfoster.com	
  
fastwonderblog.co...
WHOAMI
Geek, traveler, reader
Community and open source consultant
20+ year tech career. Past 15 years
doing community & o...
AGENDA
•Basic Options and Repositories
•Speed / Dates
•Appearance
•Custom Log Format
•Mailing Lists
•Bugs
•Additional Opti...
Image from WebOps.com
GETTING STARTED
Easy to run
$ gource /path/to/repo
So many options
$ gource -H
README in repo has 

links to useful info
g...
DATES AND SPEED
Dates
--start-date '2014-01-01'

--stop-date '2015-08-08'
Auto Skip
-a 1
Seconds Per Day
-s 0.5
github.com...
ADD USER AVATARS
--user-image-dir ~/gitrepos/linuxcon_2016/images/
Example: Dates and Speed / Add User Avatars
gource --st...
Image from WebOps.com
MAKE IT LOOK GREAT
--date-format "%A, %d %B %Y"
--title "MailingListStats"
--font-size 22 

--font-colour FF9900
--logo im...
EXAMPLES: MAKE IT LOOK GREAT
Using Logo and Title
gource -a 1 -s .3 --date-format "%A, %d %B %Y" --font-size 22 --font-col...
Image from WebOps.com
CAPTIONS
Pipe separated file: unixtime|description
1373850061|Kris begins work on the website

1375750861|Dawn fixes some t...
DISPLAY ADDITIONAL INFO
Key - filename extensions
--key
Example
gource -a 1 -s .3 --key --caption-file ~/gitrepos/linuxcon_...
Image from WebOps.com
CUSTOM LOG FORMAT
Pipe Separated File
timestamp - A unix timestamp of when the update occured.

username - The name of the...
I 💖 METRICS GRIMOIRE
MailingListStats aka MLStats
CVSAnalY - repos
Bicho - bugs
More
Photo by Bitergia
http://metricsgrimo...
MAILING LIST EXAMPLE:
a) Extract data using mlstats / database queries
b) Generate Gource custom format (pipe sep file)
uni...
MAILING LIST EXAMPLE:
a) Extract data using mlstats / database queries
SELECT unix_timestamp(DATE_ADD(m.first_date, 

inte...
Image from WebOps.com
BUG EXAMPLE:
a) Extract data using Bicho / database queries
b) Generate Gource custom format (pipe sep file)
unixtime|user-...
Image from WebOps.com
ADDITIONAL OPTIONS
While Gource is Running
Space bar to pause

Ctrl + / - to speed up or slow down

Use arrow keys to move...
GENERATING VIDEO
Record to show later - great for large repos
Caveat: This took 5-10 min on MacBook Air for 31 sec video
M...
PhD Student
Centre for Business Network Analysis
University of Greenwich
THANK YOU
Consultant
Open Source / Community Buil...
Upcoming SlideShare
Loading in …5
×

Visualize Your Code Repos and More with Gource

497 views

Published on

Why settle for boring numbers and static graphs to describe your open source project when you can dynamically display the movements and activity within your project? Gource is an amazing and flexible tool that can be used to display activity from your repositories using a video visualization that people love!

With this flexibility comes a dizzying array of options and configurations. This talk will show some of the more useful options within Gource to help you select the ones that will work best for your project. Gource can also be used to display non-repository information (bug trackers or mailing lists) using the custom log format. Other topics include related tools, generating video files, and more.

The goal is for you to walk away from this talk with ideas and techniques for how to create awesome videos showing the activity within your open source projects and communities.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Visualize Your Code Repos and More with Gource

  1. 1. VISUALIZE YOUR CODE REPOS AND MORE WITH GOURCE Dawn M. Foster @geekygirldawn   dawn@dawnfoster.com   fastwonderblog.com Community  and  Open   Source  Consultant   The  Scale  Factory PhD  Student   University  of  Greenwich   London,  UK
  2. 2. WHOAMI Geek, traveler, reader Community and open source consultant 20+ year tech career. Past 15 years doing community & open source 
 (Intel, Jive, Puppet Labs, etc.) PhD student at University of Greenwich researching Linux kernel Photos by Josh Bancroft, Don Park
  3. 3. AGENDA •Basic Options and Repositories •Speed / Dates •Appearance •Custom Log Format •Mailing Lists •Bugs •Additional Options / Video github.com/geekygirldawn/linuxcon_2016
  4. 4. Image from WebOps.com
  5. 5. GETTING STARTED Easy to run $ gource /path/to/repo So many options $ gource -H README in repo has 
 links to useful info github.com/geekygirldawn/linuxcon_2016
  6. 6. DATES AND SPEED Dates --start-date '2014-01-01'
 --stop-date '2015-08-08' Auto Skip -a 1 Seconds Per Day -s 0.5 github.com/geekygirldawn/linuxcon_2016 Photo by Ozzy Delaney
  7. 7. ADD USER AVATARS --user-image-dir ~/gitrepos/linuxcon_2016/images/ Example: Dates and Speed / Add User Avatars gource --start-date '2014-01-01' --stop-date '2015-08-08' -a 1 -s .05 
 --user-image-dir ~/gitrepos/linuxcon_2016/images/ ~/gitrepos/MailingListStats/ github.com/geekygirldawn/linuxcon_2016
  8. 8. Image from WebOps.com
  9. 9. MAKE IT LOOK GREAT --date-format "%A, %d %B %Y" --title "MailingListStats" --font-size 22 
 --font-colour FF9900 --logo images/bitergia-logo.png --logo images/bitergia-banner.png github.com/geekygirldawn/linuxcon_2016
  10. 10. EXAMPLES: MAKE IT LOOK GREAT Using Logo and Title gource -a 1 -s .3 --date-format "%A, %d %B %Y" --font-size 22 --font-colour FF9900 --title "MailingListStats aka mlstats" 
 --logo ~/gitrepos/linuxcon_2016/images/bitergia-logo.png 
 ~/gitrepos/MailingListStats/ Using banner image logo to replace title gource -a 1 -s .3 --date-format "%A, %d %B %Y" --font-size 22 --font-colour FF9900 --logo ~/gitrepos/linuxcon_2016/images/bitergia-banner.png 
 ~/gitrepos/MailingListStats/ github.com/geekygirldawn/linuxcon_2016
  11. 11. Image from WebOps.com
  12. 12. CAPTIONS Pipe separated file: unixtime|description 1373850061|Kris begins work on the website
 1375750861|Dawn fixes some typos
 1379120461|Richard makes everything look nice Options --caption-file linuxcon_2016/data/captions.log
 --caption-duration 4
 --caption-colour FF9900
 --caption-size 20 github.com/geekygirldawn/linuxcon_2016
  13. 13. DISPLAY ADDITIONAL INFO Key - filename extensions --key Example gource -a 1 -s .3 --key --caption-file ~/gitrepos/linuxcon_2016/data/captions.log --caption-duration 4 --caption-colour FF9900 --caption-size 20 
 ~/gitrepos/cfgmgmtcamp.github.io/ github.com/geekygirldawn/linuxcon_2016
  14. 14. Image from WebOps.com
  15. 15. CUSTOM LOG FORMAT Pipe Separated File timestamp - A unix timestamp of when the update occured.
 username - The name of the user who made the update.
 type - Update type - (A)dded, (M)odified or (D)eleted.
 file - Path of the file.
 color - Color for the file in hex (FFFFFF) format (Optional) Examples: 1275543595|andrew|A|src/main.cpp
 1275543700|bob|M|src/main.cpp github.com/acaudwell/Gource/wiki/Custom-Log-Format
  16. 16. I 💖 METRICS GRIMOIRE MailingListStats aka MLStats CVSAnalY - repos Bicho - bugs More Photo by Bitergia http://metricsgrimoire.github.io/
  17. 17. MAILING LIST EXAMPLE: a) Extract data using mlstats / database queries b) Generate Gource custom format (pipe sep file) unixtime|user-email_sender|A|new
 unixtime|user-email_sender|M|user-in_response_to c) Run Gource $ gource -i 10 --max-user-speed 100 -a 1 --highlight-users 
 mailing_list_custom.log OR) Run linuxcon.py from my linuxcon_2016 repo github.com/geekygirldawn/linuxcon_2016
  18. 18. MAILING LIST EXAMPLE: a) Extract data using mlstats / database queries SELECT unix_timestamp(DATE_ADD(m.first_date, 
 interval m.first_date_tz second)) 
 AS unix_date, mp.email_address AS sender, 
 (SELECT mp2.email_address FROM messages m2, messages_people mp2 
 WHERE m2.is_response_of=m.is_response_of 
 AND mp2.message_id=m2.is_response_of limit 1) AS receiver 
 FROM messages_people mp, messages m 
 WHERE YEAR(m.first_date)=2015 AND MONTH(m.first_date)=1 
 AND mp.message_id=m.message_id; github.com/geekygirldawn/linuxcon_2016
  19. 19. Image from WebOps.com
  20. 20. BUG EXAMPLE: a) Extract data using Bicho / database queries b) Generate Gource custom format (pipe sep file) unixtime|user-bug-submitter|A|module/bug-number|FFFFFF
 unixtime|user-bug-modifier|M|module/bug-number|FFFFFF c) Run Gource $ gource -a 1 -s 1 --highlight-users ~/gitrepos/linuxcon_2016/data/bugs_custom.log github.com/geekygirldawn/linuxcon_2016
  21. 21. Image from WebOps.com
  22. 22. ADDITIONAL OPTIONS While Gource is Running Space bar to pause
 Ctrl + / - to speed up or slow down
 Use arrow keys to move camera
 Use timeline widget to move in time
 K to show / hide the file type key Additional Display Options Loop or full screen -loop
 -f github.com/geekygirldawn/linuxcon_2016
  23. 23. GENERATING VIDEO Record to show later - great for large repos Caveat: This took 5-10 min on MacBook Air for 31 sec video My Example: gource -f --logo images/bitergia_logo_sm.png 
 --title "MailingListStats AKA mlstats"
 --key --start-date '2014-01-01' --user-image-dir images -a 1 -s .05
 --path ../MailingListStats -o - | ffmpeg -y -r 60 -f image2pipe 
 -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p 
 -crf 1 -threads 0 -bf 0 gource.mp4 github.com/geekygirldawn/linuxcon_2016
  24. 24. PhD Student Centre for Business Network Analysis University of Greenwich THANK YOU Consultant Open Source / Community Building The Scale Factory Dawn Foster @geekygirldawn dawn@fastwonder.com fastwonderblog.com

×