Christina de Vries https://itacs.de
- two mentoring tools will be shown
- Ad-Hoc Mentoring with the Case Clinic
- solve a problem n 70 min
- Tool is avaiable online
- u.lab 1x on Youtube
- https://www.presencing.org/#/
- 12 Weeks working out loud
- one guide every week
- http://workingoutloud.com/
- See the five elments of WOL
- from the audience http://exercism.io/
Luciano Resende IBM Code /Apache Foundation
-
improve personal/brand recog.
-
promote new technologies
-
opensource as "defacto" standard
-
ATTENTION: public code != open source => License it Opensource-way https://opensource.org/licenses
-
Permissive
-
strongly-rpotective or strong-copyleft
-
weakly-protective or weak-copyleft
-
For this talks context we choose Apache License
-
lic. dependencies https://www.dwheeler.com/essays/floss-license-slide.html
- https://developercertificate.org/ used in github "pull request template" at projects
-
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
- lawyer from audience recommends https://spdx.org/ https://www.fossology.org/
Owen O'Mally Hortonworks (Hadoop/Hive/ORC project)
- 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
- Show adv/disadv
- example Hadop RecordIO
- example Hive LLAP => Live, Long & Process ;-)
- releaseable sub-projects
- example Hadoop Ozone faster release than Hadoop
- 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
- Orc beng inside in of Hive hindering adpotion
- New code and new comitters with new prog. lang.
- same with hive metastore
- 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"
- politics!
- fast builds, release cycles, easier for newcomers, (you get the idea)
- backwards compatiblity!
- projects are each other "tests"
- cross project changes are extra work always (if common interface for all components change)
- community first!
- tightness of integrations?
- tooling (as always)
- don't worry: you can change your mind always!
- splitting out project for deprecation? host says: no because lack of community and community is first! (i get that point)
Michael Kromer Kupano
-
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
- Review
- CI automated Quality Checks
- CI => Regession / Upgrade safe
- QA: verification of all checks, manual check: issue solved
Tracy Evans, Jeffrey McGuire Open Strategy Partners
- use words the wrong way
- bullshit bingo
- Authentic communication => Connection => Community
- Authentic Communication => no BS.
- examples for mistrust, blame, jargon (bad!)
- connect with empathy
- the importance of common language
- https://www.ted.com/talks/frances_frei_how_to_build_and_rebuild_trust
- Trust signals: no bs. no jargon. technically accurate, ...
- "The People behind tech"
- https://github.com/drud/sprint_guide
- 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, ...
- Levels: Attention => Intereste in concept => trust in tech/concept => trust in community => contribute
Trevor Grant OpenSource Evangelist IBM
- all about the Mahout project
- so you're the marketing team
- Exception: OSS product has a company and they pay for it.
- Awareness => Consideration => Download => User => Contributor
- after 2014: assumed dead
- Spring '17: blogposts from PMC
- Early '18: blogposts from non-PMC
- 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
- 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
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
Bertrand Delacretaz Adobe Research (CH)
- great asset but communication harder escecially on low bandwidth channels ;-)
- 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)
- 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
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 ;-)
Philipp Krenn elastic / ELK guy
- Support, consulting, commercial extension
- ease of use => make it hard to sell support?
- Renewal rates => why pay after we have no problems in years?
- Consulting only Competition
- e.g. MySQL with dual licensing, MAPR commercial extensions
- alternatives competition on commercial parts, cloud provides may take also this
- Lock-in
- e.g. wordpress.com, sentry
- cloud providers again
- AGPL as solution => mongoDB => lead to cosmosdb same wire protocol
- dead "parts" of the project
- e.g. influxdb, rethinkdb (already dead), docker (wait for it)
- OpenSource vs Opencode
- e.g. Gitlab, Cockroach Labs
- Sales vs Engineering, sell everythings vs everything OSS
- All Code Open => not OSS
- X-pack => has EULA (Contract) code is avaialable openly
- e.g. PostgreSQL
Mark Thomas Tomcat Project
- catalysts for activity
- should be easy
- e.g. Tomcat: monthly release all automated
- make it smoothest you possibly can
- 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
- full-time vs occasional
- speed of decision making
- dangerous/bad: small number dominating project
- JIRA has lots of configuration options
- GitHub Reviews and CI tooling
- dangerous/bad: Rigid processes
- committers are individuals
- committers scratch their own itch
- dangerous/bad ideas: one committer directing other committers
- should be minimal (on project issues)
- dangerous/bad:
- more private than public mail
- off-list communication
Zoran Regvart Apache Camel Committer & PMC Member
- patterns
- components
- endpoint (each component provides one) compares to queuenames, soap-endpoint …
- data transformation
- route
- aggregate, load balancing, circuit breaker, marshall/unmarshall, delay, multicast, …
- also saga: https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/saga-eip.adoc
- aggregate: messages arrive => new message as aggregation of arrived
- HTTP, Message Systestem, various File Systems, DNS, Docker, …, Kafka, Kubernetes, …
- is an URI
- consume/receive or produce/send
- flow of data definition
- pseduocode/javacode:
from().unmarshal().json().when().otherwise()
- XML syntax available
- 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/
- 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
- CoAP, Eclipse Kura, IEC 60870, MQTT/eclipse Pao, PubNub, SNMP
- JBoss Camel Developer Tools
- Hawt.io again :-)
- IDEA plugin, …
Florian Effenberger Document Foundation / Libreoffice Project
-
Why Foundation "Stiftung"
-
How organized
-
board of directors <= votes = board of trustees
-
advisory board for companies and orgs
-
one-third rule in the statutes
-
not that interesting at all … much discussion of legal issues and how statues would hem with them.
Lorna Jane Mitchell Developer Advocate, IBM Watson Data Platform
- small, scalable apps (microservices!)
- occasional server needs
- compute power
- heavy lifiting off web platform (e.g. pdf rendering)
- definition of microservices
- http apis.
- prefer RESTful'ish APIs / must be stateless
- Microservice = Servless function + API Endpoint
- some Js Code shown with promise
- webconsole
- API KEY
- Oauth social login
-
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>
- Travis CI here
- ideal for working with many small parts
- Apache Openwhisk with API Gateway: perfect candidate for microservices
Mark Struberg, Lifelong Learner & Software Architect
- 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
-
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 …
- XA fast connections a MUST
- eventual consistency
- compensations
- persistent messaging
- Advice: cut large. ^^
- no of course not!
- 3 startegies: massve integration tests vs mocking the hell out your project vs capture'n'replay
-
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