Skip to content

Instantly share code, notes, and snippets.

@criess
Last active June 14, 2018 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save criess/bb92d26e0756addb8a7ca3701b627865 to your computer and use it in GitHub Desktop.
Save criess/bb92d26e0756addb8a7ca3701b627865 to your computer and use it in GitHub Desktop.

Mentoring P2P (2018-06-13)

Christina de Vries https://itacs.de

  • two mentoring tools will be shown

OpenSource Option 1

Open Source Option 2

discussion

A practical guide to bring your project to OpenSource (2018-06-13)

Luciano Resende IBM Code /Apache Foundation

why?

  • improve personal/brand recog.

  • promote new technologies

  • opensource as "defacto" standard

  • ATTENTION: public code != open source => License it Opensource-way https://opensource.org/licenses

license categories:

Contributions

Community:

  • attract user with getting-started guides, docs, tests (quite obvious)

  • attract contributors: welcoming, keep list of easy tasks

  • way of becoming apache incubator project => not so interesting

discussion

Untangling spaghetti - when and how to split projects (2018-06-13)

Owen O'Mally Hortonworks (Hadoop/Hive/ORC project)

Lifecylce

  • compete for community
  • start young and nimble
  • as they age they slow down
  • eventually releases stop
  • like bicycles: if you down go/stop you may fall over

Joinig Established projects

  • Show adv/disadv
  • example Hadop RecordIO
  • example Hive LLAP => Live, Long & Process ;-)

Together but Separate

  • releaseable sub-projects
  • example Hadoop Ozone faster release than Hadoop

Starting a new project

  • address integration immediately
  • downside: will your community be big enough to survive?
  • example Avro <=> see RecordIO above!
  • example Tez => could also be in Hive because it's almost completey dependant on Hive

Where to put example: ORC?

  • Orc beng inside in of Hive hindering adpotion
  • New code and new comitters with new prog. lang.
  • same with hive metastore

Change is hard:

  • heavy use of interfaces and api
  • code duplication should be down
  • ORC depending on 16k (!!!) classes
  • custom tool to analzye dependecnies; classifying classes afterwards ;-)
  • abtracting layers etc ....
  • lots of work down to ~40 classes dependency
  • & more splitting headache
  • splitting up community is very dangerous! "Exlusive Community"
  • will start a new community: friendly and welcome very important: small project with low "committer-bar"

joys of small projects

  • politics!
  • fast builds, release cycles, easier for newcomers, (you get the idea)

challenges of small projects

  • backwards compatiblity!
  • projects are each other "tests"
  • cross project changes are extra work always (if common interface for all components change)

summary

  • community first!
  • tightness of integrations?
  • tooling (as always)
  • don't worry: you can change your mind always!

discussion

  • splitting out project for deprecation? host says: no because lack of community and community is first! (i get that point)

Community guide to contributing to mature software projects (2018-06-13)

Michael Kromer Kupano

One goal

  • stable, working, trusted and secure software

  • Organisational Differences

  • Committer Checklist

  • problem on issues,wiki ... => create ONE

  • License ok for you?

  • BE DESCRIPTIVE on commit/PR

From Code to quality

  • Review
  • CI automated Quality Checks
  • CI => Regession / Upgrade safe
  • QA: verification of all checks, manual check: issue solved

Marketing your project to increase adoption and grow community (2018-06-13)

Tracy Evans, Jeffrey McGuire Open Strategy Partners

Marketing

  • use words the wrong way
  • bullshit bingo

Communication / Connection / Community

  • Authentic communication => Connection => Community
  • Authentic Communication => no BS.
  • examples for mistrust, blame, jargon (bad!)
  • connect with empathy

Clarity

Campaign Execution

Building your contribution strategy

  • grow community
    • measurable goals
  • who are your contributors
  • vibrancy signals
    • state of docs, downloads, regular releases, activity on github, clear community guidelines
  • is your project useful and important to me?
  • why contribute?
    • improve, learn, career and reputation, teach (!) ...
    • identify negative catalysts => take actions to unblock!
  • "Effective" contribution
    • marketing contributions: promote and talk, write bog/socialmedia,...
  • Howto contribute
    • build intrinsic motivation => super cool community docs!
  • narratives/stories
    • example DRUD/DDEV: make dev lives better, oss events, ...

Empathy Map

  • Levels: Attention => Intereste in concept => trust in tech/concept => trust in community => contribute

The perils of building better mousetraps (2018-06-13)

Trevor Grant OpenSource Evangelist IBM

  • all about the Mahout project

