Slide 1

Slide 1 text

Open Source Community and How to Join HUNG-WEI CHIU, LINKER NETWORKS.INC [email protected]

Slide 2

Slide 2 text

Who Am I  Hung-Wei Chiu (hwchiu)  [email protected]  hwchiu.com  Experience  Software Engineer at Linker Netowrks  Software Engineer at Synology (2014~2017)  Co-Found of SDNDS-TW  Open Source experience  SDN related projects (mininet, ONOS, Floodlight, awesome-sdn)  Others

Slide 3

Slide 3 text

Linker Networks  Provide vitalization platform for 5G/AI  DCOS, Kubernetes  Cooperate with ONF(Open Network Foundation) to provide Kubernetes solution.  Many community founder/co-founder  GolangTW  Docker.Taipei  SDNDS-TW

Slide 4

Slide 4 text

Outline  What is Open Source  Why Open Source  Business about Open Source  How to join Open Source

Slide 5

Slide 5 text

Before we start

Slide 6

Slide 6 text

2017/11/07~2017/11/09 San Jose

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

FUTUREWEI  Head of US Open Source Program Office  Senior Director of Strategy and Business Development  How HUAWEI treat Open Source

Slide 9

Slide 9 text

What is Open Source?

Slide 10

Slide 10 text

Have You Heard Of  Operations System  Linux/FreeBSD/Android  Version Control  Github/Git/Bitbucket  Deep Learning  Tensorflow/Darkflow/ImageNet/Yolo/Caffe  Programming Language  Nodejs/Go/Python  Browser  Chrome, Firefox

Slide 11

Slide 11 text

Open Source Everywhere

Slide 12

Slide 12 text

What is Open Source  From OSI (Open Source Initiative)  Free Redistribution  Source code  Derived work  No Discrimination Against Persons or Groups/Fields of Endeavor

Slide 13

Slide 13 text

The Opposite Is Closed Source  Microsoft Windows  Microsoft Office  Microsoft Internet Explorer  Mac OSX  Adobe Photoshop  Others

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Why Open Source?

Slide 16

Slide 16 text

For Software Itself  Given enough eyeballs, all bugs are shallow  Tends to produce better quality software  Hard to insert backdoors  You can watch whole Linux Kernel source code  https://elixir.free-electrons.com/linux/latest/source

Slide 17

Slide 17 text

For Software Itself  Patch on your own schedule  Make it better  When a bug/vulnerability is discovered  Don’t wait the specific vendor/owner to fix it.  You can fix it  Cisco says router bug could be result of ‘cosmic radiation’

Slide 18

Slide 18 text

For Developer  Shift developers from low-value work to high-value work  Don’t reinvent wheels  Stand on the shoulders of giants  If you want to write a simple ”Hallow World” application.  Kernel (support keyboard, monitor, mouse)  Editor (modify the language)  Compiler/Assembler (for existing language)  Write your application printf(“Hello World\n”)

Slide 19

Slide 19 text

For Developer  Make your coding skill better  Readability  Flexibility  Stability  There are also many tools/docs can help you to improve your coding style.  Pylint, jslint, golint, etc.  Coding style reference (google)  Diagnostic tool

Slide 20

Slide 20 text

For Developer  Learn how to work with others.  Document  Version control  Discuss  Peer Review/Code Review  Better coding style  Avoid blind spot

Slide 21

Slide 21 text

For Developer  Gain reputation/opportunity  A story about my friend  Research SDN  ONOS controller, no IPv6 features  Intern  Works on Silicon Valley now.

Slide 22

Slide 22 text

Business How about business?

Slide 23

Slide 23 text

Non-Profit Organization  Linux Foundation  Linux  OpenStack Foundation  OpenStack  Open Networking Foundation  ONOS/CORD

Slide 24

Slide 24 text

Non-Profit Organization  Member/Public  Member fee  High priority support  Board  Lead some open source projects  Standard/Technique

Slide 25

Slide 25 text

