1 คะแนน โดย GN⁺ 1 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ยูทิลิตี Go ขนาดเล็กสำหรับจัดการโปรไฟล์ Claude Code สามารถแจกจ่ายไฟล์รันแบบสแตติกสำหรับ Linux และ Windows ได้ง่าย แต่บน macOS ถูกบล็อกไม่ให้รันเพราะ quarantine ที่ถูกใส่ให้ไฟล์ดาวน์โหลด และการต้องอธิบายวิธีปลดล็อกด้วยตนเองก็ทำลายประสบการณ์ผู้ใช้
  • ผู้เขียนพยายามสมัคร Apple Developer Program เพื่อเซ็นไบนารีบน macOS แต่ด้วยโมเดล จ่ายเท่าที่ต้องการ ประมาณ 7 ดอลลาร์ และคาดว่ายอดดาวน์โหลดจะมีเพียงราว 12–24 คน จึงยากจะรับภาระ ค่าสมาชิกรายปี ได้
  • ขั้นตอน ยืนยันตัวตน ของ Apple Developer Program มีปัญหาเพราะเว็บแคม MacBook ไม่สามารถอ่านบัตรประชาชน/เอกสารได้ดีพอ ล้มเหลวซ้ำ ๆ โดยไม่มีตัวเลือกอัปโหลดไฟล์สแกนหรือแนะนำให้ใช้กล้อง iPhone แต่เมื่อใช้แอปบน iPhone กลับสำเร็จในครั้งแรก สะท้อนการพึ่งพาอุปกรณ์อย่างชัดเจน
  • แม้ Apple Hardware และชิปตระกูล M จะได้รับการยกย่องสูง แต่การใช้งาน macOS ให้ลื่นไหลยังต้องพึ่งเครื่องมือเสริมอย่าง AutoRaise, Rectangle, DiscreteScroll และ Finder, คีย์ลัด, การโฟกัสหน้าต่าง, รวมถึงวิธีปิดแอป ก็ยังทำให้เวิร์กโฟลว์นักพัฒนาไม่สะดวก
  • ฝั่ง Windows ก็มีต้นทุนการเซ็นโค้ดเช่นกัน โดย Certum code signing อยู่ที่ราว 209 ยูโรต่อปี และ Azure Artifact Signing ก็มีข้อจำกัดด้านภูมิภาคและบัญชีบุคคล ทำให้ระบบนิเวศของ code signing โดยรวมดูแพงและเข้าถึงยาก คล้ายยุค ใบรับรอง TLS ก่อน Let’s Encrypt

อุปสรรคที่โผล่มาในระหว่างการแจกจ่ายซอฟต์แวร์บน Mac

  • ระหว่างสร้างยูทิลิตีเล็ก ๆ สำหรับนักพัฒนาเพื่อให้จัดการโปรไฟล์ Claude Code ได้ง่ายขึ้น ผู้เขียนพบว่า Go toolchain สามารถบิลด์ไฟล์รันแบบสแตติกสำหรับหลายแพลตฟอร์มได้อย่างง่ายดาย
  • รีลีสแรกดูได้ที่ ccode.kronis.dev และ หน้า Itch.io ซึ่งมีทั้งไบนารีที่บิลด์ไว้ล่วงหน้าให้ดาวน์โหลด/ซื้อ และซอร์สโค้ดให้ตรวจสอบ
  • ตอนนี้โค้ดยังอยู่ในสถานะ ไม่ได้เซ็น และเนื่องจากยูทิลิตียังอยู่ช่วงเริ่มต้น จึงแนะนำให้ลองใช้ฟรีก่อน แล้วค่อยจ่ายภายหลังหากเห็นว่ามีประโยชน์
  • การแจกจ่ายบน Linux ทำงานได้ไม่มีปัญหาหลัง chmod +x ส่วนบน Windows สามารถสร้าง .exe ได้ และข้ามคำเตือน SmartScreen ได้จากป๊อปอัปเดียวกัน
  • แต่บน macOS ซอฟต์แวร์ที่ดาวน์โหลดมาจะถูกติด quarantine ทำให้รันไม่ได้ แม้แต่ไฟล์ที่แชร์ให้ตัวเองผ่าน Nextcloud ก็ยังเจอปัญหาเดียวกัน
  • แม้จะสามารถแนะนำให้ผู้ใช้ปลด quarantine ผ่านเทอร์มินัลด้วยตนเองได้ แต่ถึงนักพัฒนาจะยอมรับได้ นั่นก็ยังไม่ใช่ประสบการณ์ผู้ใช้ที่ดี และอาจดูน่าสงสัยด้วย

