building and maintaining open source project - ywc14

69
Building and Maintaining OpenSource Projects. http://slideshare.net/akarawuth คร ราเยง @JoomlaCorner 22 ..2559

Upload: akarawuth-tamrareang

Post on 20-Jan-2017

26 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Building and Maintaining Open Source Project - YWC14

Building and Maintaining OpenSource Projects.

http://slideshare.net/akarawuth

อัครวุฒิ ตำราเรียง @JoomlaCorner 22 ธ.ค.2559

Page 2: Building and Maintaining Open Source Project - YWC14

Who am I ?

Page 3: Building and Maintaining Open Source Project - YWC14

Who am I ?

เป็น จูเนียร์โปรแกรมเมอร์

Page 4: Building and Maintaining Open Source Project - YWC14

Who am I ?

เป็น จูเนียร์โปรแกรมเมอร์

เมื่อ 27 ปีที่แล้ว

Page 5: Building and Maintaining Open Source Project - YWC14

ปัจจุบัน

อัครวุฒิ ตำราเรียงAkarawuth Tamrareang

(JoomlaCorner)

[email protected]

twitter: @joomlacornerwww.marvelic.co.th

www.joomlacorner.com

Tel : 02-235-7629 , 02-077-8366

- กรรมการผู้จัดการ Marvelic Engine Co.,Ltd.

www.marvelic.co.th

- Joomla! Bug Squad : joomla.org - Founder JoomlaCorner.com

- อุปนายกสมาคมศึกษาและพัฒนาโอเพ่นซอร์ส (OSEDA.or.th)- กรรมการควบคุมจริยธรรม สมาคมผู้ดูแลเว็บไทย

- อดีตกรรมการบริหาร OpenSource Matters Inc. (Joomla Project)

- ผู้อำนวยการฝ่ายเทคโนโลยีสารสนเทศ สมาคมอาสาสมัครบรรเทาสาธารณภัยแห่งประเทศไทย

- ที่ปรึกษาสมาคมการดับเพลิงและช่วยชีวิต

Page 6: Building and Maintaining Open Source Project - YWC14

What’s Open Source Software?

Page 7: Building and Maintaining Open Source Project - YWC14

What’s Open Source Software?

Open source software

is

software whose source code is available for

modification or enhancement by anyone.

Page 8: Building and Maintaining Open Source Project - YWC14

Open Source Projects

- อยากทำ Open Source Project จะเริ่มอย่างไร?

Page 9: Building and Maintaining Open Source Project - YWC14

- ทำความเข้าใจเรื่อง License กับ Copyright

Open Source Projects

- อยากทำ Open Source Project จะเริ่มอย่างไร?

Page 10: Building and Maintaining Open Source Project - YWC14

สิ่งที่เกี่ยวข้อง

• ลิขสิทธิ์ (Copyright) สิทธิในความเป็นเจ้าของ

• สัญญาอนุญาต,ใบอนุญาต (License)

• เครื่องหมายการค้า (Trademark)

Page 11: Building and Maintaining Open Source Project - YWC14

ลิขสิทธิ์ (ความเป็นเจ้าของ)

• คุ้มครองทันที่ที่เผยแพร่ ไม่แจ้งก็ได้ (ถ้าแจ้งก็จะสะดวกในการตามหาผู้ถือครองสิทธิ์)

• เช่น เว็บไซต์ เมื่อเผยแพร่เว็บไซต์ก็เป็นเจ้าของลิขสิทธิ์ข้อมูลนั้นทันที

“Code เป็นดั่งบทกวี”

Page 12: Building and Maintaining Open Source Project - YWC14

header file.

Page 13: Building and Maintaining Open Source Project - YWC14

ใบอนุญาต (License)

* http://opensource.org/licenses

• สิทธิในการใช้งานซอฟต์แวร์ ที่เจ้าของลิขสิทธิ์ยินยอมให้ผู้ใช้ปลายทางใช้ซอฟต์แวร์นั้นๆ ตามรายละเอียดและเงื่อนไขที่ระบุในใบอนุญาตใช้งานสำหรับผู้ใช้ปลายทาง

• Open Source Licenses* มีหลายแบบ เช่น GNU/GPL, GNU/LGPL , MIT license (MIT) , Mozilla Public License 2.0 (MPL-2.0)

Page 14: Building and Maintaining Open Source Project - YWC14

1. GNU General Public License (GPL)

เป็นลิขสิทธิ์พื้นฐานที่ถูกใช้กันอย่างแพร่หลายสำหรับ open-source projects ซึ่งเราสามารถทำสิ่งต่อไปนี้ได้

