รู้จัก Hacktoberfest เริ่มต้นกับ Open source รับฟรีเสื้อจาก GitHub!

Tanin Rojanapiansatith
8 min readOct 8, 2017

ฝึกทำ Pull request ไปกับเทศกาล Hacktoberfest

Hacktoberfest คืออะไร ?

ขึ้นต้นด้วยคำว่า Hack แล้วเป็นเกี่ยวการเขียนโปรแกรม มีหน้าเว็บสวย ๆ หลายคนอาจจะนึกถึง Hackathon งานโค้ดดิ้ง marathon ยอดนิยมในยุคนี้ ความจริงแล้ว Hacktoberfest ไม่ใช่ Hackathon หรืองาน event แต่อย่างใด Hacktoberfest เป็นแคมเปญงานเฉลิมฉลอง Open source community ที่ DigitalOcean และ GitHub ร่วมกันจัดขึ้นมา โดยคำว่า Hacktoberfest น่าจะมาจากการเอาคำว่า Hack มารวมกับคำว่า Oktoberfest เทศกาลเฉลิมฉลองของชาวเยอรมันที่จัดยาวตั้งแต่กลางเดือนกันยายนไปจนถึงช่วงต้นเดือนตุลาคม ส่วนเคมเปญงาน Hacktoberfest เริ่มขึ้นตั้งแต่วันที่ 1 ตุลาคม ไปจนถึง 31 ตุลาคม

Oktoberfest กินเบียร์ แล้ว Hacktoberfest ทำอะไร?

ใครที่พอจะเคยได้ยินเกี่ยวกับ Oktoberfest ก็จะรู้ว่ามันหมายถึงเทศกาลแห่งการกินเบียร์ ส่วน Hacktoberfest ที่จัดขึ้นมาเพื่อ open source community นี้ ทีมจัดมีคอนเซ็ปต์งานว่า

Support open source and earn a limited edition T-shirt

Support อย่างไร ?

ส่ง pull request (PR) ไปที่โปรเจค open source ใด ๆ ก็ได้บน GitHubให้ครบสี่ครั้ง แล้วรับเสื้อฟรี limited edition สุดเท่ห์ไปเลยยย!

เสื้อ Hacktoberfest ปี 2016

อะไรนะ ??????

เชื่อว่าหลาย ๆ คนคงมีคำถามเต็มไปหมด pull request ? open source ? GitHub ? แล้วสมัครเข้าร่วมยังไง ? เราอยู่ไทยเข้าร่วมได้รึเปล่า ? แล้วเค้าจะส่งเสื้อมาให้เราจริง ๆ หรอ ? แล้วต้อง pull request ไปที่โปรเจคไหนเมื่อไหร่ถึงจะนับเป็น 1 pull request ?

สำหรับ geek ที่กำลังอ่านอยู่คำศัพท์เหล่านั้นคงไม่ใช่ปัญหา แต่คงเป็นคำถามข้อหลัง ๆ เช่นที่ว่าเราจะได้เสื้อกันจริง ๆ หรือเปล่า

เพื่อเป็นกำลังใจในการอ่านในส่วนถัดไปที่จะเริ่มไปในทางเทคนิคมากขึ้น ขอตอบให้ชื่นใจก่อนเลยว่าแคมเปญนี้จัดเพื่อทุกคนบนโลกนี้ และเสื้อจะส่งมาถึงบ้านเราไม่ว่าจะอยู่แห่งไหนของประเทศไทย หากไปรษณีย์เคยไปถึง เสื้อมาถึงแน่นอนน (ช้าเร็วอีกเรื่องนึง)

คน tweet ดีใจหลังจากเสื้อส่งถึงบ้าน

เพื่อไม่ให้น่าเบื่อเกินไปสำหรับผู้ที่รู้ว่าอะไรคือหายนะที่เรียกว่า git conflict และให้ผู้ที่พอจะรู้ว่า git add, git commit คืออะไรพอจะอ่านเข้าใจตามไปได้ บล็อกนี้ขอพูดถึง open source GitHub และ Pull request เล็กน้อย, รายละเอียดเกี่ยวกับกิจกรรมนี้, ก่อนจะพาไปดูการสมัครเข้าร่วม Hacktoberfest, การทำ Pull request อย่างคร่าว ๆ และ ประสบการ์ณใน Hacktoberfest 2016

Open source, GitHub และ Pull Request

Open source

