Open is as Open Does: Lessons from Running a Professional Open Source Company



Similar documents
HTSQL is a comprehensive navigational query language for relational databases.

Copyright 2013 Splunk Inc. Introducing Splunk 6

Sisense. Product Highlights.

Data Driven Success. Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA)

TDAQ Analytics Dashboard

owncloud Architecture Overview

DreamFactory & Modus Create Case Study

Open Source Multi-Cloud, Multi- Tenant Automation in the cloud with SlipStream PaaS

Turning ClearPath MCP Data into Information with Business Information Server. White Paper

Ernesto Ongaro BI Consultant February 19, The 5 Levels of Embedded BI

CSCI-UA: Database Design & Web Implementation. Professor Evan Sandhaus sandhaus@cs.nyu.edu evan@nytimes.com

Skynax. Mobility Management System. System Manual

2015, André Melancia (Andy.PT) 1

Load and Performance Load Testing. RadView Software October

OpenText Information Hub (ihub) 3.1 and 3.1.1

CARRIOTS TECHNICAL PRESENTATION

depl Documentation Release depl contributors

EMC Data Protection Advisor 6.0

itunes Store Publisher User Guide Version 1.1

Programming IoT Gateways With macchina.io

Memopol Documentation

A Performance Evaluation of Open Source Graph Databases. Robert McColl David Ediger Jason Poovey Dan Campbell David A. Bader

WHITE PAPER. Domo Advanced Architecture

tibbr Now, the Information Finds You.

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

BusinessObjects XI R2 Product Documentation Roadmap

Reporting Services. White Paper. Published: August 2007 Updated: July 2008

Quick start. A project with SpagoBI 3.x

Using Microsoft Business Intelligence Dashboards and Reports in the Federal Government

HP OO 10.X - SiteScope Monitoring Templates

Connect to MySQL or Microsoft SQL Server using R

Open Source Monitoring

owncloud Architecture Overview

MarkLogic 8: Samplestack

2013 Ruby on Rails Exploits. CS 558 Allan Wirth

IT3503 Web Development Techniques (Optional)

Please contact Cyber and Technology Training at for registration and pricing information.

edoc Document Generation Suite

Developing ASP.NET MVC 4 Web Applications MOC 20486

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

Deploy. Friction-free self-service BI solutions for everyone Scalable analytics on a modern architecture

Introduction to IBM Worklight Mobile Platform

DocDokuPLM Innovative PLM solution

uncommon thinking ORACLE BUSINESS INTELLIGENCE ENTERPRISE EDITION ONSITE TRAINING OUTLINES

KonyOne Server Prerequisites _ MS SQL Server

Hitachi Data Center Analytics

Open Source Business Intelligence Intro

S3 Monitor Design and Implementation Plans

DAISY PRODUCER: AN INTEGRATED PRODUCTION MANAGEMENT SYSTEM FOR ACCESSIBLE MEDIA

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Solution Guide. Optimizing Microsoft SharePoint 2013 with Citrix NetScaler. citrix.com

IT3504: Web Development Techniques (Optional)

The Learn-Verified Full Stack Web Development Program

Envirofacts API Cory Wagner, US EPA

Analytics Software for a World of Smart Devices. Find What Matters in the Data from Equipment Systems and Smart Devices

Adam Rauch Partner, LabKey Software Extending LabKey Server Part 1: Retrieving and Presenting Data

Understanding Infrastructure as Code. By Michael Wittig and Andreas Wittig

100% NO CODING NO DEVELOPING IMMEDIATE BUSINESS -25% -70% UNLIMITED SCALABILITY DEVELOPMENT TIME SOFTWARE STABILITY

A Close Look at Drupal 7

PROVIDING INSIGHT FOR OPERATIONAL SUCCESS

Firewall Builder Architecture Overview

IBM Rational Web Developer for WebSphere Software Version 6.0

Category: Business Process and Integration Solution for Small Business and the Enterprise

Developing Microsoft SharePoint Server 2013 Core Solutions

YouTrack MPS case study

Databricks. A Primer

This course will also teach how to create various kinds of dashboards using Reporting Services.

The FOSSology Project Overview and Discussion. » The Open Compliance Program. ... By Bob Gobeille, Hewlett-Packard

Open Source Business Intelligence Tools: A Review

Instructor: Betty O Neil

Developing Cross-platform Mobile and Web Apps

midpoint Overview Radovan Semančík December 2015

Products and Solutions

Building Views and Charts in Requests Introduction to Answers views and charts Creating and editing charts Performing common view tasks

IBM WebSphere ILOG Rules for.net

Software Architecture for Paychex Out of Office Application

