SlideShare a Scribd company logo
1 of 24
Download to read offline
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
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
AGENDA
•Basic Options and Repositories
•Speed / Dates
•Appearance
•Custom Log Format
•Mailing Lists
•Bugs
•Additional Options / Video
github.com/geekygirldawn/linuxcon_2016
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
github.com/geekygirldawn/linuxcon_2016
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
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
Image from WebOps.com
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
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
Image from WebOps.com
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 3

--caption-colour FF9900

--caption-size 20
github.com/geekygirldawn/linuxcon_2016
DISPLAY ADDITIONAL INFO
Key - filename extensions
--key
Example
gource -a 1 -s .3 --key --caption-file ~/gitrepos/linuxcon_2016/data/captions.log
--caption-duration 3 --caption-colour FF9900 --caption-size 20 

~/gitrepos/cfgmgmtcamp.github.io/
github.com/geekygirldawn/linuxcon_2016
Image from WebOps.com
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
I 💖 GRIMOIRE
MailingListStats aka MLStats
CVSAnalY - repos
Bicho - bugs
Sortinghat
More
Photo by Bitergia
http://grimoirelab.github.io/ http://metricsgrimoire.github.io/
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
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
Image from WebOps.com
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
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 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
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
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

More Related Content

Similar to Visualize Your Code Repos and More with Gource: FOSDEM 2017

Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014
Pebble Technology
 

Similar to Visualize Your Code Repos and More with Gource: FOSDEM 2017 (20)

Network Analysis: People and Open Source Communities - LinuxCon Seattle and D...
Network Analysis: People and Open Source Communities - LinuxCon Seattle and D...Network Analysis: People and Open Source Communities - LinuxCon Seattle and D...
Network Analysis: People and Open Source Communities - LinuxCon Seattle and D...
 
Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017Getting started with Go - Florin Patan - Codemotion Rome 2017
Getting started with Go - Florin Patan - Codemotion Rome 2017
 
Network Analysis: Tech Evangelism London Meetup
Network Analysis: Tech Evangelism London MeetupNetwork Analysis: Tech Evangelism London Meetup
Network Analysis: Tech Evangelism London Meetup
 
The State of Go - Andrew Gerrand
The State of Go - Andrew Gerrand The State of Go - Andrew Gerrand
The State of Go - Andrew Gerrand
 
Getting started with go - Florin Patan - Codemotion Milan 2016
Getting started with go - Florin Patan - Codemotion Milan 2016Getting started with go - Florin Patan - Codemotion Milan 2016
Getting started with go - Florin Patan - Codemotion Milan 2016
 
G3 talk rld_2
G3 talk rld_2G3 talk rld_2
G3 talk rld_2
 
Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014
 
Arfon-Smith-feb25
Arfon-Smith-feb25Arfon-Smith-feb25
Arfon-Smith-feb25
 
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -EssentialsJAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
 
Infra@LINE_Chris
Infra@LINE_ChrisInfra@LINE_Chris
Infra@LINE_Chris
 
Migrating to Git: Rethinking the Commit
Migrating to Git:  Rethinking the CommitMigrating to Git:  Rethinking the Commit
Migrating to Git: Rethinking the Commit
 
Introduction to go
Introduction to goIntroduction to go
Introduction to go
 
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
 
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
 
maksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your cimaksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your ci
 
EdTechJoker Spring 2020 - Lecture 2 - Git
EdTechJoker Spring 2020 - Lecture 2 - GitEdTechJoker Spring 2020 - Lecture 2 - Git
EdTechJoker Spring 2020 - Lecture 2 - Git
 
Community based software development: The GRASS GIS project
Community based software development: The GRASS GIS projectCommunity based software development: The GRASS GIS project
Community based software development: The GRASS GIS project
 

More from Dawn Foster

Measuring Project Health at VMware
Measuring Project Health at VMwareMeasuring Project Health at VMware
Measuring Project Health at VMware
Dawn Foster
 
Building Community for your Company’s OSS Projects
Building Community for your Company’s OSS ProjectsBuilding Community for your Company’s OSS Projects
Building Community for your Company’s OSS Projects
Dawn Foster
 
Building Community for your Company’s OSS Project
Building Community for your Company’s OSS ProjectBuilding Community for your Company’s OSS Project
Building Community for your Company’s OSS Project
Dawn Foster
 