หรือจริง ๆ ในที่นี้ควรจะเรียกว่า Open source software หมายถึงโปรเจคซอฟต์แวร์ใด ๆ ก็ตามที่เปิดโอกาสให้ทุกคนได้มีสิทธิ์เข้าถึง source code ของโปรเจค ร่วมพัฒนา หรือ contribute และนำไปใช้กันได้อย่างฟรี ๆ ตัวอย่าง Open source ที่มีชื่อเสียง บราวเซอร์ Mozilla Firefox , ระบบปฎิบัติการ Ubuntu

ข้อดีคือเมื่อเราใช้ของที่เป็น open source เราสามารถดูได้ว่าเกิดอะไรขึ้น หากมีปัญหา หรือ บั๊ค เกิดขึ้นเราก็สามารถแก้ไขได้เลย และสามารถปรับแต่งหรือ customize ซอฟต์แวร์ตัวนั้นให้เป็น version ของเราเองได้อีกด้วย แตกต่างกับซอฟต์แวร์ที่ไม่ใช่ open source ที่เราไม่มีทางเห็น source code ของโปรแกรมได้ ไม่สามารถรู้ได้เมื่อเกิดปัญหาว่าเป็นที่อะไร ต้องรอการแก้ไขอัพเดตจากบริษัทที่เป็นเจ้าของซอฟต์แวร์เหล่านั้นเท่านั้น

GitHub

คือผู้ให้บริการเก็บรวบรวมโปรเจคซอฟต์แวร์ หรือ software repository ด้วยเทคโนโลยี Git ผ่านหน้าเว็บไซต์ www.github.com ซึ่งได้รับความนิยมและมี Open source project จำนวนมากที่ฝาก online repository เอาไว้ที่ GitHub (อ่านเพิ่มเติมเกี่ยวกับ Git และการใช้ Git กับ GitHub ได้ที่ บทความ นี้นะครับ, ขอบคุณ Somprasong Damyos ครับ)

Pull request

Open source repository มากมายถูกฝากไว้ที่ GitHub เข้าถึงเพื่อดู source code หรือ download มาใช้ผ่านหน้าเว็บไซต์ของ GitHub แล้วถ้าเราโหดมาก ใช้ ๆ ไปเจอบั๊คแล้วแก้บั๊คตัวนั้นได้ หรือเกิดมีไอเดียเพิ่ม feature เขียนโค้ดสร้าง feature ใหม่ให้กับซอฟต์แวร์ตัวนั้น เราก็ยังสามารถส่ง source code ที่แก้ไขแล้วโดยเรากลับไปยัง online repository ที่ฝากเอาไว้กับ GitHub ได้อีกด้วย ซึ่งจุดนี้ถือว่าเป็นอีกหนึ่งจุดเด่นของ Open source project ที่ทุกคนช่วยกันแก้บั๊ค พัฒนา และแชร์กลับไปยัง source code หลัก ซึ่งการส่งส่วนที่แก้ไขแล้วกลับไปยัง source code หลักบน GitHub นี่เองที่เรียกว่า Pull request

เกี่ยวกับ Hacktoberfest

ที่มา https://hacktoberfest.digitalocean.com/

อย่างที่ได้พูดถึงไปแล้วว่าโครงการนี้จัดเพื่อทุก ๆ คนบนโลกนี้ สมัครแอคเค้าท์ของ GitHub แล้วก็ทำ Pull Request ให้ครบ 4 ครั้ง ก็รอรับเสื้อได้เลย โดยมีเงื่อนไขเพียงแค่ 2 ข้อคือ

  1. ต้องเป็นโปรเจคที่เปิดเป็น public อยู่บน https://github.com
  2. ต้องทำภายในวันที่ 1 ตุลาคม ถึง 31 ตุลาคม ปี 2017