ค่าใช้จ่ายและความคุ้มค่าของการสมัคร Apple Developer Program

  • เพื่อแก้ปัญหานี้ ผู้เขียนพยายามสมัคร Apple Developer Program เพื่อเซ็นไฟล์รัน แต่พบว่าค่าสมาชิกรายปีไม่สอดคล้องกับขนาดการแจกจ่ายของยูทิลิตีเล็ก ๆ นี้
  • ยูทิลิตีที่ต้องการแจกจ่ายตั้งใจจะปล่อยบน Itch.io ด้วยโมเดล จ่ายเท่าที่ต้องการ (pay-what-you-want) ราว 7 ดอลลาร์ และคาดว่ายอดดาวน์โหลดน่าจะมากที่สุดเพียง 12–24 คน
  • คนส่วนใหญ่สามารถเลือกจ่าย 0 ดอลลาร์ได้ และเมื่อหัก VAT กับค่าธรรมเนียมของ Itch.io แล้ว จากรายได้ราว 50 ดอลลาร์จะเหลือเพียงประมาณ 25 ดอลลาร์ ซึ่งครอบคลุมค่า Apple Developer Program ได้แค่ราว 3 เดือน
  • โครงสร้างที่ต้องเสียเงินเพียงเพื่อแจกจ่ายไบนารีสำหรับการเผยแพร่สาธารณะเป็นสิ่งที่เสียเปรียบสำหรับนักพัฒนาแบบงานอดิเรก และผลักเศรษฐศาสตร์ของการพัฒนาซอฟต์แวร์ไปในทางที่เน้นการทำเงินมากขึ้น
  • สำหรับซอฟต์แวร์เดสก์ท็อปยังมี Homebrew แต่ถ้าใช้เส้นทางนี้ก็ยากจะเก็บเงินแม้เพียงไม่กี่ดอลลาร์ หรือไม่ก็ต้องใส่ไฟล์คำแนะนำแยกอย่าง mac-homebrew-install-instructions.txt ไว้ในหน้าดาวน์โหลดบน Itch.io ซึ่งดูแปลก ๆ
  • ผู้เขียนยอมรับว่าถ้าทำให้ไม่มีต้นทุนเลยก็อาจก่อปัญหาอื่นอย่างสแปมได้ แต่แม้จะเป็นซอฟต์แวร์แบบส่วนตัวหรือเพียงเปิดเผยซอร์ส การที่การแจกจ่ายไบนารีมีต้นทุนแฝงอยู่ก็ยังเป็นภาระ

ความฝืดในขั้นตอนยืนยันตัวตน

  • ในขั้นตอนสมัคร Apple Developer Program ผู้เขียนเข้าใจได้ว่าต้องมีการยืนยันตัวตน แต่ปัญหาใหญ่คือระบบบังคับให้ถ่ายรูปเอกสารด้วยเว็บแคมของ MacBook
  • กล้องในตัวของ M1 MacBook Air ให้คุณภาพภาพของเอกสารไม่ดีพอแม้จะเปลี่ยนแสงแล้ว และต่อให้พยายามหลายครั้งก็ยังตรวจจับเอกสารได้ไม่ถูกต้อง
  • แม้จะมี iPhone เชื่อมต่ออยู่ในเครือข่ายภายในเดียวกัน ระบบก็ไม่ได้แนะนำให้ใช้เป็นกล้อง และตลอดประมาณ 10 ครั้งที่ลองก็ยังล้มเหลวซ้ำ ๆ
  • หลังจากนั้นผู้เขียนลองต่อเว็บแคมหลัก แต่ก็ยังไม่เพียงพอเพราะไม่มีออโต้โฟกัสสำหรับการถ่ายเอกสารระยะใกล้
  • ระบบไม่มีตัวเลือกให้อัปโหลดเอกสารที่สแกนไว้ และทุกครั้งที่ล้มเหลวก็จะขึ้นข้อผิดพลาดแบบกว้าง ๆ บางครั้งถึงขั้นต้องเริ่มกระบวนการสมัครใหม่ตั้งแต่ต้น
  • เมื่อติดตั้งแอปบน iPhone โดยตรง กลับสำเร็จในครั้งแรก แต่สำหรับผู้ใช้ที่ไม่มี iPhone หรือเว็บแคมคุณภาพสูง สิ่งนี้อาจเป็นกำแพงที่หนักกว่าเดิม
  • การชำระเงินผ่านไปได้ตามปกติ และดูเหมือนว่าบัญชีนักพัฒนาจะใกล้เปิดใช้งานแล้ว แต่แอปกลับแสดงให้รออีเมล ขณะที่แอปเดสก์ท็อปก็ไม่รับรู้ว่ามีการพยายามสมัครไปแล้วและแสดงให้เริ่มกระบวนการใหม่
  • มันอาจเป็นปัญหาจากการประมวลผลเบื้องหลังหรือ eventual consistency แต่จากมุมผู้ใช้แล้ว นี่คือประสบการณ์ที่น่าหงุดหงิดเพราะสถานะการสมัครแสดงไม่ตรงกันในแต่ละแอป