Marketing for everyone

  • so you're the marketing team
  • Exception: OSS product has a company and they pay for it.

Maketing Funnel

  • Awareness => Consideration => Download => User => Contributor
  • after 2014: assumed dead
  • Spring '17: blogposts from PMC
  • Early '18: blogposts from non-PMC

Funnel solutions

  • Awareness => Evangelism (blogs, analytics)
  • Consideration => Logo, Website, New Features
  • Download =>
    • bad to install and depedencies
    • Massive POM (maven/java) cleaning
    • Opensource projects like a family - whenever you have time you fight
  • User =>
    • TensorFlow and Scala DSL like R (everbody knows R lang)
    • engine neutrality
  • Contributor =>
    • templates for algorithms

discussion

  • bikeshed argumenting on logo => give an external just the power if nobody complains afterwards we're fine.
  • marketing takes time pe patient (you developers!) also outcome vs inpus

Managing conflict in Open Source Communities (2018-06-13)

George deMet https://www.palantir.net/

  • nonTech Drupal guy
  • Experience or observe conflict in Drupal v8 development: 60.2% says yes other no. (asked 103 contrubutors)
  • unmet needs often lead to negative conflict; not all conflict bad!
  • consequences: decline in morale and productivity etc …
  • Code of Conduct as solution, inclusive place and safe to contribute (for minorities)
  • But needs structure to support or mechanism to enforce
  • example: Drupal community working group
    • volunteer independent group
    • to uphold code of conduct
    • Process, process, process (have a method to deal with it this may take along time) https://www.drupal.org/conflict-resolution
    • bar fight metaphor: take them out talk them down ;-)
  • lessons learned
    • escalation and appeals must be well defined
    • ensure expectations set and managed throughout the process
  • Quote "trolls set a cunning trap. By ignoring their provocations, you risk seeming complicit. By responding, you amplify their message."
  • Helping everyone succeed
    • streamline communication channels
    • improve docs
    • mentorship programms beyond newcomers
    • broaden leadership style

They don't understand me! tales from the multicultural trenches (2018-06-23)

Bertrand Delacretaz Adobe Research (CH)

  • great asset but communication harder escecially on low bandwidth channels ;-)