คำว่าโปรเจคที่เปิดเป็น public บน GitHub หมายถึง โปรเจคใด ๆ ก็ได้ ที่เปิดเป็น public อยู่บน GitHub อย่างแท้จริงโดยไม่มีเงื่อนไขแฝง ไม่จำเป็นต้องเป็นโปรเจคมี label ว่า hacktoberfest ไม่จำกัดแค่โปรเจคที่อยู่ในหน้าเว็บไซต์หลักของ Hacktoberfest เป็นโปรเจค public อะไรก็ได้ ที่อยู่บน GitHub จริง ๆ นอกจากนี้คำว่าทำ Pull request ไม่จำเป็นต้องเป็นการสร้าง feature ใหม่ หรือ optimize code ของ open source project เหล่านั้น สามารถเป็นการทำ commit เพื่อแก้ไขอะไรก็ได้จริง ๆ ที่จะเป็นประโยชน์ต่อโปรเจคเหล่านั้น (อย่างไรก็ตาม Pull request ที่ถูก mark ว่าเป็น spam จะไม่ถูกนับในโควต้า 4 Pull request นะครับ) การแก้ไข document แก้ description ให้อ่านง่านขึ้น หรือเพียงแค่แก้คำที่พิมพ์ผิดแค่ตัวอักษรเดียวแล้ว commit ส่ง Pull request เข้าไป ก็นับเป็น 1 Pull request โดยไม่จำเป็นต้องเป็น Pull request ที่ได้รับการตอบรับ หรือได้รับการ Merge อีกด้วย ผมจะพูดถึงตัวอย่างจากปีที่แล้ว ที่ได้ส่ง Pull request ครบ 4 ครั้งจนได้เสื้อมาเชยชมให้ฟังในส่วนสุดท้ายนะครับ

การสมัครเข้าร่วม

การสมัครเข้าร่วมนั้นง่ายมาก ๆ ง่ายจนนั่งคิดอยู่นานว่าจะใส่ไว้ในบล็อคด้วยดีมั้ย :D สิ่งเดียวที่ต้องมีคือแอคเค้าท์ของ GitHub ขั้นตอนง่าย ๆ คือ

หลังจาก register เสร็จ

เมื่อเห็นหน้านี้ก็เป็นอันเสร็จ

ทำ Pull request, เช็ค Hacktoberfest status

0. Hacktoberfest Checker

ก่อนอื่นเลยหลังจากที่เรา register กันไปแล้ว เราสามารถดูว่าเราได้ส่ง Pull request ไปกี่ครั้งแล้วได้ที่ https://hacktoberfest.bock.rocks/

ยังไม่ได้ทำ Pull request ใด ๆ

จะมีช่องให้กรอก username ของ GitHub เรา เมื่อใส่เรียบร้อยก็จะเห็น status จำนวนการ Pull request ของเราในช่วงเทศกาล Hacktoberfest นี้

ก่อนจะเริ่มจริง ๆ ขอพูดถึงภาพรวมของการทำ Pull request เพื่อความเข้าใจยิ่งขึ้น 4 keyword หลักของ flow ในการทำ pull request คือ

fork -> clone -> push -> pull request

  • fork คือการ copy repository ที่เราต้องการจะ contribute มาไว้ที่เรา เป็นอีกหนึ่ง repository ที่เราจะทำอะไรก็ได้โดยไม่ส่งผลต่อ repository หลักหรือที่มักจะเรียกกันว่า upstream (ตัวหลักเรียกว่า upstream, อันที่เราก๊อปมาเรียกว่า origin)
  • clone คือการ download repository นั้นมาไว้บนคอมพิวเตอร์ของเราเพื่อใช้งานหรือปรับแต่ง
  • push เมื่อเราปรับแต่งเสร็จหรือเจอบั๊คแล้วแก้ไขเรียบร้อยแล้ว เราก็ทำการส่ง หรือ push version แก้ไขนี้ไปที่ repository บน GitHub ของเราหรือที่มักจะเรียกกันว่า origin ซึ่ง repository บน GitHub ของเราก็จะเป็น version ใหม่ที่ไม่เหมือนกับ upstream
  • pull request คือการส่งเวอร์ชั่นใหม่ที่ได้รับการปรับปรุงแก้ไข Origin ไปยัง upstream สาเหตุที่เรียกว่า pull request ถ้าจะให้แปลตรง ๆ ก็คงหมายถึงเราส่ง request ไปให้กับเจ้าของ Original repository ให้รับหรือ pull โค้ดชุดใหม่ของเราไปรวมกับโค้ดดั้งเดิม

หากเข้าใจ 4 keyword หลัก, ความหมายของ origin และ upstream และแผนภาพข้างบนแล้วก็ถึงเวลาเริ่มทำ Pull request กันจริง ๆ หละครับ

1. เลือกหา repository ที่ใช่แล้วจิ้มมา (fork)