ความไม่พอใจที่สะสมต่อระบบนิเวศของ Apple

  • ผู้เขียนชื่นชมคุณภาพงานประกอบของ Apple Hardware และชิปตระกูล M อย่างมาก และสำหรับคนที่ซื้อรุ่นสเปกสูงได้ มันก็เป็นเครื่องพัฒนาที่ยอดเยี่ยม
  • แม้จะพอใจกับการใช้ iPhone SE 2022 แต่ Apple ยกเลิกซีรีส์รุ่นประหยัด ไปแล้ว ซีรีส์ e รุ่นใหม่ก็แพงขึ้น และการตัด สวิตช์ปิดเสียงด้านข้าง กับ TouchID ก็เป็นเหตุผลให้โทรศัพท์เครื่องถัดไปน่าจะกลับไปใช้ Android
  • การจะใช้ macOS ในแบบที่ต้องการยังต้องพึ่งเครื่องมืออย่าง AutoRaise, Rectangle, DiscreteScroll
  • เวลาเปลี่ยนโฟกัสหน้าต่างข้ามหลายจอ จำเป็นต้องคลิกเพิ่มอีกครั้ง และแม้ AutoRaise จะมีประโยชน์ แต่มันก็อาจทำงานเชิงรุกเกินไปอยู่บ้าง
  • Finder ไม่มีตัวเลือก “Cut”, คีย์ลัดบนคีย์บอร์ดก็ไม่คุ้นมือ และการจัดวางปุ่ม Control/Command ยังไปรบกวนซอฟต์แวร์รีโมตเดสก์ท็อปด้วย
  • แนวทางที่ปิดโปรแกรมแล้วแต่จริง ๆ ยังไม่ออกจากแอปก็ไม่สะดวก อีกทั้งเมื่อรวมกับการต้องพัฒนาซอฟต์แวร์ภายในระบบนิเวศแบบปิดของ Apple บน MacBook RAM 8GB ก็ยิ่งเพิ่มภาระเข้าไปอีก
  • การที่การพัฒนาแอปถูกผูกไว้กับระบบนิเวศของ Apple, การเรียกเก็บเงินเพื่อเซ็นซอฟต์แวร์, การที่คุณภาพกล้องฮาร์ดแวร์ทำให้ส่งเอกสารไม่ได้, และแม้ใช้แอป iPhone แล้วสถานะการสมัครก็ยังสะท้อนไม่ชัดเจน ล้วนกลายเป็นความไม่พอใจหลัก

ตัวอย่างการยืนยันตัวตนและลายเซ็นอิเล็กทรอนิกส์ที่ดีกว่า

  • เวลาซื้อเครื่องดื่มชูกำลังที่ร้านขายของชำแถวบ้าน ผู้เขียนสามารถใช้ SmartID เพื่อยืนยันตัวตนและอายุได้ภายในราว 20 วินาที
  • หากใช้ eParaksts ก็สามารถลงลายเซ็นดิจิทัลบนเอกสารได้ภายในประมาณ 1 นาที ไม่ว่าจะผ่านพีซีที่มีบัตรประชาชนที่รัฐออกให้และเครื่องอ่านบัตร หรือผ่านแอปบนมือถือ
  • ผลลัพธ์ที่ได้คือการลงลายเซ็นเชิงเข้ารหัสที่เหมาะสม ซึ่งแนบอยู่ใน EDOC container (ASIC-E) หรือฝังลงในไฟล์ PDF โดยตรง
  • ในประเทศอื่น ๆ ก็น่าจะมีบริการคล้ายกันสำหรับยืนยันตัวตน ยืนยันอายุ เซ็นเอกสาร และใช้บริการดิจิทัล แม้ไม่ใช่ทุกประเทศจะเหมือนกัน และยังมีข้อจำกัดด้านโครงสร้างพื้นฐานการชำระเงินอยู่
  • ถึงอย่างนั้น การที่ซอฟต์แวร์จากภูมิภาคบอลติกหลายตัวกลับทำงานได้ดีกว่ากระบวนการของบริษัทยักษ์ใหญ่ด้านเทคโนโลยีก็ยังเป็นสิ่งที่ยากจะยอมรับ

การเซ็นโค้ดบน Windows และปัญหาต้นทุนในภาพกว้าง

  • ปัญหานี้ไม่ได้มีแค่ Apple เพราะการเซ็นโค้ดบน Windows ก็มีต้นทุนสูงเช่นกัน
  • Certum code signing ดูเป็นหนึ่งในตัวเลือกที่ถูกกว่า แต่ก็ยังต้องจ่ายประมาณ 209 ยูโรต่อปี
  • Azure Artifact Signing ดูดีกว่าเพราะ Basic tier อยู่ที่ 8.54 ยูโรต่อเดือน แต่เมื่อเข้าไปตั้งค่าบัญชี Azure กลับพบว่าบุคคลธรรมดานอกสหรัฐฯ และแคนาดาไม่สามารถเซ็นใบรับรองได้ และในสหภาพยุโรปมีเพียงองค์กรเท่านั้นที่ทำ code signing ได้
  • ปัจจุบันพื้นที่ของ code signing ยังมีราคาสูงเกินจริง และให้ความรู้สึกคล้ายช่วงก่อน Let’s Encrypt ที่ใบรับรอง TLS เคยมีค่าใช้จ่ายระดับ 100 ยูโรต่อปี
  • แม้ Let’s Encrypt จะเข้ามาแทนโครงสร้างแบบเก็บค่าเช่าแฝงจำนวนมาก แต่ก็ยังมีความเสี่ยงที่จะกลายเป็นจุดล้มเหลวขนาดใหญ่เพียงจุดเดียว เนื่องจากมีทางเลือกและคู่แข่งไม่มากนัก
  • สุดท้ายผู้เขียนจึงสรุปว่า หากสามารถเซ็นโค้ดด้วยบัตรประชาชนที่ออกโดยรัฐได้ก็น่าจะเพียงพอแล้ว

