ผู้ใช้ GitHub ชื่อบัญชี Marak เป็นผู้ดูแลโครงการโอเพนซอร์สจำนวนมากและช่วงสัปดาห์ที่ผ่านมาเขาใส่โค้ดรัน infinite loop เข้าไปยังโครงการ color.js (4,300 stars) และ faker.js (795 stars) ส่งผลให้โมดูลและแอปอื่นๆ ที่ใส่โมดูลเหล่านี้เป็น dependency ไม่สามารถทำงานได้ หน้าจอจะค้างและพิมพ์ขยะออกมาไม่หยุด
Marak ไม่ได้แถลงบอกเหตุผลที่เขาทำแบบนี้ไว้โดยตรงแต่เขาแสดงภาพ Aaron Swartz โปรแกรมเมอร์นักกิจกรรมที่ฆ่าตัวตาย หลังถูกจับเนื่องจากเอาคอมพิวเตอร์ไปเชื่อมต่อเครือข่ายของ MIT เพื่อดาวน์โหลดรายงานวิทยาศาสตร์
โครงการดังๆ จำนวนมากได้รับผลกระทบจากการใส่โค้ด infinite loop ครั้งนี้ เช่น CDK ของ AWS โดยทั่วไปน่าจะแก้ไขได้ไม่ยากเพียงแค่ล็อกเลขเวอร์ชั่นก่อนหน้า แต่การที่โครงการมี dependency กับนักพัฒนาที่ไม่น่าไว้ใจเช่นนี้ก็อาจจะต้อง fork โครงการเพื่อความปลอดภัย ที่ผ่านมาเหตุการณ์โมดูลใน npm ถูกวางยาโค้ดอันตรายจนกระทบโครงการอื่นๆ ที่มี dependency เกิดขึ้นมาแล้วหลายครั้ง แต่ส่วนมากเกิดจากแฮกเกอร์เจาะระบบเพื่อวางโค้ด
Marak ออกมาโพสทวิตเตอร์ระบุว่าบัญชีของเขาถูก GitHub แบนไปแล้ว
ที่มา - BleepingComputer