ลองค้นหาในช่อง search ในเว็บไซต์ GitHub ด้วยการพิมพ์ชื่อเทคโนโลยี หรือภาษาคอมพิวเตอร์ที่เราสนใจ เมื่อเจอ repository ที่ดูโอเคแล้วก็ลองอ่าน document หรือ README.md ของโปรเจคนั้น ๆ ดูว่าเป็นยังไง ลองดูว่าน่าใช้มั้ย และที่สำคัญคือเราจะสามารถช่วยอะไรเพื่อทำให้โปรเจคนี้ดีขึ้นได้บ้าง ช่วยพัฒนาโค้ด หรืออาจจะแค่แก้ document ขั้นตอนนี้อาจจะดูเหมือนง่ายแต่ค่อนข้างใช้เวลานิดนึงในการหา

อย่างของผม สนใจเกี่ยวกับ Android ผมก็ไปเจอ open-source-android-apps ซึ่งเป็น repository ที่เก็บรวบรวมรายชื่อโปรเจคแอพแอนดรอยที่เปิดเป็น open source เนื่องจากมีแอพแอนดรอยที่ปล่อยเป็น public repository อยู่บน GitHub ตัวเองอยู่แล้ว เลยอยากจะเอาแอพของเรามาลิสต์อยู่ใน repository นี้ด้วย

เมื่อเจอ repository ที่ใช่แล้วก็กด fork ที่มุมขวาบน

กดปุ่ม Fork ที่มุมขวาบนเพื่อ copy repository นี้มาไว้ที่เรา

เสร็จแล้วเราก็จะเห็นหน้านี้(รูปล่าง) ซึ่งจะสังเกตได้ว่า ที่มุมซ้ายบนจะเป็นชื่อของเรา (แอคเค้าท์ผมชื่อ landtanin)ต่างจากรูปข้างบน ก่อน fork ที่เป็นชื่อของเจ้าของ original repository นี้ (pcqpcq)

copied version ของ repository ที่หน้า GitHub ของเรา

2. Download repository มาไว้ที่คอมพิวเตอร์ของเรา (clone)

จากรูปที่แล้ว เราสามารถกดที่ปุ่มสีเขียวทางด้านขวามือเพื่อเริ่มทำการ clone repository นี้มาไว้ที่คอมพิวเตอร์เรา

กดปุ่ม Copy to clipboard

การ clone สามารถทำได้ 2 แบบ จะ download เป็น zip file ก็ได้ หรือ download ผ่าน HTTPS ก็ได้ ในที่นี้เราจะทำการโหลดแบบ HTTPS เพราะเราต้องการ push กลับไปด้วย ฉะนั้นให้กดปุ่ม Copy to clipboard เพื่อทำการ Copy link

เปิด terminal แล้วรัน git clone ตามด้วยลิ้งค์ที่เพิ่งก๊อปมาเพื่อทำการ download ผ่าน HTTPS

git clone ลิ้งค์ที่เพิ่งก๊อปมา

ซึ่งในกรณีของผมเป็น

git clone https://github.com/landtanin/open-source-android-apps.git

3.สร้าง branch ใหม่

เพื่อไม่ให้เป็นภาระของเจ้าของ Original repository เราไม่ควรทำการ commit อะไรบน master branch แต่เราควรจะสร้าง branch ใหม่และทำการ commit changes บนนั้น

บน directory เดิมที่เราเพิ่ง clone มา ใช้คำสั่ง git checkout -bตามด้วยชื่อ branch เพื่อสร้าง branch ใหม่

git checkout -b ชื่อbranchใหม่

ชื่อ branch ควรจะบ่งบอกความหมายโดยนัยของการเปลี่ยนแปลงใน branch นั้น เช่น hotfix, add-new-feature เป็นต้น ซึ่งของผมจะตั้งว่า new-branch-test

git checkout -b new-branch-test

4. เปลี่ยนแปลง ปรับปรุง source code และทำการ commit ให้เรียบร้อย

เมื่อเราเจอสิ่งที่เราต้องการจะแก้ไข เพิ่มเติมหรือ ปรับปรุงแล้ว ก็ addและ commitให้เรียบร้อย ตัวอย่างเช่น โปรเจคที่ผมต้องการจะ contribute ผมเพียงแค่ต้องการใส่ชื่อแอพ android พร้อมลิ้งค์ไปยังตัวโปรเจคที่ GitHub ของผมใน document ของ repository นี้เท่านั้น

หน้า document รายชื่อแอพบน upstream

