O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
19
[17]  Map/Reduce—A visual explanation: https://ayende.com/
blog/4435/map-reduce-a-visual-explanation
[18]   MapReduce: Simplified Data Processing on Large Clusters: 
http://static.googleusercontent.com/media/research.google.
com/en//archive/mapreduce-osdi04.pdf
[19]  What is Apache Hadoop?: https://hadoop.apache.org/
[20]  HDFS users guide: https://hadoop.apache.org/docs/stable/
hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html
[21]  100 open source Big Data architecture papers for data 
professionals: https://www.linkedin.com/pulse/100-open-
source-big-data-architecture-papers-anil-madan
[22]  Choosing the right NoSQL database for the job: a quality 
attribute evaluation: http://www.journalofbigdata.com/con-
tent/2/1/18
[23]  Apache Hadoop NextGen MapReduce (YARN):  
https://hadoop.apache.org/docs/current/hadoop-yarn/ha-
doop-yarn-site/YARN.html
[24]  Apache Spark: http://spark.apache.org/
[25]  Big Data, Business Intelligence, and Analytics, 2015 
Edition: https://dzone.com/guides/big-data-business-intelli-
gence-and-analytics-2015
[26]  Spark Survey Results 2015:  
http://cdn2.hubspot.net/hubfs/438089/DataBricks_Sur-
veys_-_Content/Spark-Survey-2015-Infographic.pdf
[27]  Apache Spark—Preparing for the Next Wave of Re-
active Big Data: https://info.typesafe.com/COLL-
20XX-Spark-Survey-Report_LP.html?lst=PR&ls-
d=COLL-20XX-Spark-Survey-Trends-Adoption-Report
[28]  Apache Spark Google Trends: https://www.google.com/
trends/explore#q=%2Fm%2F0ndhxqz
[29]  CQRS: http://martinfowler.com/bliki/CQRS.html
[30]  Pragmatism: http://plato.stanford.edu/entries/peirce/
[31]  Kolmogorov Complexity: http://people.cs.uchicago.edu/~-
fortnow/papers/kaikoura.pdf
[32]  Lambda Architecture: http://lambda-architecture.net/
[33]  Docker: https://www.docker.com/
[34]  The 3 reasons why Docker got it right:  
http://techapostle.blogspot.com/2015/04/the-3-reasons-
why-docker-got-it-right.html
[35]  Docker Hub: https://hub.docker.com/
Author
John Esposito is Editor-in-Chief at DZone (dzone.com ), hav-
ing recently  finished  a  doctoral  program  in  Classics  while 
raising two cats. In a previous life, he was a VBA and Force.
com developer, DBA, and network administrator.
takes many forms (chroot comes to mind, or really any virtu-
al memory system), and it’s pretty easy to systemd-nspawn 
without Docker. Only being  able  to isolate processes  isn’t 
enough. Why is Docker especially great [34]?
Two reasons: Dockerfiles (“the new tarballs”) add porta-
bility; and the Dockerfile format is now a de-facto standard. 
The first takes  the pain out of application delivery (while 
earlier  containers  just  created  lighter  VMs).  The  second 
makes container-sharing social (and not just on DockerHub 
[35]). I can try your application without mucking around for 
hours not trying your application. (Remember how freeing 
apt-get felt?)
Links
[1]   Why Software Is Eating The World: http://www.wsj.com/arti-
cles/SB10001424053111903480904576512250915629460
[2]   Augmenting Human Intellect: A Conceptual Framework: 
http://www.dougengelbart.org/pubs/augment-3906.html
[3]   Silver Bullet—Essence and Accident in Software Engineer-
ing: http://worrydream.com/refs/Brooks-NoSilverBullet.pdf
[4]   Bootstrap: http://getbootstrap.com/
[5]   Google trends—Bootstrap: https://www.google.com/
trends/explore#q=%2Fm%2F0j671ln
[6]   Material Design Lite: http://www.getmdl.io/
[7]   Bootstrap vs. Material Design Lite Google Trends:  
https://www.google.com/trends/ex-
plore#q=%2Fm%2F0j671ln%2C%20%2Fm%-
2F0ll4n18%2C%20Material%20Design%20Lite&c-
mpt=q&tz=Etc%2FGMT%2B5
[8]   Twitter Bootstrap Usage Statistics:  
http://trends.builtwith.com/docinfo/Twitter-Bootstrap
[9]   Bootstrap version 4 alpha release:  
http://v4-alpha.getbootstrap.com/
[10]  Bootstrap themes: http://themes.getbootstrap.com/
[11]   AngularJS: https://angularjs.org/
[12]  AngularJS directives:  
https://docs.angularjs.org/guide/directive
[13]  Why is the two-way data binding being dropped in Angular 
2? https://www.quora.com/Why-is-the-two-way-data-bind-
ing-being-dropped-in-Angular-2
[14]  Highlights from AngularConnect 2015:  
http://angularjs.blogspot.com/2015/11/highlights-from-an-
gularconnect-2015.html
[15]  Spring: https://github.com/spring-projects
[16]   Spring Boot vs. Spring Framework Google Trends: https://
www.google.com/trends/explore#q=spring%20boot%2C%20
spring%20framework&cmpt=q&tz=Etc%2FGMT%2B5
Pdf links - insert, remove PDF links in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
pdf link to specific page; add links to pdf in acrobat
Pdf links - VB.NET PDF url edit library: insert, remove PDF links in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
adding links to pdf; add hyperlink pdf
20 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
W O R K I N G
......... .
... .. ... .
.. .. .. ....
Sys admins, 
no matter what platforms they 
work  on,  are awash in  great 
open source software tools. In this article, we highlight well-
known—and  not-so-well-known—tools  that  have  released 
new versions in 2015.
BlackBox
Managing secrets is tough, especially when the secrets need 
to end up on a server. That’s why Stack Exchange [1] devel-
oped the BlackBox [2] utility. BlackBox uses GNU Privacy 
Guard [3] (GPG) to securely encrypt secrets, such as pass-
words and private keys, and store them in a version control 
system. BlackBox also provides a mechanism for configura-
tion management tools (specifically Puppet [4]) to extract the 
secrets when needed.
The plugin architecture of BlackBox makes it easy to ex-
tend. Although  BlackBox  was  originally  designed  to  work 
with git [5] repos, support for Mercurial [6], Subversion [7], 
and Perforce [8] has been added. BlackBox supports Linux, 
OS X, and Windows (via Cygwin [9]), so it can be used in 
mixed environments.
KeePass
Managing secrets gets a little easier when they don’t have 
to go anywhere. Years ago, I started using KeePass [10] be-
cause it had been ported to the Maemo [11] platform. If aban-
doned mobile operating systems aren’t your thing, KeePass 
is available for Linux, OS X, Windows, Android, and iOS.
When I was a newly minted sys admin, I had a notebook 
of rarely used passwords that 
I kept in a locked safe. KeeP-
ass is like that, except easier 
to  back  up  and  sync  across 
locations.  KeePass  entries 
store  URLs,  user  names, 
passwords, and free text. En-
tries can be sorted into groups 
and  given  custom  icons  for 
ease of use. Recent releases 
have  focused  on  improving 
performance and UX.
ownCloud
Need a way to synchronize your KeePass database? own-
Cloud’s  recent  8.2  release  brings  improved  design  and 
ease of administration. For those who can’t or won’t use 
third-party services, ownCloud [12] provides  a great  way 
to  share  documents,  photos,  calendars,  and  other  data 
securely.  A  community-developed  application  repository 
allows admins to extend the capabilities in a wide variety 
of ways, including receiving SMS messages from Android 
phones. If you need  to  give your  users (or yourself)  the 
ability to collaborate while keeping control over your data, 
this is a can’t-miss package.
Wireshark
Any day that I have to resort to analyzing packet captures 
is a bad day, but the venerable Wireshark [13] always helps 
make  it  a  little  easier. Although  the  project  is  almost  old 
enough to vote in the US, Wireshark 2.0 [14] was released in 
November 2015. To say 2.0 is a major change is an under-
statement: The UI was rewritten in Qt [15], and many of the 
interactions have been simplified. This new release brings a 
lot of improvements, but it’s still the same Wireshark you’ve 
known for years.
VirtualBox
Desktop virtualization comes in many flavors these days, but 
I find that I always come back to Oracle’s VirtualBox [16]. 
At work, having the same operating system and version of 
our software as a customer runs is valuable to me, so quick-
and-easy  virtual  machines 
save me  a lot of time.  Virtu-
alBox  5.0,  released  in  July, 
added the ability to start VMs 
in  “headless”  mode,  which 
works for me because I gen-
erally  SSH  into  my  virtual 
machines for interactions. 5.0 
also  brings paravirtualization 
support  for better guest  per-
formance,  disk  encryption, 
and USB 3 support.
10 helpful tools for a  
sys admin’s toolbox
BY 
BEN COTTON
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Embed zoom setting (fit page, fit width). Turn PDF form data to HTML form. Export PDF images to HTML images. Embed PDF hyperlinks to HTML links.
adding links to pdf in preview; add hyperlink in pdf
C# Image: Tutorial for Document Management Using C#.NET Imaging
more detailed C# tutorials on each part by following the links respectively are dedicated to provide powerful & profession imaging controls, PDF document, image
convert excel to pdf with hyperlinks; adding an email link to a pdf
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
21
Docker
Certainly you’ve heard all about Docker [23] by now. Contain-
ers are the next big thing in the devops world, and Docker is 
the container platform. The 1.9 release, which shipped at the 
beginning of November, adds several new features. Multi-
host networking allows virtual networks to span hosts, giving 
admins more flexibility in their network topology. Persistent 
storage support is improved, as well. Docker brings a level 
of flexibility and scalability to infrastructure that will have big 
impacts on sys admins and users in the coming year.
Did we leave your favorite open source tool for sys admins 
off the list? We’d love to hear about it: open@opensource.com .
Links
[1]   Stack Exchange: http://stackexchange.com/
[2]   Blackbox: https://github.com/StackExchange/blackbox
[3]   GNU Privacy Guard: https://www.gnupg.org/
[4]   Puppet: https://puppetlabs.com/
[5]   Git: https://git-scm.com/
[6]   Mercurial: https://www.mercurial-scm.org/
[7]   Subversion: http://svnbook.red-bean.com/
[8]   Perforce: https://www.perforce.com/
[9]   Cygwin: https://www.cygwin.com/
[10]  KeePass: http://keepass.info/
[11]   Maemo: http://maemo.org/
[12]  ownCloud: https://owncloud.org/
[13]  Wireshark: https://www.wireshark.org/
[14]  Wireshark 2.0 announced:  
https://www.wireshark.org/news/20151118.html
[15]  Qt: http://www.qt.io/
[16]  VirtualBox: https://www.virtualbox.org/
[17]  Visual Studio Code: https://code.visualstudio.com/
[18]  RRDtool: http://oss.oetiker.ch/rrdtool/
[19]  Cacti: http://www.cacti.net/
[20]  Xymon: http://xymon.sourceforge.net/
[21]  RrdGraphJS: https://github.com/oetiker/RrdGraphJS
[22]  RackTables: http://racktables.org/
[23]  What is Docker:  
https://opensource.com/resources/what-docker
Author 
Ben  Cotton is a meteorologist by training and a high-per-
formance computing engineer by trade. Ben works at Cycle 
Computing, leading the support engineering group. Ben is 
a community moderator for Opensource.com. Find him on 
Twitter @FunnelFiasco.
Visual Studio Code
The editor wars had reached a somewhat 
uneasy truce, but then a new kid appeared 
on  the  block.  Microsoft  released  Visual 
Studio Code [17] for Windows, Linux, and 
OS X under the MIT license, which was big 
news for a company typically seen as hostile to 
open source software. Although Visual Studio Code 
is designed as a code editor, don’t take that to mean 
it’s not useful for sys admins (after all, every sys ad-
min must do some coding). Visual Studio Code offers 
built-in git interactions and Docker language support.
RRDtool
Even if you’ve never interacted directly with RRDtool 
[18], chances are good you’ve used a project that incorpo-
rates it. RRDtool is a great package for storing and graphing 
time series data, which is why it’s commonly used in perfor-
mance  monitoring  systems, such as Cacti [19]  and Xymon 
[20]. If static PNGs aren’t your thing, Tobi Oetiker has also de-
veloped a JavaScript library [21] for generating RRD graphs.
Mosh
Being away from the desk can’t stop the modern sys admin 
from keeping the bits flowing. Unfortunately, not all networks 
are created equal. If you’ve ever tried to do an SSH session 
over a mobile phone tether or an overburdened conference 
WiFi network, you know how painful it can be. Mosh eases 
that pain. Mosh allows for roaming network connections, and 
makes slow connections more tolerable by locally echoing 
as you type and allowing the connection to catch up. After 
almost two years of silence, Mosh 1.2.5 was released in July. 
Along with the usual bug fixes and improvements in platform 
support, the latest release adds IPv6 support.
RackTables
In a small environment, the sys admin may know exactly 
where every server is without having to think about it. In 
my first job, the department had about half a rack of gear. 
Easy peasy. When I moved to a larger group, suddenly 
there were 4,000  machines to know about. At that sort 
of scale, a tool like RackTables [22] becomes invaluable. 
RackTables is a tool for documenting hardware informa-
tion, rack space, network configuration, and more. Think 
of RackTables as that terrible spreadsheet you’re keep-
ing, except not terrible.
.NET PDF Document Viewing, Annotation, Conversion & Processing
PDF Write. Insert text, text box into PDF. Edit, delete text from PDF. Insert images into PDF. Edit, remove images from PDF. Add, edit, delete links. Form Process
add a link to a pdf in preview; pdf hyperlink
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Turn PDF images to HTML images in VB.NET. Embed PDF hyperlinks to HTML links in VB.NET. Available zoom setting (fit page, fit width).
add page number to pdf hyperlink; add hyperlinks to pdf
22 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
The best 
couples 
comple-
ment  each  other,  and  each 
member  of  the  couple  con-
tributes unique and irreplace-
able parts to the whole.  But 
some couples are very odd. 
Such  is  the  case  with  our 
best couple this year: the tar 
and ssh commands.
Wait—what?!
Yup, that’s right,  the tar and ssh commands work to-
gether in interesting ways, especially when used with full 
consideration of the capabilities of Standard I/O (STDIO), 
which is also known as standard streams.
ssh
The ssh command is a secure and sophisticated form of ter-
minal emulator that allows one to log in to a remote computer 
to access a shell  session  and run  commands. So  I could 
log in to a remote computer and run the ls command on the 
remote computer. The results are displayed in the ssh termi-
nal emulator window on my local host. The Standard Output 
(STDOUT) of the command is displayed on my terminal win-
dow, but it remains on the remote host and cannot be used 
by the local host.
That is trivial and everyone does that. But the next step 
is a bit more interesting. Rather than maintain a terminal 
session on the remote computer and issuing multiple com-
mands, I can simply use a command like the following to 
run a single  command  on  the remote computer  with the 
results being displayed on the local host. This assumes that 
SSH public/private keypairs (PPKP) are in use and I do not 
have to enter a password each time I issue a command to 
the remote host:
ssh remotehost ls
So now I can use the results 
of that command on my local 
host  because  the  standard 
output  data  stream  is  sent 
through the SSH tunnel to the 
local  host.  OK,  that  is  good, 
but what does it mean?
Let’s  look  at  the  tar  com-
mand  before  answering  that 
question.
tar
The  tar command is used to make  backups. The name 
tar stands  for Tape ARchive, but the  command  can be 
used with any type of recording media such as tape, hard 
drives, thumb drives and more. A command like the follow-
ing can be used to create a backup of a home directory on 
the local host:
tar -cvf /tmp/home.tar /home
This  command  created  a  tar  file—also  called  a  tarball—
named home.tar in the /tmp directory. That file is a backup of 
everything in the home directory. Well, that’s nice, but also 
not very interesting because it is very common.
But what can be interesting is, although many people do 
not realize it, if the target output file is not specified using 
the -f option, the output of the tar command is sent directly 
to STDOUT:
tar -cv /home
That means that the complete output of the tar command—
the files being backed up —is sent to the terminal, which 
opens up some interesting possibilities, such as redirecting 
the STDOUT data stream to a backup file. That looks like the 
following command:
Best Couple of 2015: 
tar and ssh
Best Couple
BY 
DAVID BOTH
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
keeps the elements (like images, tables and chats) of original PDF file and maintains the original text style (including font, size, color, links and boldness
add email link to pdf; add a link to a pdf
How to C#: Basic SDK Concept of XDoc.PDF for .NET
XDoc.PDF for .NET allows C# developers to edit hyperlink of PDF document, including editing PDF url links and quick navigation link in bookmark/outline.
chrome pdf from link; adding a link to a pdf
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
23
tar -cv /home > /tmp/home.tar
This command performs the same function as the first tar 
command in this section, but in a somewhat different and 
more interesting manner.
The Odd Couple
We can use a command similar to the following to back up 
the home directory of the remote host to the /tmp directory 
of that remote host:
ssh remotehost “tar -cvf /tmp/home.tar /home”
Note that the  command  to  be  executed  on  the  remote 
host is enclosed in quotes to ensure that the correct com-
mand is executed remotely; this is a bit of clarification for 
both the shell and for us humans. A slight change to this 
command gives us one in which we simply redirect the 
output of the tar command to the /tmp  directory  on the 
remote host:
ssh remotehost “tar -cv /home > /tmp/home.tar”
This command produces exactly the same result as the pre-
vious one. In this case, the STDOUT data stream of the tar 
command is maintained entirely on the remote host and is 
redirected to the backup file. The next command, however, 
is the one that opens up many new possibilities. Can you see 
what it does?
ssh remotehost “tar -cv /home” > /tmp/home.tar
In this case, the STDOUT data stream from the tar com-
mand  is  sent through  the  SSH  connection  to  the  local 
host. This stream of data is then redirected to the backup 
file /tmp/home.tar on the local host. By simply moving the 
trailing quote to the left, the command is changed so that 
we now have a command that can do backups of remote 
hosts to a local host.
I use our couple of the year every day to perform backups. 
I have a script that uses ssh and tar, along with SSH public 
key encryption, to perform backups of several remote hosts 
to an external USB hard drive on a local host. These two 
commands simplify a necessary task, and the best part is 
that they are free and open source software—free as in beer, 
as well as free as in speech.
So let’s hear it for this year’s Opensource.com Best Cou-
ple: tar and ssh.
Links
[1]   Standard streams:  
https://en.wikipedia.org/wiki/Standard_streams
Author 
David Both is a Linux and open source advocate who re-
sides in Raleigh, North Carolina. He has been in the IT in-
dustry for more than forty years, and taught OS/2 for IBM 
(where he worked for more than 20 years). While at IBM, 
he wrote the first training course for the original IBM PC in 
1981. David has written articles for OS/2 Magazine, Linux 
Magazine, Linux Journal, and Opensource.com.
BEST 
COUPLE
2015
VB.NET PDF: Basic SDK Concept of XDoc.PDF
XDoc.PDF for .NET allows VB.NET developers to edit hyperlink of PDF document, including editing PDF url links and quick navigation link in bookmark/outline.
pdf reader link; add url link to pdf
C# Create PDF Library SDK to convert PDF from other file formats
file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields.
convert doc to pdf with hyperlinks; active links in pdf
CO L L A B O R A T I N G
......... .
... .. ... .
.. .. .. ....
24 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
24 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
We round up 
10 editor’s picks from the most 
popular projects in 2015. 
Apache Spark
When it comes to open source big data processing, Hadoop 
is no longer the only name in the game. Apache Spark [1] is 
a general purpose distributed data processing tool that al-
lows users to process gigantic datasets across many nodes, 
coordinating the processing so that users can concentrate 
on writing their queries in their language of choice. At the be-
ginning of this year, we announced a new world record [2] in 
data processing set by Apache Spark, 100 TB of data in just 
23 minutes. In the months that followed, interest in Apache 
Spark has not slowed, and the project has gained many new 
contributors and adopters.
Blender
The Blender Foundation is on a mission “to build a free and 
open source complete 3D creation pipeline for artists and 
small teams.” This year we’ve seen the power of Blender [3] 
in the mix of Blender-related articles [4] we’ve run on Open-
source.com. Writer and Blender aficionado Jason van Gum-
ster (author of Blender for Dummies [5]) shared the majority 
of  those  stories,  including  reports  from  the  October 2015 
Blender Conference in Amsterdam.
D3
When you are working with large amounts of raw data, some-
times a visualization is the best way to interpret what you’re 
looking at. When you make that visualization available on 
the web, you can add new levels of interactivity to display 
information for an audience in an easy-to-understand format. 
One tool for making this easy is D3 [6], a JavaScript-based 
data visualization framework that provides options for show-
ing data in charts, graphs, plots, maps, and more. We pro-
filed D3 earlier this year as a part of our roundup of 8 excel-
lent data visualization tools [7].
Dolphin
If you spend a  lot of  time  managing  files on your computer, 
you’re going to want a file manager that suit your needs and 
gives you features that let you quickly and easily take control of 
your file system. Dolphin [8], the default file manager in many 
KDE-based distributions, is a powerful tool to help you orga-
nize files. For more on Dolphin, take a look at Opensource.com 
community moderator David Both’s comprehensive review and 
guide to the Dolphin file manager [9] from earlier this year. 
Git
The world of version control sure has changed since git en-
tered the scene 10 years ago as an open source alternative 
to BitKeeper for managing the Linux kernel’s source code. 
Since then, git [10] has rapidly become the most popular tool 
for tracking changes to files, and not just for code. Git helps 
track changes to files where revisioning, branching, and col-
laborative development can help improve the workflow of a 
project. Are you still working with an older source code man-
ager, but thinking of moving to git? Here are some great tips 
and resources for making the move.
Mattermost
To borrow from our review [12] of this open source team chat 
alternative: 
“Mattermost is [a] very modern approach to team chat. 
Currently in its beta release, Mattermost is written in Gol-
ang with a good chunk of JavaScript under the  React 
framework. It features private and public chats, including 
one on one communication, good archival support, and 
a very similar interface to Slack, including most of the 
features you’ve come to expect there. In fact, if you’re al-
ready using Slack, there’s an easy import function which 
lets you move over your current channels and archives. 
Mattermost also integrates into your organization’s ex-
isting LDAP or Active Directory authentication systems.”
Piwik
Piwik [13] is an open source alternative to Google Analytics, 
and according to writer Scott Nesbitt, chances are it packs 
the features you need.
Nesbitt writes [14]: “Those features include metrics on the 
number of visitors hitting your site, data on where they come 
from (both on the web and geographically), from what pages 
they leave your site, and the ability to track search engine 
referrals. Piwik also has a number of reports and you can 
Top 10 open source projects 
of 2015
BY 
JEN WIKE HUGER
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
25
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
25
customize the dashboard to view the metrics that you want 
to see. To make your life easier, Piwik integrates with over 
65 content management, ecommerce, and online forum sys-
tems like WordPress, Magneto, Joomla!, and vBulletin using 
plugins. With anything else, you just need to add a tracking 
code to a page on your site. A number of web hosting firms 
offer Piwik as part of their one-click install packages. You can 
test drive [15] Piwik or use a hosted version [16].”
Fun fact: Maker of the LulzBot 3D printer, Aleph Objects, 
uses Piwik to run their analytics [17].
R
In the era of big data, now may be the time to learn R [18], 
which has become the programming language of choice for 
data scientists and others interested in statistical computing 
and graphics, and is touted by influencers in big data [19] like 
Revolution Analytics. In 2015, the R Consortium [20] became 
a Linux Foundation Collaborative project, created to provide 
support for the development of R-Hub, a new code-hosting 
platform for developing and distributing packages for R.
SugarCRM
SugarCRM [21] is the 800-pound gorilla in the open source 
customer  relationship  management space,  and has previ-
ously been featured as one of our top 5 CRM tools [22]. The 
community edition of SugarCRM can be used out of the box 
as a complete solution for organizations hoping to do a bet-
ter job of keeping their contacts manageable, or who want 
to turn a list of names into something actionable. Complete 
with huge list of features and a pluggable infrastructure that 
allows for even more customization, SugarCRM is a great 
solution for organizations that want to get a handle on their 
contacts. (Editor’s note: SugarCRM 6.5 Community Edition 
is the most recent open source version of SugarCRM and is 
still widely used. Open source alternatives built on Sugar-
CRM CE are growing in popularity.)
Vagrant
In a nutshell, Vagrant [23] is a command-line tool for launch-
ing and configuring virtual machines. With Vagrant, environ-
ments are reproducible and portable, and the data that de-
fines the environment is stored in text files, making it easy to 
version control your environments and manage your virtual 
machines just as you would code. Vagrant allows you to set 
up  development  environments on  your local machine that 
are nearly identical to your production environment, regard-
less of  what your host operating system is.  Plus, learning 
how to get started with Vagrant is easy.
Thanks to Jason Baker for his help on this article.
Links
[1]    Apache Spark: http://spark.apache.org/
[2]   World record set for 100 TB sort by open source and 
public cloud team: https://opensource.com/business/15/1/
apache-spark-new-world-record
[3]   Blender: https://www.blender.org/
[4]   Opensource.com Blender articles:  
https://opensource.com/tags/blender
[5]   Blender for Dummies: http://blenderbasics.com/
[6]   D3: http://d3js.org/
[7]   8 excellent open source data visualization tools:  
https://opensource.com/life/15/6/eight-open-source-da-
ta-visualization-tools
[8]   Dolphin: https://userbase.kde.org/Dolphin
[9]   A comprehensive guide to Dolphin, a KDE file manager: 
https://opensource.com/life/15/8/comprehensive-guide-dol-
phin-file-manager
[10]  Git: https://git-scm.com/
[11]   What to know before transitioning your team to Git:  
https://opensource.com/business/15/7/interview-em-
ma-jane-hogbin-westby-git
[12]  4 open source alternatives to Slack for team chat: 
https://opensource.com/business/15/9/alterna-
tives-slack-team-chat
[13]  Piwik: http://piwik.org/
[14]  Top 3 open source alternatives to Google Analytics:  
https://opensource.com/business/14/10/
top-3-open-source-alternatives-google-analytics
[15]  Piwik demo: http://demo.piwik.org/index.
php?module=CoreHome&action=index-
&idSite=7&period=day&date=yesterday#/module=-
Dashboard&action=embeddedIndex&idSite=7&period=-
day&date=yesterday&idDashboard=1
[16]  Piwik Cloud: http://piwik.org/hosting/
[17]  Open ethos powers Aleph Objects’ success:  
https://opensource.com/business/15/11/open-ethos-pow-
ers-lulzbots-success
[18]  What is R?: https://www.r-project.org/about.html
[19]  Why now is the time to learn R: https://opensource.com/
business/14/12/r-open-source-language-data-science
[20]  R Consortium: https://www.r-consortium.org/
[21]  SugarCRM: https://www.sugarcrm.com/
[22]  Top 5 open source customer relationship management 
tools: https://opensource.com/business/14/7/top-5-open-
source-crm-tools
[23]  Vagrant: A powerful tool for configuring development envi-
ronments: https://opensource.com/business/15/9/ato-inter-
view-seth-vargo
Authors 
Jen Wike Huger is Content Manager at Opensource.com, where 
she manages the site’s publication calendar, its editing  team, 
and its community of writers. Follow her on Twitter @jenwike.
Jason Baker is passionate about using technology to make 
the world more open. His interests range from software de-
velopment to bringing sunlight to local governments. Jason 
is particularly interested in data visualization and analysis, 
DIY/maker culture, simulations/modeling, geospatial tech-
nologies,  and  cloud  computing  (especially  OpenStack). 
Follow him on Twitter @jehb.
CO L L A B O R A T I N G
......... .
... .. ... .
.. .. .. ....
26 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
26 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
So you decided 
to  use  metrics  to 
track your free, open 
source  software  (FOSS)  community.  Now  comes  the  big 
question: Which metrics should I be tracking?
To answer this question, you must have an idea of what 
information you need. For example, you may want to know 
about the sustainability of the project community. How quick-
ly does the community react to problems? How is the com-
munity  attracting,  retaining,  or  losing  contributors?  Once 
you decide which information you need, you can figure out 
which traces of community activity are available to provide it. 
Fortunately, FOSS projects following an open development 
model tend to  leave loads of  public data  in their  software 
development repositories, which can be analyzed to gather 
useful data.
In  this  article,  I’ll  introduce  metrics  that  help  provide  a 
multi-faceted view of your project community.
1. Activity
The overall  activity  of  the  community  and  how  it evolves 
over time is a useful metric for all open source communities. 
Activity provides a first view of how much the community is 
doing, and can be  used to track different kinds of activity. 
For example, the number of commits gives a first idea about 
the volume of the development effort. The number of tickets 
opened provides insight into how many bugs are reported 
or new features are proposed. The number of messages in 
mailing lists or posts in forums gives an idea of how much 
discussion is being held in public.
2. Size
The size  of the  community  is  the  number  of  people  par-
ticipating in it, but, depending  on the kind of participation, 
size numbers may vary. Usually you’re interested in active 
contributors, which is good news. Active people may leave 
traces in the repositories of the project, which means you 
Top 5 open source 
community metrics to track
BY 
JESUS M. GONZALEZ-BARAHONA
Number of commits and number of merged changes after code 
review in the OpenStack project, as found in the OpenStack 
Activity Dashboard [1]. Evolution over time (weekly data).
Number of authors and number of posters in mailing lists in 
the Xen project, as found in the Xen Project Development 
Dashboard [2]. Evolution over time (monthly data).
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
27
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
27
can count contributors who are active in producing code by 
looking at the Author field in git repositories, or count people 
participating in the resolution of tickets by looking at who is 
contributing to them.
This basic idea of activity (somebody did something) can 
be extended in many ways. One common way to track activ-
ity is to look at how many people did a sizable chunk of the 
activity. Generally most of a project’s code contributions, for 
example, are from a small fraction of the people in the proj-
ect’s community. Knowing about that fraction helps provide 
an idea of the core group (i.e., the people who help lead the 
community).
3. Performance
So far, I have focused on measuring quantities of activities 
and contributors. You also can analyze how processes and 
people are performing. For example, you can measure how 
long processes take to finish. Time to resolve or close tickets 
shows how the project is reacting to new information that 
requires action, such as fixing a reported bug or implement-
ing a requested new feature. Time spent in code review—
from the moment when a change to the code is proposed 
to the moment it is accepted—shows how long upgrading a 
proposed change to the quality standards expected by the 
community takes.
Other metrics deal with how well the project is coping with 
pending work, such as the ratio of new to closed tickets, or 
the backlog of still non-completed code reviews. Those pa-
rameters tell us, for example, whether or not the resources 
put into solving issues is enough.
4. Demographics
Communities change as contributors move in and out. De-
pending on how people enter and leave a community over 
time, the age (time since members joined the community) 
of the community varies. The community aging chart [4] 
nicely illustrates these exchanges over time. The chart is 
structured as a set of horizontal bars, two per “generation” 
of  people  joining  the  community.  For  each  generation, 
the attracted bar shows how many new people joined the 
community during the corresponding period of time. The 
retained bar shows how many people are still active in the 
community.
The relationship between the two bars for each generation 
is the retention rate: the fraction of people of that genera-
tion who are still in the project. The complete set of attracted 
bars show how attractive the project was in the past. And 
the complete set of the retention bars shows the current age 
structure of the community.
5. Diversity
Diversity is an important factor in the resiliency of communi-
ties. In general, the more diverse communities are—in terms 
of people or organizations participating—the more resilient 
they are. For example, when a company decides to leave a 
FOSS community, the potential problems the departure may 
cause are much smaller if its employees were contributing 
5% of the work rather than 85%.
Ratio of tickets closed by tickets opened, and ratio of change 
proposals accepted or abandoned by new change proposals 
per quarter. OpenStack project, as shown in the OpenStack 
Development Report, 2015-Q3 [3].
Community aging chart for the Eclipse community, as shown 
in the Eclipse Development Dashboard [4]. Generations are 
defined every six months.
Pony and Elephant Factor for several FOSS projects in the 
area of cloud computing, as presented in The quantitative 
state of the open cloud 2015 (slides) [8].
28 
O
pen
S
Ource
Y
earbOOk
2015  
.
.
.
O
penSOurce
.
cOm
CO L L A B O R A T I N G
......... .
... .. ... .
.. .. .. ....
[5]   Eclipse Development Dashboard: 
http://dashboard.eclipse.org/demographics.html
[6]   Pony Factor Math:  
https://ke4qqq.wordpress.com/2015/02/08/pony-fac-
tor-math/
[7]   Daniel Gruno: https://twitter.com/humbedooh
[8]   The quantitative state of the open cloud 2015 (slides): 
https://speakerdeck.com/jgbarah/the-quantitative-state-of-
the-open-cloud-2015-edition
Author 
Jesus  M.  Gonzalez-Barahona  is  co-founder  of  Bitergia 
(bitergia.com ),  the  software  development  analytics  com-
pany specializing in the analysis of free and open source 
software projects. He also teaches and researches in Uni-
versidad Rey Juan Carlos in Spain as part of the GSyC/
LibreSoft research group. His interests include the  study 
of software development communities, and he focuses on 
quantitative and empirical studies of these groups. Find him 
on Twitter @jgbarah.
The Pony Factor [6], a term defined by Daniel Gruno [7] for 
the  minimum number of  developers  performing 50% of  the 
commits. Based on the Pony Factor, the Elephant Factor  is 
the minimum number of companies whose employees perform 
50% of the commits. Both numbers provide an indication of 
how many people or companies the community depends on.
There are many other metrics to help measure a commu-
nity. When determining which metrics to collect, think about 
the goals of your community, and which metrics will help you 
reach them.
Links
[1]   OpenStack Activity Dashboard: http://activity.openstack.org/
[2]   Zen Project Development Dashboard:  
http://projects.bitergia.com/xen-project-dashboard/browser/
[3]   OpenStack Development Report, 2015-Q3: 
http://activity.openstack.org/dash/reports/2015-q3/pd-
f/2015-q3_OpenStack_report.pdf 
[4]   Measure your open source community’s age to keep it 
healthy: http://radar.oreilly.com/2014/10/measure-your-
open-source-communitys-age-to-keep-it-healthy.html
WR I T E   F O R   U S
......... .
... .. ... .
.. .. .. ....
Would you like to write for Opensource.com?
Our editorial calendar includes upcoming themes, community columns, and 
topic suggestions: https://opensource.com/calendar
Learn more about writing for Opensource.com at: https://opensource.com/writers
We're always looking for open source-related articles on the following topics:
Apache:
Stories and open source updates about Apache Software Foundation projects.
Big Data:
Open source big data tools, stories, communities, and news.
Command-line tips:
Tricks and tips for the Linux command-line.
DevOps:
DevOps best practices, case studies, and “getting started” stories.
Diversity: 
How you increased diversity in your community, open source-related grants and scholarship 
opportunities, tips for attracting a more diverse pool of contributors, how increasing diversity helped your 
project, and other practical advice for fostering inclusive communities.
Geek Culture:
Open source-related geek culture stories.
Hardware:
Open source hardware projects, maker culture, new products, howtos, and tutorials.
HFOSS:
Humanitarian open source project stories, news, communities, and updates.
Content management systems:
Howtos and articles on Drupal, ezPublish, Joomla, TYPO3, WordPress, 
and other open source content management systems.
Education:
Open source projects, tools, solutions, and resources for education.
Science:
Open source tools, programs, projects, and howtos for science.
Documents you may be interested
Documents you may be interested