โค้ด infinite loop ที่ Marak ใส่เข้าโมดูล color.js
on
เห็นเยอะ ไม่ใช่แค่ GitHub
deaknaew Mon, 10/01/2022 - 00:18
เห็นเยอะ ไม่ใช่แค่ GitHub บางที add-on chrome บางตัวเหมือนโดนซื้อไป แล้วคนที่ซื้อก็เอาไปใส่ adware/ malware
ของบางอย่างบางทีเราเขียนเองดีกว่า ไม่ก็ ใช้แต่ของผู้พัฒนาที่เชื่อถือได้ดีกว่าจริง ถ้าจำเป็นจริงๆก็ lock version ไปเลย โปรแกรมไม่พังด้วย
คนที่อยากได้ context
big50000 Mon, 10/01/2022 - 00:42
คนที่อยากได้ context เชิญทางนี้
เมื่อความเชื่อของบุคคลผลักดันให้เขาทำร้ายผู้อื่น
ก็เพราะมันเป็น opensource
LuvStry Mon, 10/01/2022 - 08:37
ก็เพราะมันเป็น opensource เราเลยตรวจสอบได้
ปกติในการใช้งาน lib 3rd party ,ผมจะทำการ lock version อยู่แล้ว ล๊อคทุกอย่าง docker image
การใช้ เวอร์ชั่นเลขไหล ทำแอพพังมานักต่อนัก
ที่จริง accept minor version
rattananen Mon, 10/01/2022 - 09:25
In reply to ก็เพราะมันเป็น opensource by LuvStry
ที่จริง accept minor version หรือ ^1 , 1.* มันไม่ควรมีปัญหาครับ
แต่บางคนยังไม่เข้าใจวิธีการออกเลข version เท่านั้นเอง เลยออกตามใจฉัน
https://semver.org/
ที่บริษัทผมนี่แหละ Project
panther Mon, 10/01/2022 - 11:42
In reply to ที่จริง accept minor version by rattananen
ที่บริษัทผมนี่แหละ Project Owner บางคนไม่เข้าใจเรื่องการตั้งชื่อเวอชั่นเลย
เจอบาง lib มีเวอชั่น 4 หลักก็มี
บาง lib 1.0.3x เงี้ย เจอบั๊กทีจะไปดึงโค๊ดมาเชคนี่ไม่รู้เลยไปเริ่มตรงเวอชั่นไหนเลย
เดาว่าทั้ง 2
whitebigbird Mon, 10/01/2022 - 08:52
เดาว่าทั้ง 2 คนมีอาการที่เกี่ยวข้องกับอาการในกลุ่มโรคซึมเศร้าครับ
คือผมว่าถ้าเป็นเรื่องนี้อย่าเ
nessuchan Mon, 10/01/2022 - 09:53
In reply to เดาว่าทั้ง 2 by whitebigbird
คือผมว่าถ้าเป็นเรื่องนี้อย่าเดาเลยดีกว่าครับ มันส่งผลเสียต่อคนหมู่มาก
ทำไมต้องไปโทษผู้ป่วยอาการซึมเศร้าด้วยล่ะครับ ผู้ป่วยอาการซึมเศร้าปกติแล้วน่าสงสารมากนะครับ และเค้าไม่อยากทำร้ายใคร บางคนเลือกที่จะจบชีวิตตัวเองลงเพราะโทษตัวเองที่คอยทำให้คนรอบข้างเดือดร้อน
แต่อยู่ดี ๆ ท่านมาบอกว่าคนนี้ทำให้คนอื่นเดือดร้อนเพราะว่าเป็นโรคซึมเศร้าผมว่ามันไม่แฟร์กับคนที่เป็นโรคนี้เลยนะครับ ถ้าคนที่เป็นโรคซึมเศร้าจริง ๆ มาอ่านก็คงจะรู้สึกไม่ดี
แต่ถ้าท่านมีข้อมูลจริง ๆ ว่าเค้าเป็นและเป็นสาเหตุที่เค้าทำให้เกิดเรื่องแบบนี้ ผมก็ขออภัยครับ
ขอบคุณครับ
whitebigbird Mon, 10/01/2022 - 10:32
In reply to คือผมว่าถ้าเป็นเรื่องนี้อย่าเ by nessuchan
ขอบคุณครับ วันหลังจะไม่ทำอีกครับ
อันนี้ขออธิบายหน่อย อาการในกลุ่มโรคซึมเศร้าไม่ได้มีแค่อาการซึมเศร้านะครับ พวกไบโพลาร์ก็รวมอยู่ด้วย และอาการในช่วงมาเนียของไบโพลาร์ก็เป็นตัวผลักดันให้คนที่อยู่ในช่วงมาเนียทำอะไรที่ "เกินเบอร์" ไปได้ และหลังจากอาการมาเนียก็มักตามมาด้วยช่วงดีเพรส หรือช่วงดาวน์ที่ผู้มีอาการจะจมดิ่งอย่างหนัก
ผมพยายามบอกว่า เค้าน่าจะทำลงไปเพราะเป็นอาการของโรค ไม่ได้ทำเพราะนิสัยไม่ดี แม้ว่าความผิดยังไงก็ถือเป็นความผิด แต่ถ้าเราเข้าใจว่ามันเกิดจากอาการของโรค เราก็จะไม่แปะป้ายใส่หน้าผากเค้าว่าเลวหรือชั่วครับ
แต่ผมลืมไป ว่าผมไม่มีช้อมูลที่ถูกต้องเกี่ยวกับประวัติการรักษา ผมไม่ควรพูดถึงครับ
ปล. ผมไม่คิดว่าการพูดถึงอาการของโรคจะเป็น stigma แก่คนที่มีอาการเสมอไปนะครับ ผมเชื่อว่าการช่วยให้สังคมเข้าใจธรรมชาติของอาการ ยังดีกว่าให้คนทั่วไปคิดว่าคนๆ นั้นเป็นคนเลวโดนสันดานครับ
คนแรกมีหลักฐานประจักษ์ว่ามีอา
big50000 Mon, 10/01/2022 - 10:23
In reply to คือผมว่าถ้าเป็นเรื่องนี้อย่าเ by nessuchan
คนแรกมีหลักฐานประจักษ์ว่ามีอาการทางจิต คนที่สองไม่มีข้อมูล
วิธีที่ถูกต้องตามหลักศาสนาเลย
Iamz Mon, 10/01/2022 - 09:43
วิธีที่ถูกต้องตามหลักศาสนาเลยคือต้องมี unit test 3rd party library ที่เราใช้ด้วยว่าพฤติกรรมยังเหมือนเดิมตามที่เราใช้งานอยู่มั้ย แต่ตั้งแต่เกิดมาผมยังไม่เคยทำและยังไม่เคยเห็นใครทำจริงจังเลย เหมือนศาสนาบอกว่าอย่าโกหก แต่ไม่โกหกเลยก็อยู่ไม่ได้หรอก
unit test
crucifier Mon, 10/01/2022 - 10:13
In reply to วิธีที่ถูกต้องตามหลักศาสนาเลย by Iamz
unit test ทำให้งานเพิ่มสองเท่าแต่งบและเวลาเท่าเดิม ยอมตกนรกแล้วค่อยไปต่อรองกับยมบาลครับ
ทุกวันนี้ผมก็ต้องต่อสู้ระหว่า
Iamz Mon, 10/01/2022 - 10:31
In reply to unit test by crucifier
ทุกวันนี้ผมก็ต้องต่อสู้ระหว่างจรรยาบรรณของตัวเองกับมุมมองของคนนอกวงการครับ พยายามจะทำความเข้าใจก่อน แต่ถ้าไม่เข้าใจและไม่ยอมจ่ายผมก็ไม่ได้ใจบุญขนาดจะลงแรงให้ฟรี
ถ้า project เล็กๆ มี simple
rattananen Mon, 10/01/2022 - 11:18
In reply to unit test by crucifier
ถ้า project เล็กๆ มี simple business login 4-5 ชุด unit test นี้ไม่เห็นผลครับ
แต่ถ้า complex business login 5+ ชุด ต่อให้เป็น engineer ระดับ Google/Microsoft ก็ manual test ซ้ำๆ ไม่ไหวแน่นอน
ต่อให้มี Tester มันก็ไม่ effective เท่าคนเขียน test เองครับ
และบางทีเขียนไว้เยอะมาก จนตัวเองกลับมาดูก็ไม่รู้ว่าทำอะไรลงไปก็มี unit test ก็มาช่วยตรงนี้ได้
simple business login หรือ
whitebigbird Mon, 10/01/2022 - 13:06
In reply to ถ้า project เล็กๆ มี simple by rattananen
simple business login หรือ simple business logic นะครับ อ่านแล้วสนใจ
business logic ครับ
rattananen Mon, 10/01/2022 - 16:52
In reply to simple business login หรือ by whitebigbird
business logic ครับ
พิมพ์ผิดน่ะ
เข้าใจเป็นอย่างดีครับ
crucifier Mon, 10/01/2022 - 21:21
In reply to ถ้า project เล็กๆ มี simple by rattananen
เข้าใจเป็นอย่างดีครับ คีย์สำคัญของประเด็นของผมคือราคาและระยะเวลาที่ต่อรองได้จากลูกค้าครับ
อยากพลีชีพแต่ก็ลากคนอื่นมาร่ว
api Mon, 10/01/2022 - 09:56
อยากพลีชีพแต่ก็อยากลากคนอื่นมาร่วมซวยด้วย
มีคนสนับสนุนเยอะกว่าที่คิด
mementototem Mon, 10/01/2022 - 10:02
มีคนสนับสนุนเยอะกว่าที่คิด คือ ก็คิดว่าสังคมนี้มันก็ไม่ได้แตกต่างจากสังคมอื่น แต่... ก็เยอะกว่าที่คิดอยู่ดี
สิทธิ์พื้นฐานของมนุษย์คือการทำอะไรก็ได้ "โดยไม่เดือดร้อนคนอื่น" รึเปล่านะ ?
เสรีแบบไม่สนอะไรเลยเรียก
Architec Mon, 10/01/2022 - 10:15
In reply to มีคนสนับสนุนเยอะกว่าที่คิด by mementototem
เสรีแบบไม่สนอะไรเลยเรียก Anarchism ถึงขนาดที่ว่าต่อต้านการใช้เงิน ผมเคยถามเค้าว่าจะให้ผมปลูกสะระแหน่แลกตั๋วเครื่องบินเหรอ เงียบกริบ
ตอนแรกเค้าบอกว่าจะไม่ทำต่อแล้
Iamz Mon, 10/01/2022 - 10:26
In reply to มีคนสนับสนุนเยอะกว่าที่คิด by mementototem
ตอนแรกเค้าบอกว่าจะไม่ทำต่อแล้ว ถ้าจะให้ทำต่อให้จ้างเค้าเงินเดือนกี่หลักหรือไม่งั้นก็ให้ fork ไปทำต่อเอง ซึ่งผมว่าก็พอสมควรแล้ว บริษัทที่เค้ากล่าวหาก็จะต้องเลิก "ใช้ฟรี" ถ้าคิดว่าผลงานคุ้มค่าเค้าก็จ้างตามที่เรียกร้อง ถ้าไม่คุ้มเค้าก็ต้องเอาพนักงานในบริษัทตัวเองมา fork ไปทำต่อเอง จะทางไหนก็เรียกว่าหยุดเอาไปหาผลประโยชน์ฟรี ๆ แล้วทั้งนั้น
นึกถึงอันนี้
i3i4i5 Mon, 10/01/2022 - 10:52
นึกถึงอันนี้
เป็นคำเตือนที่ดีว่าควรเช็ค Commit ล่าสุดก่อนโคลน