repository นี้เรียงชื่อแอพตามตัวอักษรและแอพที่จะเพิ่มเข้าไปชื่อ StudentAttendanceCheck เลยจะเอาไปลิสต์ไว้ต่อจากแอพ Status ที่ลิสต์อยู่ล่างสุดของตาราง ผมจึงเปิดหน้า document นี้จาก repository ที่เพิ่ง download (clone) มา ใน Code Editor ตัวโปรด

ใส่ข้อมูลของเราเข้าไป

เมื่อเห็น pattern ของการลิสต์ชื่อ ผมก็ทำการใส่ชื่อแอพและลิงค์ไปที่แอพจาก GitHub ของผมลงไป (บรรทัด 157) ต่อจากบรรทัดที่คอลัมน์แรกเขียนว่า Status

จากนั้นก็ git addและ git commit ให้เรียบร้อย

git add tools.md
git commit -m "added StudentAttendanceCheck app to tools.md"

document ที่แก้ มีชื่อไฟล์ว่า tools.md

5. ส่งกลับขึ้นไปที่ origin บน GitHub (push)

หลังจาก commitเสร็จ ก็ใช้คำสั่งgit push เพื่อ upload source code version ใหม่กลับขึ้นไป

git push origin ชื่อBranchที่ตั้งไว้

ซึ่งเมื่อกี้ตั้งชื่อไว้ว่า new-branch-test

git push origin new-branch-test

5.5 ตรวจสอบความถูกต้องใน document บน GitHub

ในตัวอย่างที่ทำให้ดูคือต้องการเพิ่มตารางเข้าไปอีกหนึ่งแถวใน document เมื่อ push แล้วก็เลยมาเปิดเช็คจาก document ใน GitHub ของผมเองว่าโค้ดที่ได้พิมพ์เข้าไปถูกต้องและสร้างบรรทัดใหม่สำหรับแอพ StudentAttendanceCheck ขึ้นมาจริง ๆ

StudentAttendanceCheck added!

6. Pull request!!!

ทำการ pull request เพื่อรอการ review และ merge เข้า upstream ต่อไป

หลังจาก push เรียบร้อยแล้ว จะเห็นแถบสีเหลืองที่บอกว่าเราได้เพิ่ม branchใหม่ขึ้นมา กดปุ่ม Compare & pull request ทางด้านขวาแล้วเราจะเจอกับหน้าในรูปข้างล่าง ซึ่งจะมีกล่องข้อความให้เราพิมพ์บอกรายละเอียดเกี่ยวกับความเปลี่ยนแปลงใน pull request นี้

เมื่อพิมพ์ comment เสร็จก็ทำการกดปุ่มสีเขียว Create pull request ที่มุมขวาล่าง

หลังจาก pull request สำเร็จ

ถ้าหากไม่มีอะไรผิดพลาด เราก็จะเห็นหน้าคล้าย ๆ กับรูปข้างบนนี้

6.5 เช็คความเคลื่อนไหวใน Hacktoberfest checker

หลังจาก pull request เสร็จแล้วก็ไปดูใน hacktoberfest checker หน่อยว่ามีอะไรเปลี่ยนแปลงมั้ย

เสร็จไป 1 pull request 🎉

เรียบร้อย! 🎉🎉🎉 การ์ดแสดง status การว่าเราได้ pull request ไปที่ repository ไหน และบอก commit message ที่เราตั้งไว้ในบรรทัดถัดมา

7. อัพเดตหลังจากได้รับการ merge

แถมอีกเล็กน้อยหลังจาก branch ใหม่ที่เรา create และส่ง pull request ไป ได้รับการ merge เราก็ควรจะอัพเดต source code บนคอมพิวเตอร์ของเราให้เหมือนกับตัว original repository และลบ branch ที่สร้างไว้ทิ้งไป (เพราะได้รับการ merge แล้ว)

ใช้คำสั่ง checkout เพื่อสลับจาก branch ใหม่กลับไปยัง master branch

git checkout master

ณ ตอนนี้ หากลองพิมพ์คำสั่ง git remoteใน terminal เราจะเห็นคำว่า origin ซึ่งเป็นชื่อที่ใช้เรียก remote repository หรือ repository ที่ไม่ได้อยู่บนคอมพิวเตอร์เครื่องนี้

git remote
origin

ซึ่ง origin นั้นเชื่อมต่อไปยัง repository บน GitHub ของเรา