• Copy software ไปไว้ที่ไหนก็ได้และไม่มีการจำกัดจำนวน • แจกจ่ายให้กับใครก็ได้ • สามารถเก็บค่าใช้จ่ายได้ แต่มีข้อแม้ว่าจะต้องให้ source code ทั้งหมดแก่ผู้ซื้อเพื่อนำไปพัฒนาต่อด้วย

• แก้ไข ดัดแปลงได้ทั้งหมด เพื่อนำไปเป็นส่วนหนึ่งของ project ตัวเอง แต่ project นั้นจะต้องมีลิขสิทธิ์เป็น GPL ต่อด้วย

ใบอนุญาต (License)

Page 15: Building and Maintaining Open Source Project - YWC14

2. GNU Lesser General Public License (LGPL)

LGPL จะต่างกับ GPL ตรงที่ ถ้าเรานำ code หรือ libraries บางส่วนไปใช้กับงานที่ไม่ใช่ open-source project เราไม่จำเป็นต้องเปิดเผย source code หรือใช้ลิขสิทธิ์เดียวกับ GPL ก็ได้

3. MIT License

เป็นลิขสิทธิ์ที่มีความเรียบง่ายและสั้นที่สุดหากเทียบกับอันอื่น ๆ เพราะ MIT กล่าวอย่างชัดแจ้งว่าสิทธิ์การใช้งานนั้นเป็นของ end-user รวมทั้งสามารถนำไปใช้ คัดลอก แก้ไข แจกจ่าย หรือนำไปขายก็ยังได้ และไม่มีการจำกัดในเรื่องของงาน แต่จะต้องมีการใส่ข้อสัญญาของ MIT ลงไปในส่วนใดส่วนหนึ่งของงาน

ใบอนุญาต (License)

Page 16: Building and Maintaining Open Source Project - YWC14

4.Apache Licenseให้แสดงในเอกสารว่าเราได้ใช้ source code หรือ library ที่เป็น Apache License ส่วนโปรแกรมที่เราพัฒนาขึ้นมาใหม่จะใช้ license แบบไหนก็ได้

5.BSD Licensesง่ายๆ สั่นๆ จะเอาไปทำอะไรก็ได้ และ source code ที่ได้ทำการแก้ไขก็ไม่จำเป็นต้องส่งกลับ แต่ขอให้แสดงไว้ในเอกสารว่ามีส่วนของโปรแกรมที่พัฒนาต่อมาจาก source code ที่เป็น BSD License

6.Creative Commons Licensesถูกนำไปใช้ในลิขสิทธิ์ของผลงาน โดยอาจเป็นผลงานการเขียน รูปภาพ หรือการออกแบบ โดยเจ้าของผลงานสามารถเลือกได้ว่าผลงานของตัวเองจะให้มี license เป็นแบบไหน เช่น แสดงที่มา , แสดงที่มา-ไม่ใช้เพื่อการค้า , แสดงที่มา-ไม่ใช้เพื่อการค้า-ไม่ดัดแปลง เป็นต้น

ใบอนุญาต (License)

Page 17: Building and Maintaining Open Source Project - YWC14

ใบอนุญาต (License)

Page 18: Building and Maintaining Open Source Project - YWC14

ใบอนุญาต (License)

BSD

Page 19: Building and Maintaining Open Source Project - YWC14

ใบอนุญาต (License)

BSD

MIT

Page 20: Building and Maintaining Open Source Project - YWC14

ใบอนุญาต (License)

BSD

MIT

MIT

Page 21: Building and Maintaining Open Source Project - YWC14

เครื่องหมายการค้า • เครื่องหมายการค้า (Trade Mark) คือเครื่องหมายที่ใช้เป็นที่หมายเกี่ยวข้องกับสินค้าเพื่อแสดงว่าสินค้าที่ใช้เครื่องหมายนั้นแตกต่างกับสินค้าที่ใช้เครื่องหมายการค้าของบุคคลอื่น เช่น โค้ก เป๊ปซี่ บรีส แฟ้บ เป็นต้น

• เครื่องหมายบริการ (Service Mark) เครื่องหมายที่ใช้เป็นที่หมายหรือเกี่ยวข้องกับการบริการ เพื่อแสดงว่าบริการที่ใช้เครื่องหมายนั้นแตกต่างกับบริการที่ใช้เครื่องหมายบริการของบุคคลอื่น เช่น เครื่องหมายของสายการบิน ธนาคาร โรงแรม เป็นต้น