1 ความคิดเห็น

 
GN⁺ 1 시간 전
ความคิดเห็นจาก Hacker News
  • ผู้ใช้ที่ไม่ชอบ Gatekeeper สามารถปิดได้ใน 10 วินาที ด้วยการรัน sudo spctl —-master-disable ในเทอร์มินัล
    จะบอกว่ามันเป็นค้อนอันใหญ่เกินไปหรือไม่ปลอดภัยก็ได้ แต่สุดท้ายต้องเลือกให้ได้ว่าต้องการอะไร ถ้าอยากได้แรงเสียดทานที่ Gatekeeper สร้างขึ้นก็เปิดไว้ ถ้าไม่ชอบก็ปิด นักพัฒนาไม่ควรเป็นคนตัดสินใจแทนผู้ใช้ และผู้ใช้ควรเป็นคนตัดสินใจเองว่าจะรันโค้ดอะไรบนอุปกรณ์ของตัวเอง การที่ค่าปริยายค่อนข้างจำกัดก็สมเหตุสมผล เพราะคนที่รู้ว่ากำลังทำอะไรอยู่สามารถเปลี่ยนมันได้ง่าย
    บน iOS ไม่มีวิธีติดตั้งซอฟต์แวร์ที่ไม่ได้เซ็นเลยแม้แต่น้อย และได้ยินมาว่าบน Android กระบวนการนั้นก็กำลังจะเปลี่ยนจาก 10 วินาทีเป็น 24 ชั่วโมง ซึ่งเป็นการพราก สิทธิ์ในการเลือกของผู้ใช้ ไปอย่างน่าขัน
    แต่ใน macOS รุ่นใหม่ก็มีข้อจำกัดอื่นอีกมากที่ปิดไม่ได้ และนั่นน่ารำคาญจริง ๆ ผมไม่คิดว่า Gatekeeper เป็นหนึ่งในนั้น ตั้งแต่ Sequoia เป็นต้นมาอาจต้องกดช่องทำเครื่องหมายใน Settings ต่อจากคำสั่งเทอร์มินัล เลยอาจใช้เวลาประมาณ 30 วินาที แต่ก็ยังไม่ใช่เรื่องใหญ่

    • สิ่งที่ผมต้องการคือ ความสามารถในการเลือกว่าจะเชื่อถืออะไร
      แนวคิดแบบ “เชื่อเฉพาะ Apple และอย่าเชื่อใครเลยแม้แต่ตัวเอง หรือไม่ก็เชื่อทุกคนไปเลย” ไม่ใช่การออกแบบที่มีเจตนาดี Apple เก่งมากในการผลักเรื่องเล่าด้วยการเปรียบเทียบเท็จและทางเลือกเทียม สมัยก่อนในการถกเถียงเรื่อง secure boot ก็เหมือนกัน Apple ทำให้มันกลายเป็น “ให้ Apple ถือกุญแจเข้ารหัส หรือไม่ก็ไม่ต้องเข้ารหัสเลย” จนผู้คนลืมถามไปว่า “ทำไมผมถึงถือกุญแจของอุปกรณ์ตัวเองไม่ได้?”
    • อยากให้มีตัวเลือกที่รันได้จริง โดยไม่ต้องเข้าไปที่ System Settings ทุกครั้ง แทนที่จะมีแค่ “Done” กับ “Move to Trash”
      และทำได้โดยไม่ต้องปิดฟีเจอร์ความปลอดภัย แรงเสียดทานที่เพิ่มมานี้ดูเหมือนมีเป้าหมายเพื่อบังคับให้นักพัฒนาจ่ายค่าสมาชิกรายปีให้ Apple เพื่อการแจกจ่าย มากกว่าจะมีไว้เพื่อความปลอดภัยของผม ไม่ได้หมายความว่ามันไม่มีประโยชน์ด้านความปลอดภัยเลย แต่ผมคิดว่าน้ำหนักเอนมาทางอย่างแรกมากกว่า
    • ผมอยากให้สามารถคลิกขวาที่แอปแล้วเลือก “Open” จากนั้นผ่านหน้าต่างยืนยันแล้วรันได้
      เมื่อก่อนทำแบบนี้ได้ แต่ Apple เอาออกแล้วเปลี่ยนเป็นขั้นตอนที่น่าหงุดหงิดมากซึ่งต้องเข้าไปที่ System Settings ทุกครั้ง
    • ผมคิดว่าวิธีที่ถูกต้องคือ Apple ควรเปิดให้ใช้ Developer ID แบบฟรี สำหรับการแจกจ่าย ถ้าเป็นแอปฟรีและไม่มี in-app purchase
      แบบนี้จะยังรักษาแนวทางการแจกจ่ายที่ดีไว้ได้ และยังได้ภาพลักษณ์ที่ดีโดยรวมด้วย
    • การบล็อกไม่ให้เปิดแอปเลยไม่ใช่แรงเสียดทาน แต่มันคือ การปิดกั้นโดยสมบูรณ์
      น่าจะแค่แสดงคำเตือนแล้วให้รันได้ครั้งนี้ครั้งเดียว หรืออนุญาตให้รันได้ตามปกติในครั้งต่อ ๆ ไปก็พอ
  • ผมพัฒนาซอฟต์แวร์อินดี้สำหรับ Mac และ PC มา 20 ปี และเข้าใจความรู้สึกของผู้เขียนมาก
    Apple ให้ความรู้สึกเหมือนคิดว่านักพัฒนาควร “สำนึกบุญคุณที่เราอนุญาตให้คุณสร้างแอปบนแพลตฟอร์มของเรา” ในบทความไม่ได้พูดถึง การไม่ให้ความสำคัญกับ backward compatibility ของ Apple แต่ Apple ชอบรื้อระบบนักพัฒนาทั้งก้อนเป็นประจำเหมือนทิ้งระเบิดพรม แอปที่สร้างเมื่อ 10 ปีก่อน ถ้าลองเอามารันบน macOS รุ่นล่าสุด มีโอกาสสูงว่าจะไม่ทำงาน
    Microsoft ทำเรื่อง backward compatibility ได้ดีกว่ามาก และไม่ได้บังคับให้เข้าร่วมโปรแกรมนักพัฒนา แต่ทุกครั้งที่ต้องต่ออายุใบรับรองดิจิทัล Authenticode สำหรับ Windows ก็โดนรีดจนเกลี้ยง แค่ใบรับรองดิจิทัลอย่างเดียวก็แพงกว่า 99 ดอลลาร์ต่อปีแล้ว มันเป็นธุรกิจขายของกันชัด ๆ

    • ฝั่ง Windows แพงกว่ามาก ใบรับรอง OV code signing certificate แบบทั่วไปจาก DigiCert และ Sectigo ตอนนี้อยู่ราว 700~1000 ดอลลาร์ต่อปี
      Azure Artifact Signing ของ Microsoft ราคาใกล้เคียงค่าสมาชิกรายปีของ Apple แต่ตั้งแต่เดือนก่อน ตัวติดตั้งที่เซ็นด้วยวิธีนี้กลับขึ้นคำเตือน SmartScreen บ่อย ทั้งที่ทั้งสองอย่าง Microsoft ควบคุมเอง
      ตัวเลือก Store ก็ไม่ฟรีสำหรับองค์กร และมีค่าลงทะเบียนครั้งเดียว ที่แย่กว่านั้นคือมันบังคับโมเดลไลเซนส์/เวอร์ชันทดลองแบบเรียบง่าย ซึ่งปกติไม่เข้ากับซอฟต์แวร์ B2B ที่ใช้ paid upgrade, สัญญาซัพพอร์ตแบบรายปี, การอัปเดตแบบควบคุม, และเวอร์ชันทดลองแบบขยายเวลา
      https://github.com/Azure/artifact-signing-action/issues/128#...
    • เรื่อง การไม่ให้ความสำคัญกับ backward compatibility นี่จริงมาก
      แทนที่ Apple จะรักษาเสถียรภาพของ ABI และ API เอาไว้ กลับผลักภาระการดูแลรักษาต่อเนื่องไปให้นักพัฒนาหลายพันคนทุกปี เพื่อให้แน่ใจว่าแอปเดิมจะไม่พังบน iOS เวอร์ชันใหม่ เวลานี้ควรถูกนำไปใช้กับงานที่มีประสิทธิผลกว่า เช่น แก้บั๊ก เพิ่มฟีเจอร์ หรือพัฒนาแอปใหม่ เมื่อคิดถึงข้อดีแบบทวีคูณที่เสถียรภาพมอบให้ทั้งระบบนิเวศ มันดูเป็นการแลกเปลี่ยนที่ผิดพลาด
      Apple ดูเหมือนอยากให้แอปตายไปเพื่อลดปริมาณแอปคุณภาพต่ำที่ล้น App Store แต่ต้องมีวิธีที่ดีกว่านี้ การคัดสรรโดยมนุษย์ยังดูเป็นวิธีเดียวที่เชื่อถือได้จริงสำหรับเรื่องการมองเห็นและการค้นพบแอป
      แอป iOS ส่วนใหญ่เป็นเกม แต่ไม่เหมือนแพลตฟอร์มเกมอื่น นักพัฒนา iOS ต้องอัปเดตทุกปีเพื่อให้เกมยังทำงานได้ Apple ยินดีฆ่าเกม 32-bit ทั้งบน iOS และ macOS และหลายเกมก็ย้ายไป 64-bit ไม่สำเร็จ ตรงข้ามกับ Nintendo DS/DSi/3DS ที่ตลอดช่วงปี 2004~2020 แม้จะมีการปรับฮาร์ดแวร์ใหญ่เล็กและอัปเดตเฟิร์มแวร์หลายสิบครั้ง เกมส่วนใหญ่ก็ยังเล่นได้ต่อเนื่อง หรือ Switch ที่ตั้งแต่ปี 2017 เกมก็ยังใช้งานได้เป็นส่วนใหญ่ทั้งบน Switch 1 และ 2
    • เผื่อไว้ Microsoft Store แจกจ่ายได้ฟรีและไม่ต้องจ่ายค่าเซ็น
    • พูดตามตรง ผมสนับสนุนการขาด backward compatibility แบบนี้อยู่ระดับหนึ่ง
      แอปองค์กรขนาดใหญ่หลายตัวที่ผมใช้ยังเป็น Intel อยู่เลย ทำให้เสียประสิทธิภาพไปมาก พอ Rosetta ถูกยกเลิกไป สุดท้ายก็ต้องเปลี่ยน แอปโอเพนซอร์สทั้งหมดเป็น native กันหมดแล้ว
  • ในฐานะผู้เขียน ผมได้อัปเดตบทความอย่างรวดเร็วแล้ว
    เพื่อความเป็นธรรม ถ้าดูราคาผู้ให้บริการอย่าง Certum เวลาอยากเซ็นอะไรสักอย่างสำหรับ Windows ก็อาจไม่ใช่ว่า Apple แพงผิดปกติ ทุกเจ้าก็ดูเป็นแบบนั้น: https://www.certum.eu/en/code-signing-certificates/
    พอดูฝั่ง Windows ต่อก็พบ Azure Artifact Signing ซึ่งราคาถูกที่ 8.54 ยูโรต่อเดือน แต่ไม่รองรับผู้ใช้บุคคลทั่วไปใน EU รองรับเฉพาะบุคคลในสหรัฐฯ และแคนาดา ส่วน EU รองรับเฉพาะองค์กร ซึ่งแปลว่าต้องไปตั้งบริษัทแบบ SIA หรือเทียบเท่า Ltd. ก่อน นั่นเป็นแผนในอนาคตอยู่แล้ว แต่กลายเป็นอุปสรรคต่อการใช้ Azure: https://azure.microsoft.com/en-us/products/artifact-signing
    น้ำเสียงอาจจะฟังอึดอัดไปหน่อย แต่ผมอยากยืนยันจริง ๆ ว่า อุตสาหกรรม code signing ต้องการช่วงเวลาแบบ Let’s Encrypt ไม่ทางใดก็ทางหนึ่ง อย่างน้อยก็ควรทำให้เป็นของสามัญเหมือนที่ Azure Artifact Signing พยายาม และควรเปิดให้นักพัฒนารายบุคคลใช้ได้ในทุกแพลตฟอร์ม แต่ดูไม่น่าเป็นไปได้ เพราะแพลตฟอร์มต่าง ๆ ตั้งใจทำตัวเป็น walled garden ผมไม่ได้เกลียด code signing เอง ถ้าทำให้ดี มันเป็นแนวคิดที่ดีเหมือน TLS บนเว็บไซต์จำนวนมาก

    • ถ้าอยากไม่ให้แอปโดน Windows SmartScreen บล็อก ต้องจ่ายเพิ่มซื้อ EV code signing certificate แบบนี้ใบรับรองแบบทั่วไปไม่พอ
      แม้แต่ในกระทู้ Stack Overflow เมื่อ 8 ปีก่อน ก็ยังบอกว่าวิธีเดียวที่ชัดเจนในการทำให้คำเตือน Microsoft SmartScreen หายไปทันทีและถาวร คือซื้อ EV code signing certificate จากหน่วยงานออกใบรับรองที่ Microsoft อนุมัติ แล้วใช้ใบนี้เซ็นแอป
      ใบรับรอง EV แบบนี้ปกติอยู่ราว 300~700 ดอลลาร์ต่อปี ควรเทียบราคา และออกให้เฉพาะธุรกิจที่จดทะเบียนแล้ว ถ้าเป็นนักพัฒนาเดี่ยวก็ต้องเป็นผู้ประกอบการรายบุคคลและมีทะเบียนธุรกิจที่ยังใช้งานได้
      https://stackoverflow.com/questions/48946680/how-to-avoid-th...
    • ไม่จำเป็นต้องพยายามยุติธรรมกับ Apple ก็ได้ ผมสมัคร Apple Developer Account แล้วใช้เวลาหลายสัปดาห์ และน่าจะเป็นเพราะตอนอัปโหลดใบขับขี่ด้วยโทรศัพท์ Apple แสงจากกล้องสะท้อนกับโฮโลแกรมจนระบบไม่ยอมรับไฟล์
      จากนั้นผมย้ายขั้นตอนสมัครไปทำบนแล็ปท็อป Apple แล้วกลับตกหลุมลึกกว่าเดิม ใช้บัตรประชาชนที่รัฐออกใบเดิมแท้ ๆ แต่ somehow มันแยกเป็นใบสมัครสองชุดที่เหมือนแข่งกันเอง ชุดหนึ่งเหมือนจะสำเร็จ อีกชุดเหมือนจะล้มเหลว ข้อดีคือพวกเขาเก็บเงินไปแล้ว ข้อเสียคือไม่ได้ให้สิ่งที่ผมซื้อ สุดท้ายผมต้องอัปโหลดข้อมูลส่วนตัวใหม่อยู่หลายสัปดาห์ ซึ่งคงไม่มีทางก่อปัญหาในอนาคตแน่นอน ทั้งหมดนี้ก็แค่เพื่อเอางานกองพะเนินที่ทำด้วย vibe-coded ของผมลงโทรศัพท์ตัวเอง
  • ผมก็เคยเจอความอึดอัดแบบเดียวกับผู้เขียนตอนหาวิธีแจกจ่ายไบนารีแบบนี้ให้ผู้ใช้ปลายทาง และได้เขียน ไกด์ อธิบายไว้อย่างละเอียดว่าต้องทำอย่างไร
    เอกสารของ Apple แย่อย่างน่าตกใจ และแทบหาโพสต์บล็อกที่เกี่ยวข้องไม่ได้เลย เลยต้องลองผิดลองถูกและดูโปรเจ็กต์โอเพนซอร์สชื่อดังบน GitHub เพื่อ reverse engineer ว่าของที่ใช้ได้จริงเขาทำกันอย่างไร
    https://ofek.dev/words/guides/2025-05-13-distributing-comman...

  • ประมาณ 1 ปีก่อน เหตุผลที่ใหญ่ที่สุดที่ทำให้ผม ย้ายไป Linux เต็มตัว ก็น่าจะเป็นเรื่องนี้
    ผมเบื่อที่จะสร้างซอฟต์แวร์แล้วกลับทำให้คนใช้งานไม่ได้ วิธีแก้อาจเป็นกล่องโต้ตอบแบบ “ผมเชื่อถือผู้เผยแพร่นี้” สไตล์ VS Code แต่ถึงอย่างนั้นก็ดูยังไม่ค่อยตรงจุด การพัฒนาบน Linux สนุกจริง ๆ และแทบไม่มีอะไรใน macOS ที่ผมคิดถึง ของที่คิดถึงผมก็เขียนโปรแกรมขึ้นมาเองแล้วแจกให้คนอื่น [1][2] ใครจะไปคิดว่ามันจะยากขนาดนี้
    https://github.com/zackb/tether
    https://github.com/zackb/hyprwat

  • ผมไม่แน่ใจว่าคนที่แคร์โอเพนซอร์สหรือการพัฒนาในความหมายกว้างกว่านั้นจะมองสิ่งนี้แล้วพูดว่า “ใช่เลย นี่แหละระบบปฏิบัติการที่ฉันอยากใช้” ได้หรือเปล่า
    ผมเข้าใจจากใจจริงได้ยากมากว่าทำไมนักพัฒนาหลายคนยอมประนีประนอมอะไรตั้งมากมายเพียงเพราะโน้ตบุ๊กบางเครื่องหนึ่ง

    • เพราะนักพัฒนาหลายคนไม่เคยเจอปัญหาแบบนี้เลย
      ผมใช้ Mac เป็นเครื่องพัฒนาหลักมาตั้งแต่ยุค G4 PowerBook และก็พยายามย้ายไป Linux หลายครั้ง แต่ทุกครั้งประสบการณ์แย่กว่าเดิม พอมาเห็นเรื่องแบบนี้ก็ยิ่งตระหนักว่าเราใช้คอมพิวเตอร์กันต่างกันมากจริง ๆ
    • คนใช้ MacBook ไม่ได้มีไว้ทำแค่งานพัฒนา และตรงนั้นเองที่ Linux มักพังบ่อย
      ฮาร์ดแวร์แปลก ๆ ที่เข้ากันไม่ได้ อาการสะดุด และใช้เวลาบำรุงรักษาเครื่องมากเกินไปแทนที่จะได้ทำงาน การต้องรัน xattr -d com.apple.quarantine เป็นครั้งคราวเพื่อดาวน์โหลดแอป FOSS สุ่ม ๆ ที่มีคนใช้น้อย ยังเทียบไม่ได้เลยกับสิ่งที่ผู้ใช้ Linux ต้องเจอ
    • มันไม่ได้มีดีแค่บาง มันเงียบ เร็ว มีแทร็กแพดที่ดีที่สุดกับคีย์บอร์ดที่โอเค และเลย์เอาต์ก็แทบไม่เปลี่ยน ยกเว้นช่วงโง่ ๆ ที่ปล่อย Touch Bar แล้วเอาปุ่ม Escape ออกไป สถานะพลังงานทุกแบบก็ทำงานถูกต้องทุกครั้ง
      ผมเป็นคนดื้อเรื่องนี้เป็นอันดับสองในกลุ่มเพื่อน ช่วงโควิดผมใช้แต่เดสก์ท็อปอยู่หลายปี แล้วหลังจากนั้นก็เลี่ยงแล็ปท็อป Mac มาอีก 5 ปี แต่มันแย่มาก สุดท้ายก็ยอมแพ้เมื่อรู้ว่า MacBook Air M5 ใหม่อาจเร็วกว่าในการท่องเว็บ และยังแข่งกับเครื่อง Xeon สัตว์ประหลาดตัวล่าสุดที่เพิ่งประกอบเรื่องคอมไพล์โค้ดได้แบบน่าประหลาด ทั้งที่ไม่มีพัดลมด้วยซ้ำ
      สำหรับผม เกมจบแล้ว Apple ชนะทุกด้านยกเว้นคุณภาพจอ ผมเสพติด OLED ไปแล้ว น่าเสียดาย และผมก็ไม่เห็นด้วยในระดับหลักการกับจุดยืนของ Apple ที่ไม่ใส่หน้าจอสัมผัสในแล็ปท็อป ยิ่งพอใช้เวลากับลูก ๆ เยอะขึ้นก็ยิ่งคิดแบบนั้น
    • ในหมู่เพื่อนร่วมงาน CA/SV ถ้าคุณถือโน้ตบุ๊ก “ธรรมดา” ไปคงดูไม่ฮิปไม่เท่
    • ไม่ใช่เพราะบาง แต่เพราะ อายุแบตเตอรี่ ยอดเยี่ยมมาก
  • บน Linux ถ้าต้อง chmod +x เพื่อรันเครื่องมือก็ถือเป็นเรื่องปกติ แต่บน macOS แค่ต้องรัน xattr ถึงกับต้องเขียนบล็อกมาบ่นเลยหรือ
    ผมสงสัยจริง ๆ นะว่า Windows 11 ปล่อยให้รันไฟล์ .exe ที่ไม่น่าเชื่อถือโดยไม่มีคำเตือนได้จริงหรือเปล่า?

    • ผมว่าตรงนี้คือประเด็นสำคัญที่สุดของทั้งบทความ
      นี่เป็นเครื่องมือ Claude Code สำหรับนักพัฒนา ผู้ใช้ที่เป็นไปได้ควรจะรันคำสั่ง xattr ได้สบาย ๆ ถ้าทำไม่ได้ อาจไม่ควรไปยุ่งกับ Claude Code ตั้งแต่แรก ตรงนี้ฝั่งผมเองก็มีความเป็น “คนเฝ้าประตู” เพิ่มอยู่เหมือนกัน
      สำหรับผู้ใช้แบบนี้ คุณอาจทำสคริปต์ curl -sL [https://github.com/myrepo/installme.sh](<https://github.com/myrepo/installme.sh>;) | bash ที่จัดการคำสั่ง xattr ให้ด้วยก็ได้
      ผู้ใช้ macOS ทั่วไปมักไม่ใช้เครื่องมือ command line หรือไม่ก็ใช้ Homebrew วิธีแจกจ่ายไบนารีที่ถูกต้องน่าจะเป็น pkg installer มากกว่า
    • โดยพื้นฐานแล้ว Windows 11 จะไม่รันไฟล์ .exe/PE ที่ไม่น่าเชื่อถือ
      Microsoft Defender SmartScreen เป็นคนจัดการ และมันขึ้นป๊อปอัปขู่คนได้ดีมาก ถ้าไม่เคยทำมาก่อน ขั้นตอนการคลิกผ่านเพื่อให้โปรแกรมรันได้ก็ไม่ได้ใช้งานง่ายนัก
    • คุณตั้งให้มันไม่ยอมรันได้เลยก็ได้ แต่ค่าปริยายจะเป็นข้อความที่ทำให้ต้องคลิกสามครั้ง
      มากพอจะทำให้คนที่ไม่มีความรู้ลึก ๆ กลัวได้แน่นอน แน่นอนว่าปิดทั้งหมดนี้ได้
    • ความต่างหลักคือบน Linux คุณ อนุญาตผ่าน GUI ได้
      การอธิบายและเกลี้ยกล่อมผู้ใช้ให้กดช่อง “Allow executing file as program” นั้นง่ายกว่าการสอนคำสั่ง command line ที่ทึบอย่าง xattr มาก
  • เมื่อวานผมเพิ่งผ่าน ขั้นตอนยืนยันตัวตน นี้มา และน่าจะสำเร็จตอนรอบที่ 8
    มันออกแบบมาแย่มาก ตอนนี้กำลังแลกเอกสารกับบุคคลที่สามเจ้าหนึ่งเพื่อเชื่อม LLC เข้ากับบัญชี ถ้าแค่เขียนซอฟต์แวร์แล้วแจกจ่ายได้เลยก็คงดี แต่ในเมื่อ iOS monopoly มีเจ้าเดียว ก็ต้องเล่นตามเกม

  • ถ้าเป็นเมื่อ 1 ปีก่อนผมคงเห็นด้วย แต่ตอนนี้ผมอยู่คนละฝั่งแล้ว
    ปริมาณ มัลแวร์ ที่เข้าไปอยู่ในซอฟต์แวร์ทุกวันนี้เพิ่มขึ้นแบบทวีคูณ จริงอยู่ มันเป็นภาษีความเจ็บปวดที่โยนใส่ซอฟต์แวร์ทุกตัว ไม่ว่าจะเป็นอันตรายหรือไม่ แต่จนกว่าจะหาวิธีที่ดีกว่านี้ได้ วิธีนี้ก็จะทำให้ผู้ไม่หวังดีบางส่วนถอดใจไปเอง โดยเฉพาะเพราะต้องเสียค่าธรรมเนียม
    ในฐานะผู้ใช้ Mac ผมอยากรู้ว่านักพัฒนาจ่ายต้นทุนมากพอสมควรเพื่อส่งซอฟต์แวร์นี้มาให้ผมหรือไม่ สำหรับผมมันเป็นสัญญาณที่มีประโยชน์ ถ้ายังไม่ได้จ่ายเงินและยังไม่ได้อัปโหลดพาสปอร์ต ผมก็อยากคิดให้รอบคอบมาก ๆ ถึงความเสี่ยงที่ต้องรับถ้าจะรันมัน

    • มีตัวอย่างมากมายของซอฟต์แวร์ที่เซ็นและ notarized แล้วแต่ก็ยังปล้นผู้ใช้ได้อยู่ดี
    • ผู้ไม่หวังดีก็จ่ายค่าธรรมเนียมได้ง่ายเหมือนกัน พวกเขาทำธุรกิจอยู่แล้วหรือไม่ก็ทำงานให้รัฐชาติ
  • อย่าอัปโหลดเอกสารยืนยันตัวตน เด็ดขาด
    ถ้านั่นหมายถึงจะไม่พัฒนาสำหรับแพลตฟอร์มนั้น ก็แค่ไม่ต้องพัฒนาสำหรับมัน

    • ผมเห็นด้วยกับอารมณ์โดยรวม แต่ไม่น่าจะมีใครคิดอย่างจริงจังว่านี่เป็นทางออกที่ใช้ได้จริงสำหรับนักพัฒนาส่วนใหญ่