คราวนี้เราต้องการสร้างการเชื่อมต่อใหม่ไปยัง original repository หรือที่เรียกว่า upstream โดยใช้คำสั่ง git remote addแล้วต่อด้วยชื่อ (upstream) และลิ้งค์ไปยัง original repository

git remote add upstream https://github.com/pcqpcq/open-source-android-apps

คำว่า upstream เป็นเพียงชื่อเรียกที่นิยมเรียกกันเท่านั้น ความจริงแล้วเราสามารถตั้งเป็นอะไรก็ได้ แต่เพื่อความเป็นสากลเราก็ตั้งเป็น upstream

เมื่อเพิ่มเสร็จแล้วลองพิมพ์ git remote อีกทีจะเห็นคำว่า upstream ขึ้นมาด้วย

git remote
origin
upstream

จากนั้นก็ใช้คำสั่ง fetch และ rebase เพื่อดึง source code จาก upstream และ merge เข้ากับ source code บนคอมพิวเตอร์ของเรา

git fetch upstream
git rebase upstream/master

เมื่อ source code บนคอมพิวเตอร์ของเราอัพเดตแล้ว เราก็อัพเดตให้กับ origin หรือ source code บน GitHub ของเราเองด้วยเพื่อที่ทั้ง 3 แหล่งจะได้มี source code ชุดเดียวกัน โดยใช้คำสั่ง git push

git push origin master

สุดท้ายก็ลบ branch ใหม่ที่เราสร้างไว้ (ที่ได้รับการ merge แล้ว)

git branch -d ชื่อbranch

รวมถึงลบ branch นี้บน origin ด้วย

git push origin --delete ชื่อbranch

เป็นอันเสร็จกระบวนการ 😄

ประสบการณ์ Hacktoberfest ปี 2016

ปีที่แล้วมีการ contributors จาก 114 ประเทศทั่วโลก ส่ง Pull request มากกว่า 90,000 ครั้ง ไปยัง public repository บน GitHub (อ่านเจอมาจากลิ้งค์นี้)

Pull request ทั้ง 4 อัน

จะเห็นได้ว่า ค่อนข้างเล่นง่ายนิดนึง 😆 แต่ละอันไม่ได้ต้องใช้ความรู้ความพยายามมากอย่างที่คิด ผมแทบไม่ได้แก้บั๊คหรือสร้าง feature ใหม่ให้ใครเลย อันแรกนั้นเป็นกิจกรรมที่ชมรมของมหาลัยจัดซึ่งเป็นครั้งแรกที่ผมได้เรียนรู้การทำ Pull request ซึ่งหลังจากทำ Pull request ครั้งแรก ที่หน้า GitHub profile ของผม ก็มี card ​First pull request โผล่ขึ้นมาตรง Contribute Activity ที่ด้านล่างของจอด้วย ตอนนั้นดีใจมากเพราะกว่าจะทำครั้งแรกได้ rebase, stash ไปหลายรอบมากก็เลยแคปเก็บไว้

card “First Pull request” ใน Contribution activity บน GitHub profile page

อันที่สองนี่เป็นเพราะผมไปร่วม Hackathon งานนึงที่ Capital One มา sponsor และล่อลวงให้เราใช้ API ของเค้าด้วยรางวัลเล็กน้อย เลยต้องนั่งอ่านและใช้ API ของเค้าข้ามคืนเพื่อจะเอามาใช้ในโปรเจคที่ทำ ซึ่งการพิมพ์วงเล็บตกไปเพียงตัวเดียวในโค้ดตัวอย่างของเค้าก็เอาเวลาอันมีค่าใน Hackathon ไปไม่น้อย

เพิ่มวงเล็บที่หายไปให้ API ของ Capital one

อันที่สามเป็น open source เพิ่มสีสันให้ Terminal ใน Mac ซึ่งจะดูดมาใช้บ้างละอ่าน doc ถึงท่อนนึงละงง ต้องไป Google เพื่อขยายความ พอเข้าใจก็เลยส่ง Pull request ไปหาเค้าว่าท่อนนี้เราอ่านละงงอะ เราว่านายเพิ่มประโยคนี้เข้าไปก็น่าจะดีนะ

อันสุดท้ายนี่จะเห็นได้ถึงความชิวในการสะสม Pull request เพื่อเอาเสื้อ Hacktoberfest โปรเจคใน Hackathon หมายถึงเป็นโปรเจคที่เพิ่ง start ในวันนั้น ทำกับเพื่อนย่อมหมายถึงคนที่เริ่มก็เป็นนักศึกษามหาวิทยาลัยทั่วไปที่บังเอิญมาร่วมทีมกันในวันนั้น อันนี้ถือเป็นอันที่ได้มีส่วนร่วมทางด้านโปรแกรมมากที่สุด และ Pull request ให้กับโปรเจคนี้ก็นับรวมกับกิจกรรม Hacktoberfest ด้วย

