Developing Open Source Software for Library Services

Stefan Weil, Philipp Zumstein

Mannheim University Library

2017-03-31

Overview

  • What is Open Source?
  • Discussion (Pro and Contra)

  • Our approach for software

  • Using Open Source

  • Developing Open Source

  • Developing Open Source in Practice

  • Our Experience with Open Source

What is Open Source?

Open Source (Open Source Initiative)

https://opensource.org/docs/osd

 

Free Software (Free Software Foundation)

https://www.gnu.org/philosophy/free-sw.html.en

 

Debian Free Software Guidelines

https://www.debian.org/social_contract#guidelines

Different Definitions for almost the same

Four Freedoms

(Free Software Definition)

  • 0: The freedom to run the program for any purpose.

     
  • 1: The freedom to study how the program works, and change it to make it do what you wish.

"Four freedoms" by the Free Software Foundation, cf. https://fsfe.org/freesoftware/basics/4freedoms.en.html

Freeware

  • 2: The freedom to redistribute and make copies so you can help your neighbor.
  • 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.
@@ -18,7 +18,7 @@
 	"inRepository": true,
 	"translatorType": 3,
 	"browserSupport": "gcsv",
-	"lastUpdated": "2017-01-25 13:39:28"
+	"lastUpdated": "2017-03-11 13:39:28"
 }
 
 function detectImport() {
@@ -1089,13 +1089,13 @@ var citeKeyConversions = {
 		if(item.creators && item.creators[0] && item.creators[0].lastName) {
 			return item.creators[0].lastName.toLowerCase().replace(/ /g,"_").replace(/,/g,"");
 		}
-		return "";
+		return "noauthor";
 	},
 	"t":function (flags, item) {
 		if (item["title"]) {
 			return item["title"].toLowerCase().replace(citeKeyTitleBannedRe, "").split(/\s+/g)[0];
 		}
-		return "";
+		return "notitle";
 	},
 	"y":function (flags, item) {
 		if(item.date) {
@@ -1104,7 +1104,7 @@ var citeKeyConversions = {
 				return date.year;
 			}
 		}
-		return "????";
+		return "nodate";
 	}
 }
 
@@ -3513,4 +3513,4 @@ var testCases = [
 		]
 	}
 ]
-/** END TEST CASES **/
+/** END TEST CASES **/
                

Open Source is about ...

  • open license
  • free download, install
  • accessibility to source code
  • documentation of source code
  • possibilities to modify source code
  • social coding

Discussion

Our approach for software

  • Use commercial software and open source
    • Using good commercial software gives us stability with professional support, and allows us to put our resources in other areas
    • Using good open source software allows us maximum flexibility
  • Develop own software as Open Source, when there is a need and it is possible for us
  • Contribute to Open Source software as well as to interest groups of commercial software
  • Work together on Software

Our Hybrid Software Approach

Using Open Source

Operating Systems in the Backbone

Operating Systems Debian GNU Linux,
Ubuntu, Raspbian (all open source)

 

 

 

 

 

Used for

  • all kinds of servers and
  • web based services on standalone computers (info terminals, screen sharing, ...)

Internet of Things

mostly based on Open Source

Our Use Case Hardware Operating System
smartboards with PalMA Raspberry Pi 3 Raspbian
TV display showing news Raspberry Pi 3 Raspbian
60" 4K TV display ODROID-C2 Ubuntu
PalMA
(ca. 60 stations)
Intel NUC / Mini-PC
 
Debian
touch display Intel NUC / Mini-PC Windows -> Debian
coming soon? sensors ?

Software in the Backbone

Webservers:

  • Apache2
  • Tomcat
  • NodeJS

Databases:

  • MariaDB
  • MySQL
  • SQLite

Web related software:

  • Piwik (web statistics)
  • Mibew (chat software)
  • LimeSurvey (online surveys)

System Admin Software

  • GLPI (hardware and software inventory / management)
  • OCS Inventory
  • Icinga (monitoring)
  • git (version control system)
  • OpenSSH (secure network communication)
  • VirtualBox (virtualization)

"Datacenter Work" by  Leonardo Rizzi https://www.flickr.com/photos/stars6/4381851322/

Content Management

TYPO3 - for our website

https://git.typo3.org/ (code)

WordPress - for our blog

https://core.trac.wordpress.org/browser/trunk (code)

  • Open Source license (all of them GPL)
  • extensible (plugins, themes, extensions -
    also from third parties)
  • community (developers, companies, users)

Dokuwiki - for interna

https://github.com/splitbrain/dokuwiki (code)

EPrints - for our repository

https://github.com/eprints (code)

Our supported reference management systems

Citavi

Mendeley

Zotero

Freeware

Swiss Academics

Elsevier

George Mason University

community forum + documentation as wiki

professional support

support websites, email contact

Developing Open Source

Source Code Platforms

> 55 Mio. projects

> 15 Mio. developers

> 0,43 Mio. projects

> 3,7 Mio. developers

> 0,546 Mio. projects

> 0,1 Mio developers

? projects

> 6 Mio. developers

Open Licenses

Apache license

GNU General Public License

MIT license

...

...

Welcome : Welcome Mat by alborzshawn (2006)
https://www.flickr.com/photos/7502393@N04/472028910/

"Linked Open Community" by Andromeda Yelton (SWIB 2016 talk)
https://andromedayelton.com/talks/swib16/

Open Source Publication (Option A)

The final result will be released as open source.

Open Source Development (Option B)

The whole software development process is open.

Developing Open Source in Practice

Contributors, Pull Requests, Languages

Open Review within a Pull Request

Open Roadmap, Future Plans, Kanban Board

lobid waffle board: https://waffle.io/hbz/lobid

  1. Go to github.com/hbunke/BibsOnGitHub
  2. Sign in  (if you are not already)
  3. Click an "list.md"
  4. Click on the pen to edit
  5. Add one of these two libraries
    • https://github.com/NTNUUB
    • https://github.com/University-of-Tartu-Library
  6. Create a pull request
  7. Wait for the merge or comments of the maintainer

Live Example

  • Work on documentation collaboratively
  • BibsOnGitHub: list of GitHub accounts of libraries, librarians, and developers of library software

Our Open Source Experience

UB-Mannheim on GitHub

PalMA - Open Source for Team Monitor

available languages for users: German, English, Chinese, Italian, Russian, Spanish, Albanian, Arabic (45 %), Urdu (20 %)

kitodo - digitization workflow management

Tesseract - OCR Engine

Tesseract - OCR Engine

use case by firefighters in Jesenwang

Tesseract - OCR Engine

international visibility

TOP 10 countries number of unique visits 2017-03
China 78
US 49
Germany 39
India 33
Russia 25
Japan 16
France 14
UK 14
Vietnam 13
Spain 11

Usage statistics for digi.bib.uni-mannheim.de/tesseract/

559 visits in March 2017 from all over the world

Example reference from
Chinese website:

"In addition to being a collection of licences and legalese, the term “open source” is often used to describe the culture of open-source projects, in which there is an emphasis on working in an open and collaborative way, a focus on transparency and an effort to engage the community. As such, many of the principles of open source are well aligned with the core tenets of the open-science movement and academia more generally."

Questions, Comments?

Picture Credit

Developing Open Source Software for Library Services

By zuphilip

Developing Open Source Software for Library Services

  • 719