Clinical Knowledge Manager. Product Description 2012 MAKING HEALTH COMPUTE

Building HTML5 and hybrid mobile apps using cloud services. Andrei Glazunov

Building a Continuous Integration Pipeline with Docker

Using Ruby on Rails for Web Development. Introduction Guide to Ruby on Rails: An extensive roundup of 100 Ultimate Resources

Drupal Performance Tuning

Oracle Database Cloud Services OGh DBA & Middleware Day

WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT

Developing ASP.NET MVC 4 Web Applications

Programming Languages

Platform as a Service and Container Clouds

Mercury Users Guide Version 1.3 February 14, 2006

A Plan for the Continued Development of the DNS Statistics Collector

Introduction to Oracle Business Intelligence Standard Edition One. Mike Donohue Senior Manager, Product Management Oracle Business Intelligence

<Insert Picture Here> Michael Hichwa VP Database Development Tools Stuttgart September 18, 2007 Hamburg September 20, 2007

Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN

IBM Endpoint Manager Version 9.1. Patch Management for Red Hat Enterprise Linux User's Guide

Trainer Preparation Guide for Course 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions Design of the Course

Content Management System - Drupal. Vikrant Sawant (vikrant.sawant@lc.ca.gov) Legislative Data Center, California

Transcription:

Open is as Open Does: Lessons from Running a Professional Open Source Company Leon Rozenblit, JD, PhD Founder and CEO at Prometheus Research, LLC email: Leon@PrometheusResearch.com twitter: @leon_rozenblit

Financial Interest Disclosures Founder and CEO of Prometheus Research, LLC

Prometheus: Professional Open Source for Research Data Management Battle cry: Empower the analyst! Battle: Empower analysts to use relational databases to organize, use, and repurpose complex data. We care about: - Efficiency - Adaptability - Openness - Effective communication - Knowing what we don t know What kind of company are we? A services company that builds products for internal use (to reduce costs of service delivery) We hope to become a product company that builds products for others Our business model looks like a consulting firm, except we invest in R&D About 50 employees, headquartered in New Haven, CT

Prometheus Customers / Solutions Databases for Research : Academic Research Centers/Labs Academic Research Hospitals Professional Medical Societies Funders of Biomedical Research Dynamic Research Data Repositories Data Integration Pipelines Procedure/Disease Registries Scientific Asset Management Systems Data Collection and Curation Tools Data-marts and analytics

Serving..

How we fund OS development Direct feature funding from customers satisfied customer Grants $$ formerly known as profit! accelerates value delivery pays for service Professional Services Professional services delivers value to customers; features cost money, but increase value and accelerate delivery delivers product enhancement funds feature request R&D

Integrated Data Management w/ Open-Source RexDB

High-level Architecture for Institutional Data Integration

Easier Configuration and Interaction Instant RESTful web APIs Query and report builders Configurable screens Configurable data models Customizable web applications Efficient data transformations RexDB Simplified Navigational Representation Navigation via links Transformation via data flows Configuration via compositional ontologies HTSQL YAML Relational Models Structured (Tabular) Data

YAML:YAML Ain t Markup Language YAML is a human friendly data serialization standard for all programming languages. Developed by Clark C. Evans (partner at Prometheus) starting 2001 Large community: tens of thousands of installs. 1.6M Google Search results. Tens of Millions of end users License (for LibYAML*): MIT *Written and maintained by Kirillo Simonov, Prometheus Research, LLC http://yaml.org/

HTSQL: A Navigational Query Language http://htsql.org/ Search HTSQL is a comprehensive navigational query language for relational databases. HTSQL IS A COMPREHENSIVE NAVIGATIONAL QUERY LANGUAGE FOR RELATIONAL DATABASES. NEWS DOCUMENTATION GALLERY DOWNLOAD COMMUNITY Developed by Clark C. Evans and Kyrillo Simonov (both at Prometheus), current implementation starting in 2010 HTSQL is designed for data analysts and other accidental programmers who have complex business inquiries to solve and need a productive tool to write and share database queries. HTSQL is free and open source software. Overview a gentle introduction to HTSQL Handbook install, configure, and use HTSQL Small community: hundreds of installs. 15.5K Google Search results.thousands of end users Features Tutorial learn HTSQL by example Reference HTSQL syntax, types, and functions License: dual licensed AGPLv3 (OSI Compliant) + Permissive Use license that is like a BSD license, but only for Open Source RDBMS (interesting: NOT OSI Compliant) Advanced Query Language HTSQL is a complete query language featuring automated linking, aggregation, projections, filters, macros, a compositional syntax, and a full set of data types & functions. Web Service Integration HTSQL is a web service that accepts queries as URLs, returning results formatted as HTML, JSON, CSV or XML. With HTSQL, databases can be accessed, secured, cached, and integrated using standard web technologies. Development Environment HTSQL includes a command line and web based query editor with syntax highlighting, context-sensitive completion, and error messages with tips and suggestions. Relational Database Gateway HTSQL requests are translated to efficient SQL queries. HTSQL supports different SQL dialects including SQLite, PostgreSQL, MySQL, Oracle, and Microsoft SQL Server. Embedded Reporting HTSQL is a backend framework supporting visual dashboard and reporting tools. HTSQL can be included in client-side Javascript or server-side Python applications. HTSQL plugins can provide domain specific customizations. Communication Tool HTSQL is used for collaboration among business users, data analysts, and application developers. HTSQL queries can be emailed, embedded in reports, and included in feature requests.

RexDB: Research Exchange Database Teams Repositories Create owner/r rexdb prometheus Share Clone Branch A platform that allows analysts to configure relational databases and powerful web applications to manage biomedical research data. Very new: current implementation publicly released Mar 31! Tiny community: dozens of installs. 4.6K Google Search results. Hundreds of end users. License: AGPLv3 (OSI Compliant) Overview Source Commits Branches Pull requests Downloads RexDB Demo Installation Directions General Installation Install App Install rex.setup pip install rex.setup Install rex.rexdb from a package server pip install rexdb==3.1.0 == or == Install rex.rexdb from source hg clone ssh://hg@bitbucket.org/prometheus/rexdb pip install -e rexdb Choose if you want to start an instance of RexStudy, RexRegistry or RexSurvey Follow the choosen path below: RexStudy Specific Application Deploy DB https://bitbucket.org/ prometheus/rexdb rex rdoma-deploy rex.study --set=db=pgsql:<db_name> rex rdoma-deploy rex.explore --set=db=pgsql:<db_name> rex rdoma-deploy rex.formbuilder --set=db=pgsql:<db_name> rex rdoma-deploy rex.roads --set=db=pgsql:<db_name> rex rdoma-deploy rex.study_demo --set=db=pgsql:<db_name> (optional) HTTPS Owner Access level Type Last updated Created Size Membership htt 1 Branch T Invite user Send invitat Add User Use HTSQL to add a user (Example of user = rexdb.charles with email charles@rexdb.com) htsql-ctl shell pgsql:<db_name>-e tweak.etl Run the following HTSQL commands: /merge(user_group:={name:='rexdb',module:=[['rex_study'].core]}) /merge(user:={user_group:=['rexdb'],name:='charles',email:='charles@rexdb.com'})

The Right License Type Permissive (BSD/MIT/Apache) Copyleft (GPL/AGPL) What Do whatever you want with the code; don t sue us. Use and distribute the code however you want; but if you make a derivative work you can ONLY distribute it under a similar license Why Maximum adoption Some protection against a competitor licensing your work; may provide incentive to contribute back Why not Competitors can do whatever they want with your code Reduces adoption; need to worry about copyright assignment for contributors; risk of getting forked (if you have proprietary extensions)

Community Norms for OS Projects Public code repository usually on Github or BitBucket OSI-blessed license Public issue tracker Mailing list + irc channel on freenode.net Project Website; documentation and installation instructions Extra credit: get added to a standard Linux distribution (RedHat, Debian) Special Challenges of Copyleft licenses Copyright assignment by external contributors (for copyleft only, and only if you plan proprietary extensions) Issues solved by contributor covenants Can you have an open-source base product but keep the sweet features in a proprietary version? Open core is frowned upon creates perverse incentives and increases probability of getting forked

Real Openness: Benefits and Costs Lowers barriers to adoption Improves credibility Aligns community Helps resolve IP issues with customers Improves code quality Hire better developers?attracts external contributors? Your dirty laundry is always on full public display Managing the community: don t get forked Quality costs money Must support external collaborators Your competitors can monitor everything you re doing and can use it at any time

Would we do it again? Depends on the kind of software Small utility libraries that are broadly useful absolutely Large application frameworks maybe DevOps automation maybe Front ends specialized to specific domains only for large market f(#users, #contributors, clarity of problem definition) Potential Contributors 100000 10000 1000 100 10 Potential Users vs Potential Contributors Utility Library App Framework Domain-Specific App BSD/MIT GPL Proprietary 1 100 1000 10000 100000 1M Potential Users

Thank You! The entire Prometheus team Clark Evans my personal open source guru Charles Tirrell Product Manager for RexDB Frank Farach Product Manager for RexMart David Voccola Owen McGettrick