จากตัวอย่างที่ได้เล่าไป จะเห็นได้ว่ามีความหลากหลายอยู่พอสมควร ไม่ว่าจะการ Pull request เพิ่ม feature เข้าไปที่ public reporitory ที่เพื่อนเราเป็นคนสร้าง หรือแก้วงเล็บหายใน document ใน public repository ของบริษัทระดับโลกอย่าง Capital one นอกจากนี้ถ้าใครแอบกดเข้าไปดูตามลิ้งค์ที่ใส่ไว้จะเห็นว่าไม่ใช่ทุกอันที่ได้รับการ Merge เข้ากับ repository หลักของเค้า อันที่สามที่ส่ง Pull request เข้าไปให้เค้าแก้ doc ให้อ่านง่ายขึ้นถูกปฏิเสธหรือถูก Close ไป แต่อย่างไรก็ตามเจ้าของ repository ก็มาขอบคุณที่แนะนำเค้าแล้วเค้าก็ได้แก้ doc ตรงนั้นให้อ่านง่ายขึ้นในแบบของเค้าเอง

ไม่ถูก merge แต่ก็ได้รับการตอบรับ

ฉะนั้นผมว่าไม่ยากมากแล้วแหละครับกับการเริ่มต้นเป็น Open source contributor เริ่มจากอะไรเล็ก ๆ ง่าย ๆ หาโปรเจคที่ใช้ภาษาที่เราเข้าใจหรือถนัด การ contribute ให้กับ open source นอกจากจะเป็นการได้ฝึกฝนฝีมือของเราแล้วยังเป็นการแบ่งปันให้กับผู้อื่นอีกด้วยนะครับ ขอบคุณทุกท่านที่อ่านมาถึงตรงนี้และหากใครมีอะไรจะแนะนำเกี่ยวติชมก็ยินดีมาก ๆ ครับหรือใครที่สงสัยก็ลอง comment ถามไว้ ก็ได้ครับ ขอให้ได้เสื้อ Hacktoberfest กันทุกคนเลยนะครับ Happy coding 🎉

เสื้อ Hacktoberfest 2017 !!!

แถม

การรอคอยเสื้ออันแสนนาน

ถ้าใครแอบกดดูตามลิ้งค์ที่พูดถึงการทำ pull request ครั้งแรกไปยังเว็บไซต์ของมหาลัย ก็จะเห็นว่ามันเป็นมหาลัย Nottingham ที่อังกฤษ ขอสารภาพว่าจริง ๆ แล้วผมสั่งเสื้อไปที่หอพักที่นั่น 😅 แล้วมั่นใจได้ยังไงว่าเสื้อ Hacktoberfest ก็ส่งไปที่ประเทศไทยเหมือนกัน ? ต้องขอบคุณพี่ปิง Supasate Choochaisri ประธานสมาคมโปรแกรมเมอร์ไทยที่อนุญาติให้นำโพสต์นี้มาแชร์

พี่ปิงได้ contribute ครบ 4 pull requests ในช่วง Hacktoberfest ปีที่แล้วเช่นกัน และก็ได้สั่งเสื้อไปที่ประเทศไทยและก็ได้รับเสื้อช่วงตอนประมาณต้นเดือนธันวาคมปี 2016

ปล.Text Editor ตัวนั้นคือ Atom

อีเมลหลังจากทำ Pull Request ครบ

เพิ่มเติมเผื่อ Hacktoberfest 2018 ครับ และนี่คืออีเมลที่เราจะได้รับหลังจากเราทำ Pull request ครบทั้ง 4 ครั้งแล้ว ถ้ากดตามลิ้งค์เข้าไปก็จะมีให้เราเลือกไซส์เสื้อและกรอกที่อยู่ของเรา

ยินดีด้วยกับทุกคนที่ทำครบทั้ง 4 ครั้งนะครับ หลังจากนี้ก็อย่าลืม contribute ให้ open source กันต่อไปนะครับ พอถึง Hacktoberfest 2018 จะได้สบาย หลับตาทำ Pull request กันได้เลย 😂

--

--