• เครื่องหมายรับรอง (Certification Mark) คือเครื่องหมายที่เจ้าของเครื่องหมายรับรองใช้เป็นเครื่องหมายหรือเกี่ยวข้องกับสินค้าและบริการของบุคคลอื่น เพื่อเป็นการรับรองคุณภาพของสินค้า หรือบริการนั้น เช่น เชลล์ชวนชิม แม่ช้อยนางรำ เป็นต้น

• เครื่องหมายร่วม (Collective Mark) เครื่องหมายการค้าหรือเครื่องหมายบริการที่ใช้โดยบริษัทหรือรัฐวิสาหกิจในกลุ่มเดียวกัน หรือโดยสมาชิกของสมาคม กลุ่มบุคคล หรือองค์กรอื่นใดของรัฐหรือเอกชน เช่น ตราช้างของบริษัทปูนซิเมนไทย จำกัด เป็นต้น

Page 22: Building and Maintaining Open Source Project - YWC14

What is a Community?

source : Joomla World Conference 2013

Page 23: Building and Maintaining Open Source Project - YWC14

อะไรคือส่วนประกอบที่สำคัญของคอมมูนิตี้?

Photo source - http://magazine.joomla.org

Page 24: Building and Maintaining Open Source Project - YWC14

การมีส่วนร่วม

การทำให้รู้สึกเป็นเจ้าของทำให้คนร่วมอยู่ในคอมมูนิตี้

Page 25: Building and Maintaining Open Source Project - YWC14

เปิดช่องทางการสื่อสาร

เปิดช่องทางการสื่อสาร ในช่องทางต่างๆ ที่เปิดโอกาสให้ทุกคนสามารถเข้าร่วมคอมมูนิตี้ ได้

Page 26: Building and Maintaining Open Source Project - YWC14

Open Tools

ใครก็ตามที่มีคอมพิวเตอร์และเชื่อมต่ออินเทอร์เน็ต สามารถที่จะร่วมสนับสนุนได้ (Contribute)

Page 27: Building and Maintaining Open Source Project - YWC14

ผู้จัดการคอมมูนิตี้

เขาคือใคร ?

Page 28: Building and Maintaining Open Source Project - YWC14

ผู้จัดการ คอมมูนิตี้ ทำหน้าที่ :

เปิดโอกาสให้คนได้เข้าร่วม

Page 29: Building and Maintaining Open Source Project - YWC14

ผู้จัดการ คอมมูนิตี้ ทำหน้าที่ :

เชื่อในทุกๆ อย่าง

Page 30: Building and Maintaining Open Source Project - YWC14

ผู้จัดการ คอมมูนิตี้ ทำหน้าที่ :

หลีกเลี่ยงความอีโก้ หรือคนอื่นๆ จะหลีกเลี่ยงคุณ

Page 31: Building and Maintaining Open Source Project - YWC14

Scaling the Community

• สร้างเครื่องมือที่เหมาะสม

• แก้ปัญหาความขัดแย้งในคอมมูนิตี้

• มีช่องทางการสื่อสารหลายช่องทาง (ขึ้นอยู่กับความ

ต้องการ)

Page 32: Building and Maintaining Open Source Project - YWC14

• ระบุวิธีการที่เราสามารถแบ่งคอมมูนิตี้ของเราเป็นทีมๆ • แน่ใจว่าแต่ละทีมจะสามารถสื่อสารได้กันได้อย่างชัดเจนและมี

ประสิทธิภาพ

• กำหนดขอบเขตของแต่ละทีมและช่วยเหลือสมาชิกของทีมให้

เข้าใจขอบเขตงานของทีมนั้นๆ

• ส่งเสริมให้มีความหลากหลายและสร้างโอกาสในคอมมูนิตี้

• เขียนจรรยาบรรณ (Code of Conduct) ขึ้นมา

Community TODO list

Page 33: Building and Maintaining Open Source Project - YWC14

หนึ่งปัญหาใหญ่ที่เกิดขึ้นในคอมมูนิตี้

Page 34: Building and Maintaining Open Source Project - YWC14

หนึ่งปัญหาใหญ่ที่เกิดขึ้นในคอมมูนิตี้

ความขัดแย้ง

Page 35: Building and Maintaining Open Source Project - YWC14

• ความสงบและความมั่นใจ

• ดูข้อเท็จจริงที่เกิดขึ้น

• สนทนาพูดคุย

• เอกสาร

• ทำให้เห็นถึงและการดูแลเอาใจใส่

ขั้นตอนการแก้ปัญหา ความขัดแย้ง

Page 36: Building and Maintaining Open Source Project - YWC14

เขาทำงานกันอย่างไรในโปรเจคฟรีระดับโลก

Page 37: Building and Maintaining Open Source Project - YWC14

เขาทำงานกันอย่างไรในโปรเจคฟรีระดับโลก

Page 38: Building and Maintaining Open Source Project - YWC14

Ten Years Together, as a community, as contributors, as friends.

https://www.youtube.com/watch?v=HMRM7CTnFAA

Page 39: Building and Maintaining Open Source Project - YWC14

Ten Years Together, as a community, as contributors, as friends.

https://www.youtube.com/watch?v=HMRM7CTnFAA

Page 40: Building and Maintaining Open Source Project - YWC14

Organization

Page 41: Building and Maintaining Open Source Project - YWC14

Joomla! Summit 2011

Page 42: Building and Maintaining Open Source Project - YWC14

OSM Summit 2011

Your OSM team, from left-to-right: Akarawuth Tamrareang, Thomas Hampton, Marijke Stuivenberg, Ryan Ozimek, Altansukh Tumenjargal, Robert Deutz, Alice Grevet, Jacques Rentzke, Sandy Ordonez, Paul Orwig, Dianne Henning

Page 43: Building and Maintaining Open Source Project - YWC14

เครื่องมือที่ใช้ (บางส่วน)

• Git ( gitHub.com ) github.com/joomla

• Document ใช้ Wiki docs.joomla.org

• Forum.joomla.org

• Glip

• Skype

Page 44: Building and Maintaining Open Source Project - YWC14

Flow การพัฒนา

• Tracker ( issue)

• Create Patch

• 3 คนทดสอบ

Page 45: Building and Maintaining Open Source Project - YWC14

issue.joomla.org

Page 46: Building and Maintaining Open Source Project - YWC14

Communication

Page 47: Building and Maintaining Open Source Project - YWC14

Skype

Page 48: Building and Maintaining Open Source Project - YWC14

Glip

Page 49: Building and Maintaining Open Source Project - YWC14

Copyright , License, Trademark

• Copyright : OpenSource Matter Inc.

• License : GNU/GPL

• Trademark : Joomla!

Page 50: Building and Maintaining Open Source Project - YWC14

Events

Page 51: Building and Maintaining Open Source Project - YWC14

Joomla World Conference 2012

Page 52: Building and Maintaining Open Source Project - YWC14

Joomla World Conference 2013

Page 53: Building and Maintaining Open Source Project - YWC14

Pull request at JWC

Page 54: Building and Maintaining Open Source Project - YWC14

วิทยากรที่มาบรรยายในงาน JWC

Page 55: Building and Maintaining Open Source Project - YWC14

วิทยากรที่มาบรรยายในงาน JWC

Matthew C. MullenwegWordPress/Automattic Founder

Page 56: Building and Maintaining Open Source Project - YWC14

วิทยากรที่มาบรรยายในงาน JWC

Jono Bacon Community Manager

led the Ubuntu community at Canonical.

Page 57: Building and Maintaining Open Source Project - YWC14
Page 58: Building and Maintaining Open Source Project - YWC14

https://www.youtube.com/watch?v=v3GSfIPYMwI

Page 59: Building and Maintaining Open Source Project - YWC14

https://www.youtube.com/watch?v=v3GSfIPYMwI

Page 60: Building and Maintaining Open Source Project - YWC14

Community Activity

ไทย,เวียดนาม,อินเดีย,จีน,ไต้หวัน,มาเลเซีย, เบลเยียม

Page 61: Building and Maintaining Open Source Project - YWC14

CC BY-NC-ND 3.0 - Google Inc.

Google Summer of Code 2016

Page 62: Building and Maintaining Open Source Project - YWC14
Page 63: Building and Maintaining Open Source Project - YWC14

ทีมพัฒนา FLEXIContent CCK for Joomla!

FLEXIContent.org

Page 64: Building and Maintaining Open Source Project - YWC14

ทีมพัฒนา FLEXIContent CCK for Joomla!

FLEXIContent.org

Page 65: Building and Maintaining Open Source Project - YWC14

mautic.org

Marketing Automation

Page 66: Building and Maintaining Open Source Project - YWC14

mautic.com

Page 67: Building and Maintaining Open Source Project - YWC14

Business Model

Page 68: Building and Maintaining Open Source Project - YWC14

Photo source - http://magazine.joomla.org

Technology does not better the world,

People do!

Page 69: Building and Maintaining Open Source Project - YWC14

Q&A http://www.marvelic.co.th

http://slideshare.net/akarawuth