More from Dawn Foster (20)

CHAOSS Metrics Overview and Examples
CHAOSS Metrics Overview and ExamplesCHAOSS Metrics Overview and Examples
CHAOSS Metrics Overview and Examples
 
Be a Good Corporate Citizen in Kubernetes
Be a Good Corporate Citizen in KubernetesBe a Good Corporate Citizen in Kubernetes
Be a Good Corporate Citizen in Kubernetes
 
Overcoming Imposter Syndrome to Become a Conference Speaker!
Overcoming Imposter Syndrome to Become a Conference Speaker!Overcoming Imposter Syndrome to Become a Conference Speaker!
Overcoming Imposter Syndrome to Become a Conference Speaker!
 
How to Be a Good Corporate Citizen in Open Source
How to Be a Good Corporate Citizen in Open SourceHow to Be a Good Corporate Citizen in Open Source
How to Be a Good Corporate Citizen in Open Source
 
Open Source Collaboration and Companies: Finding the Right Balance
Open Source Collaboration and Companies: Finding the Right BalanceOpen Source Collaboration and Companies: Finding the Right Balance
Open Source Collaboration and Companies: Finding the Right Balance
 
Navigating Open Source Risk
Navigating Open Source RiskNavigating Open Source Risk
Navigating Open Source Risk
 
Measuring Project Health at VMware
Measuring Project Health at VMwareMeasuring Project Health at VMware
Measuring Project Health at VMware
 
Navigating Open Source Risk
Navigating Open Source RiskNavigating Open Source Risk
Navigating Open Source Risk
 
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company AffiliationCollaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
 
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company AffiliationCollaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
 
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company AffiliationCollaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
 
Collaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company AffiliationCollaborative Leadership: Governance Beyond Company Affiliation
Collaborative Leadership: Governance Beyond Company Affiliation
 
Is this Open Source Project Healthy or Lifeless?
Is this Open Source Project Healthy or Lifeless?Is this Open Source Project Healthy or Lifeless?
Is this Open Source Project Healthy or Lifeless?
 
Collaboration in Linux Kernel Mailing Lists
Collaboration in Linux Kernel Mailing Lists Collaboration in Linux Kernel Mailing Lists
Collaboration in Linux Kernel Mailing Lists
 
Be a Good Corporate Citizen in Kubernetes
Be a Good Corporate Citizen in KubernetesBe a Good Corporate Citizen in Kubernetes
Be a Good Corporate Citizen in Kubernetes
 
Being a Good Corporate Citizen in Open Source
Being a Good Corporate Citizen in Open SourceBeing a Good Corporate Citizen in Open Source
Being a Good Corporate Citizen in Open Source
 
Building Community for your Company’s OSS Projects
Building Community for your Company’s OSS ProjectsBuilding Community for your Company’s OSS Projects
Building Community for your Company’s OSS Projects
 
Building Community for your Company’s OSS Project
Building Community for your Company’s OSS ProjectBuilding Community for your Company’s OSS Project
Building Community for your Company’s OSS Project
 
How to be a terrible hiring manager
How to be a terrible hiring managerHow to be a terrible hiring manager
How to be a terrible hiring manager
 
A week in the Life of Kubernetes
A week in the Life of KubernetesA week in the Life of Kubernetes
A week in the Life of Kubernetes
 

Recently uploaded

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

Visualize Your Code Repos and More with Gource: FOSDEM 2017

  • 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. 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. AGENDA •Basic Options and Repositories •Speed / Dates •Appearance •Custom Log Format •Mailing Lists •Bugs •Additional Options / Video github.com/geekygirldawn/linuxcon_2016
  • 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. 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. 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
  • 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. 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
  • 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 3
 --caption-colour FF9900
 --caption-size 20 github.com/geekygirldawn/linuxcon_2016
  • 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 3 --caption-colour FF9900 --caption-size 20 
 ~/gitrepos/cfgmgmtcamp.github.io/ github.com/geekygirldawn/linuxcon_2016
  • 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. I 💖 GRIMOIRE MailingListStats aka MLStats CVSAnalY - repos Bicho - bugs Sortinghat More Photo by Bitergia http://grimoirelab.github.io/ http://metricsgrimoire.github.io/
  • 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. 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
  • 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
  • 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. 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. 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