Profit Company  Save Time  System Integration Company  Provides  Customized feature  Better support  Other  Provide a product  Partial open source (License)  Enterprise/Community version

Slide 26

Slide 26 text

For Example  Linux  Red Hat Enterprise Linux (Red Hat)  Ubuntu (Canonical)  OpenStack  99Cloud  EasyStack  InwinStack

Slide 27

Slide 27 text

Another-Example CSCC  Save Money  Computer Science Computer Center  For NCTU-CS department  Maintain Linux/BSD workstations  Provide services for CS departments

Slide 28

Slide 28 text

A story

Slide 29

Slide 29 text

How to use open source to build a wireless router?

Slide 30

Slide 30 text

Wireless Router

Slide 31

Slide 31 text

Features (Software)  Web UI management  Traffic/Parental Control/QoS  Security (IPS/IDS/DPI)  VPN Server  Port Forwarding/Port Trigger  Filter/Firewall  IPv6/PPPoE/DHCP/NAT  Dual Homing/LACP/Bonding

Slide 32

Slide 32 text

First  You need to have a kernel

Slide 33

Slide 33 text

By the way  Linux has many friends.  User space tools  Iptable  tc  Kernel function  Netfilter  Tc  Conntrack  Bonding

Slide 34

Slide 34 text

Features (Software)  Web UI management  Traffic/Parental Control  Security (IPS/IDS/DPI)  VPN Server  Port Forwarding/Port Trigger  Filter/Firewall  IPv6/PPPoE/DHCP/NAT  Dual Homing/LACP/Bonding

Slide 35

Slide 35 text

Web UI  Web Server  Nginx/Apace/Lighttpd  Front-end language  JS/CSS/HTML

Slide 36

Slide 36 text

Security (IPS/IDS/DPI)  IPS/IDS  Snort  Suricata  DPI  NDPI  Netifyd

Slide 37

Slide 37 text

VPN  VPN Server  OpenVPN  SoftetherVPN  Linux Kernel support  IPSec  Strongswan  libreswan

Slide 38

Slide 38 text

Combine All

Slide 39

Slide 39 text

How to join Open Source ?

Slide 40

Slide 40 text

Which Open Source Project ?  You’re using now  The language/tools/software you know  There are something you want to learn or have interest in.  You want to make it better

Slide 41

Slide 41 text

For Example  Any programming language  NodeJs, Python, React, go  Any frameworks  Django,Rais,  Any infrastructure/deployment/virtualization  Kubernets, OpenStack, Docker, Ansible  Any useful tools  Any funny side projects

Slide 42

Slide 42 text

How to contribute/join it ?  Document  Report Bug/Fix Bug  Test  Promote  Discuss  Translate

Slide 43

Slide 43 text

Document  Official website  wiki/github  Personal blog/gitbook  Awesome series  https://github.com/sindresorhus/awesome  Just document everything you know.

Slide 44

Slide 44 text

Example  Github project:  state-of-the-art-result-for-machine-learning-problems

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

Report Bug/Fix Bug  Report bug  Github issue  Post on forum/mail/slack/irc  Find a bug and fix it.  Hard to join.  Github pull request  Discuss on forum/mail/slack/irc/github

Slide 49

Slide 49 text

Another Story  99Cloud  Openstack SI  200RMB per commit

Slide 50

Slide 50 text

Test  Test it and report bug.  You can also writing testing for them.  Unit Test  Code coverage  Software Integrity

Slide 51

Slide 51 text

Promote  Hold a local meetup/conference  Promote it  How to use  Help someone  Local community  Personal blog/website

Slide 52

Slide 52 text

Discuss  Forum, IRC ,Slack ,Mail, etc.  Stack Overflow  Github issue/pull request

Slide 53

Slide 53 text

Translate  I18n  Internationalization

Slide 54

Slide 54 text

Next Step  Don’t be shy  Don’t be afraid  Don’t be scared  Just do it.

Slide 55

Slide 55 text

Summary  Make the world better  No need to reinvent the wheel  Not only be a taker, but also be a giver  It’s never to late to join Open Source