examples of catastrophes

  • sailing example: costa cordalis => personell of 38 nationalities => decision for italian lang => 1st engineer did not understand orders (all example from accident report)
  • jokes will give all reactions, maybe considered offensive e.g.
  • choose forms: tu and vous in french …
  • pluzzled and horrified faces are direct. but in writing/text?
  • challenger catastrophe in `86: obvious to engineers unable to communicate to managers! (O-Ring diagram https://alumni.stanford.edu/get/file2/publication/article/SAAMAG/32181/pending/VEp45_ring_damage2.jpg)

examples to fix communication/misunderstanding

  • ASD-STE 100 satndardized simplified english for aviation
  • assume good intentions
  • ask for clarification
  • reformulate
  • code speaks louder than words (Dont talk too much ...)
  • https://en.wikipedia.org/wiki/Irony_punctuation and sarcmark
  • phrasing things in friendly, constructive way

Complex Made Simple: Governance in Open Source (2018-06-14)

Shane Coughlan

  • Keynote
  • http://www.openchainproject.org
  • why the OSS is so vibrant today, the things going on in china etc ... document it!
  • whats going on in society and how opensource fits into it.
  • missed half of it ;-)

Open Source as a Business: Strategy, Struggle & Success (2018-06-14)

Philipp Krenn elastic / ELK guy

Services

  • Support, consulting, commercial extension

Support Problem

  • ease of use => make it hard to sell support?
  • Renewal rates => why pay after we have no problems in years?
  • Consulting only Competition

Opencore

  • e.g. MySQL with dual licensing, MAPR commercial extensions
  • alternatives competition on commercial parts, cloud provides may take also this
  • Lock-in

Cloud Service

  • e.g. wordpress.com, sentry
  • cloud providers again
  • AGPL as solution => mongoDB => lead to cosmosdb same wire protocol

Users

  • dead "parts" of the project

money out - no business case:

  • e.g. influxdb, rethinkdb (already dead), docker (wait for it)

OPEN

  • OpenSource vs Opencode
  • e.g. Gitlab, Cockroach Labs
  • Sales vs Engineering, sell everythings vs everything OSS

What elastic did:

  • All Code Open => not OSS
  • X-pack => has EULA (Contract) code is avaialable openly

Not all OSS is Product or company:

  • e.g. PostgreSQL

Community anti-patterns (2018-06-14)

Mark Thomas Tomcat Project

Releases

  • catalysts for activity
  • should be easy
  • e.g. Tomcat: monthly release all automated
  • make it smoothest you possibly can

adding committers

  • the lower the bar, the healthier the community
  • all Code => VCS!
  • dangerous/bad ideas:
    • new committers criteria/checklist ... maybe bad idea
    • no new committers for more than

dominant committers

  • full-time vs occasional
  • speed of decision making
  • dangerous/bad: small number dominating project

tool config

  • JIRA has lots of configuration options
  • GitHub Reviews and CI tooling
  • dangerous/bad: Rigid processes

project managers

  • committers are individuals
  • committers scratch their own itch
  • dangerous/bad ideas: one committer directing other committers

private communication

  • should be minimal (on project issues)
  • dangerous/bad:
    • more private than public mail
    • off-list communication

Apache Camel: Integrate Everything (2018-06-24)

Zoran Regvart Apache Camel Committer & PMC Member

Concepts

  • patterns
  • components
  • endpoint (each component provides one) compares to queuenames, soap-endpoint …
  • data transformation
  • route

Patterns

Components

  • HTTP, Message Systestem, various File Systems, DNS, Docker, …, Kafka, Kubernetes, …

Endpoints

  • is an URI
  • consume/receive or produce/send

Routes

  • flow of data definition
  • pseduocode/javacode: from().unmarshal().json().when().otherwise()
  • XML syntax available

DEMO

  • Java funtime: Spring + SpringBoot + Camel
  • see slides (if i find)
  • ProTipp: http://hawt.io/: jmx over http + frontend with plugins
  • runs on OSGI Apache Karaf - small environments https://karaf.apache.org/

IOT

  • on device: constrained, low power, specialised
  • at the edge: connectivity, messaging, computing e.g Camel, Kura
  • at scale: distrbution, scheduling, insights, e.g Camel, Kapua, Openshift

IOT Components in Camel

  • CoAP, Eclipse Kura, IEC 60870, MQTT/eclipse Pao, PubNub, SNMP

Tools

  • JBoss Camel Developer Tools
  • Hawt.io again :-)
  • IDEA plugin, …

The Document Foundation: The open, transparent and meritocratic future of free office software

Florian Effenberger Document Foundation / Libreoffice Project

Serverless Microservices are the New Black (2018-06-14)

Lorna Jane Mitchell Developer Advocate, IBM Watson Data Platform

When to go serverless

  • small, scalable apps (microservices!)
  • occasional server needs
  • compute power
  • heavy lifiting off web platform (e.g. pdf rendering)

FAAS + http = microservices

  • definition of microservices
  • http apis.
  • prefer RESTful'ish APIs / must be stateless

Creating microservices

  • Microservice = Servless function + API Endpoint
  • some Js Code shown with promise

Security

  • webconsole
    • API KEY
    • Oauth social login

Project structrue

  • a best practive from talker:

  • deploy.sh

  • get-plans

    • index.js
    • <full npm/node project files>
  • write-plans

    • index.js
    • <full npm/node project files>

deployment

  • Travis CI here

Serverless

  • ideal for working with many small parts
  • Apache Openwhisk with API Gateway: perfect candidate for microservices

The Cool and the Cruel of MicroService (2018-06-14)

Mark Struberg, Lifelong Learner & Software Architect

intro

  • quote: "if you have a hammer every problems seems to be a nail"
  • quote: "es gibt für jede Schraube den passenden Hammer"
  • Every desicion with all pros and cons

if microscervices is the answer

  • problem is monolith (dimensions shown)

  • Giving defintion of microservice

  • questions: How big is small?

  • code size/bin size:

    • e.g. Apache TomEE 35Mb
    • e.g. Apache Meecrowave 9MB
  • questions "independent" service?

    • defintion of "Independence"
    • versioning …
    • unsued features?
    • independent data / language / frameworks …

data consistency and transactions

  • XA fast connections a MUST
  • eventual consistency
  • compensations
  • persistent messaging
  • Advice: cut large. ^^

netflix does all that?

  • no of course not!

testing the ball of mud

  • 3 startegies: massve integration tests vs mocking the hell out your project vs capture'n'replay

the takeaway

  • XA problems: stpore steps separately/stateful machine, circuit breakers, bulkheads,

  • monolithic probles maybe solved with microservices

  • micorservice problems maybe soluved by monoliths

  • tricks:

    • separate high-volumne/low-consitency from important things
    • split your whole problem in distinct parts with their own database
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment