LKML (email) study: data/paper available

We presented this paper at the 2016 OpenSym this week.

Schneider, D., Spurlock, S., and M. Squire. (2016). Differentiating Communication Patterns of Leaders on the Linux Kernel Mailing List. In Proceedings of the 12th International Symposium on Open Collaboration (OpenSym 2016).

Biblio
PDF
Slides (Google Docs)
Data Available (Torvalds & Kroah-Hartman emails, source code removed): data dump, request MySQL database access

How do various corporations populate the Apache projects?

With the FLOSSmole Apache Project/Contributor/Roles data we updated earlier today, we thought an interesting initial analysis would be to figure out how various corporations populate the Apache projects (at least according to the official lists of contributors posted on each Apache project page).

Here is a list of the Apache projects with the highest density of participation by a single corporation:


We only show the first page of results here.

How did we get this result?

1. We used the Apache Contributor Data Set described in this previous FLOSSmole blog posting. Each project in Apache family of projects lists their members, and sometimes they list what company that person works for. Here is an example from the Geronimo Project.

Not every project lists its members, and not every project lists its members' affiliations.

2. We limited our analysis to datasource_id 65935, or May 18, 2016

3. We created a view in SQL so that we could more easily calculate the percentage of the total number of developers for each project:

SELECT project_name, count(*) as 'devcount'
FROM apache_people_projects
WHERE real_name IN (
SELECT distinct(real_name) FROM `apache_people_projects` WHERE datasource_id=65935
ORDER BY `apache_people_projects`.`real_name`)
AND datasource_id=65935
GROUP BY 1 ORDER BY 1 ASC;

4. Then we ran this SQL query to generate the data shown in the table above. The rows are sorted by the highest percent.

SELECT app.project_name, app.organization, count(*) as 'org dev count', app2.devcount as 'all devs', cast((count(*)/devcount)*100 as decimal(4,2)) as 'pct of team' FROM apache_people_projects app
INNER JOIN apache_project_dev_count_65935 app2
ON app.project_name = app2.project_name
WHERE app.real_name
IN (SELECT distinct(real_name) FROM `apache_people_projects` where datasource_id=65935)
AND app.organization IS NOT NULL
AND app.organization !=""
AND app.datasource_id=65935
GROUP BY 1, 2
ORDER BY 5 DESC, 1 asc;

Interested in getting this data? Apache Contributor Data Set

Want to see more examples of how to use FLOSSmole data? Examples

New "Apache Projects & Contributors" data dump

I spent a few days in May updating the list of all the Apache project contributors (full name & Apache system name when available) and their organizations when available. This data set was first released in 2013 in the MSR paper entitled "Project Roles in the Apache Foundation: A Data Set".

Fields:

  • svn_id
  • real_name
  • web_site
  • datasource_id
  • project_name
  • role_on_project
  • details
  • email
  • organization
  • timezone
  • last_updated

here is a sample of what the data looks like:


click to enlarge

Most of the fields are nullable since many times the data is incomplete.

Download the flat file, or use the live database ('apache') on the FLOSSmole MySQL server.

Django IRC Contributions Graph

Django IRC D3 CONTRIBUTIONS GRAPH

This graph represents The number of posts in the Django IRC logs. The lighter green squares represent days with less posts than the darker green squares. Months go from left to right and are separated by the darker lines. Days go by columns from left to right.

SQL Code

SELECT YEAR( date_of_entry ) , MONTH( date_of_entry ) , DAY( date_of_entry ) , COUNT( `type` )
FROM `django_irc`
WHERE TYPE = 'message'
GROUP BY 1 , 2, 3
ORDER BY YEAR( date_of_entry ) ASC, MONTH( date_of_entry ) ASC,DAY( date_of_entry ) ASC

Source code

This visualization was created using D3 and JavaScript. To view similar source code on GitHub head over to the FLOSSmole Github repositories

Want to see more examples of how to use FLOSSmole data? Examples

Ubuntu IRC Contributions Graph

Ubuntu IRC D3 CONTRIBUTIONS GRAPH

This graph represents The number of posts in the UbuntuIRC logs. The lighter green squares represent days with less posts than the darker green squares. Months go from left to right and are separated by the darker lines. Days go by columns from left to right.


SQL Code

SELECT YEAR( date_of_entry ) , MONTH( date_of_entry ) , DAY( date_of_entry ) , COUNT( `type` )
FROM `ubuntu_irc`
WHERE TYPE = 'message'
GROUP BY 1 , 2, 3

Source code

This visualization was created using D3 and JavaScript. To view similar source code on GitHub click here

Perl6 Data Visualizations

The following are a few examples of some quick queries and visualizations we made to show how to use the Perl6 IRC data.

(1) Posts by hour of day over the years

SQL code:

SELECT YEAR(`date_of_entry`),HOUR(`time_of_entry`),COUNT(HOUR(`time_of_entry`))
FROM `perl6_irc`
GROUP BY 1,2

(2) Perl6 IRC Posts by hour

SQL Code:

SELECT HOUR( `time_of_entry` ) , COUNT( HOUR( `time_of_entry` ) )
FROM `perl6_irc`
GROUP BY 1

(3) Perl6 Developer IRC Posts Over Time

SQL Code:

SELECT `send_user` , YEAR( `date_of_entry` ) , MONTH( `date_of_entry` ) , `date_of_entry` , COUNT(
TYPE )
FROM `perl6_irc`
WHERE `send_user` = 'pmichaud'
OR `send_user` = 'audreyt'
OR `send_user` = 'TimToady'
OR `send_user` = 'jnthn'
GROUP BY 1 , 2, 3

Bitcoin IRC Graphs

Here are some graphs and SQL to show how to use the Bitcoin IRC data. These charts track the activity of three main developers of Bitcoin: Mike Hearn, Gregory Maxwell, and Gavin Andresen. These three developers were featured in a New York Times article about Bitcoin developers.

(1) Bitcoin Developers IRC Posts Over Time




Click to enlarge image

SQL Code

SELECT `send_user` , YEAR( date_of_entry ) , MONTH( date_of_entry ) , COUNT( `type` )
FROM `bitcoindev_irc`
WHERE `send_user` = 'gavinandresen'
GROUP BY 1, 2 , 3;

(2)Bitcoin Developers IRC Posts by Total Percentage




Click to enlarge image

SQL Code

SELECT YEAR( date_of_entry ) , MONTH( date_of_entry ) , COUNT( `type` )
FROM `bitcoindev_irc`
WHERE TYPE = 'message'
GROUP BY 1 , 2;

(3) Bitcoin IRC Log by Day of the Week




Click to enlarge image

SQL Code

SELECT DAYOFWEEK( date_of_entry ) , COUNT( `type` )
FROM `bitcoindev_irc`
WHERE TYPE = 'message'
GROUP BY 1 ;

Bitcoin IRC D3 Contributions Graph

BITCOIN IRC D3 CONTRIBUTIONS GRAPH

This graph represents The number of posts in the Bitcoin IRC logs. The lighter green squares represent days with less posts than the darker green squares. Months go from left to right and are separated by the darker lines. Days go by columns from left to right.

SQL Code

SELECT YEAR( date_of_entry ) , MONTH( date_of_entry ) , DAY( date_of_entry ) , COUNT( `type` )
FROM `bitcoindev_irc`
WHERE TYPE = 'message'
GROUP BY 1 , 2, 3

Source code

This visualization was created using D3 and JavaScript. To view the source code on GitHub click here

RubyGems data updated June 2016


Hello moles, the latest RubyGems data has been collected. We now have two RubyGems collections:

  • 61240: November 2015
  • 61243: June 2016

The data can be found in two places:

Tables include:

  • rubygems_project_authors (the author(s) listed for each gem/project)
  • rubygems_project_create_dates (earliest known release date for a gem/project)
  • rubygems_project_devdep (development dependencies for each gem/ project)
  • rubygems_project_facts (basic project metadata scraped from project page)
  • rubygems_project_links (the list of links provided by each gem/project, ex: home page, documentation, etc)
  • rubygems_project_owners (the owner(s) listed for each gem/project)
  • rubygems_project_pages (the html and rss where we got this data; one per gem, per datasource_id)
  • rubygems_project_rtdep (runtime dependencies for each gem/project)
  • rubygems_project_versions (each time the gem/project is released, it creates a new version)

Bitcoin-dev, Ubuntu, Perl6, Django, Puppet IRC logs are updated

Thanks to the work of my two summer research assistants Evan Ashwell & Greg Batchelor, the IRC channels for #bitcoin-dev, perl6, #ubuntu, #django, and puppet (#gen, #dev, and #razor) have been updated.

Things to know:

  • These IRC chats are only available on the FLOSSmole MySQL database server (how to get access) and not as flat files. Why? Well, they started out as flat files, so we don't want to just re-host flat archives. The original flat files are available for Puppet (puppetlogs.com), Bitcoin-dev (bitcoinstats.com), Ubuntu (Ubuntu Logs), Perl6 (Perl6 logs), and Django (Django IRC logs)
  • The data model is one day = one datasource id
  • The chat logs have been divided into the following columns (some logs have fewer columns):
    • datasource_id
    • line_num
    • line_message
    • type
    • send_user
    • date_of_entry
    • time_of_entry
    • unix_time
    • last_updated
  • An example row looks like the following:
    • 61835
    • 42
    • ah thanks. I'll search.
    • message
    • arubi
    • 2016-05-28
    • 21:38:00
    • l1464471492.0
    • 2016-06-02 13:03:3
Syndicate content