Top Banner
NETWORK ANALYSIS: PEOPLE AND COMMUNITIES Dawn M. Foster @geekygirldawn [email protected] fastwonderblog.com PhD Student University of Greenwich London, UK
16

Network Analysis: Tech Evangelism London Meetup

Apr 14, 2017

Download

Technology

Dawn Foster
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Network Analysis: Tech Evangelism London Meetup

NETWORK ANALYSIS: PEOPLE AND

COMMUNITIESDawn M. Foster

@geekygirldawn  [email protected]  fastwonderblog.com

PhD  Student  University  of  Greenwich  

London,  UK

Page 2: Network Analysis: Tech Evangelism London Meetup

WHOAMI

• Geek, traveler, reader

• 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

Page 3: Network Analysis: Tech Evangelism London Meetup

WHAT IS NETWORK ANALYSIS?

Studies relationships

between units and looks for

patterns and structure in

those relationshipsImage from ANAMIA Project

Page 4: Network Analysis: Tech Evangelism London Meetup

AGENDA AND INFO

• Gathering your data

• Data manipulation for network analysis

• Visualization

• What else can you do?Image from a Northern Marina Islands Network

Scripts, Data, and More:github.com/geekygirldawn/linuxcon_2015

Page 5: Network Analysis: Tech Evangelism London Meetup

I 💖 METRICS GRIMOIRE

MailingListStats aka MLStats

CVSAnalY - repos

Bicho - bugs

More

Photo by Bitergia

http://metricsgrimoire.github.io/

Page 6: Network Analysis: Tech Evangelism London Meetup

MLSTATS

a) Install mlstats

$ python setup.py install

b) Create database

mysql> create database mlstats;

c) Import data by running mlstats

$ mlstats --db-user=USERNAME --db-password=PASS http://URLOFYOURLIST

Page 7: Network Analysis: Tech Evangelism London Meetup

MLSTATS: EXTRACT DATA

SELECT 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;

people sending emails

subquery: who they replied to

limit time

for manageable

data

Network Analysis Output for R / Visone: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] ...

Page 8: Network Analysis: Tech Evangelism London Meetup

EXTRACT DATA: SCRIPTS

Reformat / clean up data

Reproducible

Reduce human error

linuxcon.py scriptImage from Mark Grealish

github.com/geekygirldawn/linuxcon_2015

Page 9: Network Analysis: Tech Evangelism London Meetup

R / VISONE / GOURCE

Convert data for better use with network analysis

Visualize data usingRStudio, Visone, and Gource

Page 10: Network Analysis: Tech Evangelism London Meetup

Image from WebOps.com

Page 11: Network Analysis: Tech Evangelism London Meetup

WHAT ELSE?

So many visualization tools

Python network packages

Other data sources / APIs

Network analysis is more than just pretty pictures!

Page 12: Network Analysis: Tech Evangelism London Meetup

Dawn FosterUniversity of Greenwich

Centre for Business Network Analysiswww2.gre.ac.uk/about/faculty/business/research/centres/cbna/home

@geekygirldawn, [email protected]

THANK YOU

Page 13: Network Analysis: Tech Evangelism London Meetup

BACKUPStuff I don't have time to cover,

but that you might find interesting.

Page 14: Network Analysis: Tech Evangelism London Meetup

GOURCE CUSTOM 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

https://github.com/acaudwell/Gource/wiki/Custom-Log-Format

Page 15: Network Analysis: Tech Evangelism London Meetup

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

OR) Run linuxcon.py from my linuxcon_2015 repo (a & b)

c) Run Gource

$ gource -i 10 --max-user-speed 100 -a 1 --highlight-users gource_output.log

github.com/geekygirldawn/linuxcon_2015

Page 16: Network Analysis: Tech Evangelism London Meetup

OTHER OPTIONS

Bug data

Wikis

Other stuff

https://github.com/acaudwell/Gource/wiki/Custom-Log-FormatPhoto by Bitergia