5 คะแนน โดย GN⁺ 2026-05-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ประสบการณ์ของนักพัฒนาอิสระที่พยายามแจกจ่ายยูทิลิตีเล็ก ๆ สำหรับนักพัฒนาที่สร้างด้วย Go บน macOS แต่ต้องชนกับกำแพงของ การเซ็นโค้ดและ Apple Developer Program
  • บน Linux และ Windows สามารถแจกจ่ายได้ค่อนข้างง่าย แต่บน macOS ไบนารีที่ไม่ได้เซ็นจะถูกบล็อกเพราะ นโยบายกักกัน (quarantine)
  • ค่าสมาชิกรายปี ของ Apple Developer Program อยู่ในระดับที่รายได้จากยูทิลิตีขนาดเล็กไม่อาจรองรับได้ และกระบวนการยืนยันตัวตนก็ล้มเหลวซ้ำแล้วซ้ำเล่าเพราะคุณภาพเว็บแคม MacBook ต่ำ
  • บริการลายเซ็นอิเล็กทรอนิกส์ที่อิงกับภาครัฐ อย่าง SmartID และ eParaksts ในภูมิภาคทะเลบอลติก จัดการงานนี้ได้ภายในไม่กี่สิบวินาทีถึง 1 นาที แต่ระบบของบริษัทมูลค่าหลายแสนล้านดอลลาร์กลับทำได้ไม่ดี
  • แม้แต่การเซ็นโค้ดบน Windows ก็มีค่าใช้จ่ายตั้งแต่ 209 EUR ต่อปีขึ้นไป ทำให้ ระบบนิเวศการเซ็นโค้ดทั้งหมดมีราคาแพงอย่างไร้เหตุผลพอ ๆ กับใบรับรอง 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 ซึ่งดูแปลก ๆ
  • ผู้เขียนยอมรับว่าหากไม่มีต้นทุนเลยก็อาจเกิดปัญหาอื่น เช่น สแปม แต่แม้จะเป็นซอฟต์แวร์ที่เผยแพร่แบบปิดหรือเปิดซอร์สเพียงบางระดับ โครงสร้างที่คิดเงินกับการแจกจ่ายไบนารีก็ยังเป็นภาระ
  • แอป macOS/iOS ยังไม่สามารถคอมไพล์ได้เลยบน Windows หรือ Linux ทำให้มีปัญหา vendor lock-in ที่ต้องซื้อ MacBook ราคาแพงอยู่แล้ว

ความฝืดในกระบวนการยืนยันตัวตน

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

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

  • ผู้เขียนชื่นชมคุณภาพงานประกอบของฮาร์ดแวร์ Apple และชิปตระกูล 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 (ASIC-E) หรือฝังลงในไฟล์ PDF โดยตรง
  • ในประเทศอื่น ๆ ก็อาจมีบริการลักษณะใกล้เคียงกันสำหรับการยืนยันตัวตน ยืนยันอายุ เซ็นเอกสาร และบริการดิจิทัล แม้ไม่ใช่ทุกประเทศจะเหมือนกัน และโครงสร้างพื้นฐานด้านการชำระเงินก็มีข้อจำกัด
  • ถึงอย่างนั้นก็ยังยากจะยอมรับว่าซอฟต์แวร์จากภูมิภาคบอลติกหลายชุดกลับทำงานได้ดีกว่ากระบวนการของบริษัทยักษ์ใหญ่ด้านเทคโนโลยี

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

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

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

 
GN⁺ 2026-05-10
ความคิดเห็นจาก 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 แล้วแต่ก็ยังปล้นผู้ใช้ได้อยู่ดี
    • ผู้ไม่หวังดีก็จ่ายค่าธรรมเนียมได้ง่ายเหมือนกัน พวกเขาทำธุรกิจอยู่แล้วหรือไม่ก็ทำงานให้รัฐชาติ
  • อย่าอัปโหลดเอกสารยืนยันตัวตน เด็ดขาด
    ถ้านั่นหมายถึงจะไม่พัฒนาสำหรับแพลตฟอร์มนั้น ก็แค่ไม่ต้องพัฒนาสำหรับมัน

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