2 คะแนน โดย GN⁺ 2024-01-06 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • BoopSnoop คือ แอปส่งข้อความที่เรียบง่ายมาก ซึ่งทำขึ้นให้คนในครอบครัว 4 คนใช้ โดยหลังเปิดตัวในสัปดาห์แรกของเดือนมกราคม 2020 ก็มีคนสี่คนในสามโซนเวลาดาวน์โหลด และหลังจากนั้นก็รักษาจำนวนผู้ใช้ประจำวันไว้ที่ 4 คน พร้อมอัตราการเลิกใช้ 0
  • หลัง Tapstack ยุติลง จึงสร้างแอปสำหรับครอบครัวเองแทนการใช้กลุ่ม Instagram หรือ WhatsApp และยังคงแนวทางให้ข้อความภาพถ่ายและวิดีโอแสดงแบบ เต็มหน้าจอ ก่อนจะหายไป
  • แอปประกอบด้วยเพียงหน้าจอกล้อง, ป้ายแสดงข้อความรออ่าน, AWS S3, AWS Lambda และการแจกจ่ายผ่าน TestFlight เท่านั้น และยิ่งเรียบง่ายขึ้นเพราะเป็น situated software ที่ไม่ต้องมีการล็อกอินหรือจัดการรายชื่อติดต่อ
  • ใช้เวลาสร้างประมาณ 1 สัปดาห์ โดยเกือบครึ่งหนึ่งหมดไปกับปัญหา code signing และ provisioning ของ Xcode แต่คอมโพเนนต์โอเพนซอร์สและโค้ดตัวอย่างก็ทำให้การพัฒนาเป็นไปได้
  • แม้จะไม่ใช่ซอฟต์แวร์ระดับมืออาชีพหรือขยายระบบได้มาก แอปที่ทำขึ้นเพื่อคนใกล้ตัวก็สามารถเป็น ซอฟต์แวร์แบบบ้านๆ ที่จะเปลี่ยนก็ต่อเมื่อผู้ใช้ต้องการเปลี่ยน โดยไม่มีการรีดีไซน์กะทันหัน โฆษณาถาโถม หรือการ pivot

ช่องทางครอบครัวที่ Tapstack ทิ้งไว้

  • Tapstack เป็นแอปที่แสดงกริดใบหน้าของคนหรือกลุ่มไว้ใต้ภาพสดจากกล้องมือถือ
    • แตะเพื่อถ่ายรูป และกดค้างเพื่อบันทึกวิดีโอ
    • ทันทีที่ยกนิ้ว ข้อความก็ถูกส่งออกไป โดยไม่มีขั้นตอนแก้ไขหรือพรีวิว
    • ข้อความที่ได้รับจะสะสมอยู่ใน “stack” แล้วหายไปหลังผู้ใช้ปัดดู
  • กริด Tapstack ของครอบครัวมี 4 ช่อง คือ แม่ พ่อ น้องสาว และกลุ่มที่รวมทั้งสามคน
  • จุดเด่นของแอปนี้ไม่ได้อยู่ที่การติดต่อเรื่องงานจิปาถะหรือจัดตาราง แต่คือ ambient presence
    • เพราะไม่มีเธรดหรือประวัติ จึงไม่กดดันว่าต้องตอบกลับ
    • เซลฟี่คู่กาแฟ รูปบ่อน้ำแข็งที่กลายเป็นน้ำแข็ง และวิดีโอขี้เล่นของหลานๆ ล้วนเป็นวิธีส่งความรู้สึกว่า “กำลังนึกถึงคุณอยู่นะ”
  • Tapstack ดูเหมือนจะไม่เคยมีผู้ใช้จำนวนมาก ไม่มีโฆษณา และไม่เคยขอให้ผู้ใช้จ่ายเงิน
  • หลังการอัปเดตหยุดลงในปี 2019 ก็ประกาศยุติบริการในช่วงฤดูใบไม้ร่วง พร้อมให้วิธีส่งออกข้อมูลแก่ผู้ใช้ก่อนปิดตัว

BoopSnoop แอปทดแทนสำหรับครอบครัว

  • หลัง Tapstack ยุติลง ครอบครัวก็ต้องการทางเลือกอื่น แต่กลุ่ม Instagram หรือ WhatsApp ให้ความรู้สึกเหมือนมีสิ่งอื่นๆ มาห้อมล้อมช่องทางอันอบอุ่นของครอบครัว
  • BoopSnoop คือแอปเหมือน หน้าต่างวิเศษ ที่ทำขึ้นเพื่อครอบครัวเท่านั้น
    • ใช้ถ่ายภาพและวิดีโอส่งให้ครอบครัว
    • ข้อความจะรออยู่ในคิวและหายไปเมื่อถูกเปิดดู
    • หน้าจอการดูจะแสดงเต็มหน้าจอเสมอ และไม่มีองค์ประกอบที่ชวนให้คอมเมนต์หรือแชร์
  • อินเทอร์เฟซแทบไม่มีอะไรเลย
    • มีปุ่มกล้อง
    • มีป้ายสีเขียวเรียบๆ ที่มุมจอ แสดงจำนวนข้อความที่รออยู่
  • เปิดตัวในสัปดาห์แรกของเดือนมกราคม 2020 และมีคนสี่คนในสามโซนเวลาดาวน์โหลด
  • หลังจากนั้นก็รักษาจำนวนผู้ใช้ประจำวันไว้ที่ 4 คน และอัตราการเลิกใช้ 0 กลายเป็นความสำเร็จที่เกินความคาดหวังทั้งหมดของผู้สร้าง

การออกแบบที่ทำให้ความเรียบง่ายเป็นไปได้

  • BoopSnoop ถูกออกแบบให้เรียบง่ายกว่า Tapstack
    • ไม่ต้องมีระบบล็อกอิน
    • ไม่ต้องมีอินเทอร์เฟซสำหรับสร้างหรือจัดการรายชื่อติดต่อ
    • เพราะรู้อยู่แล้วอย่างชัดเจนว่าใครเป็นผู้ใช้
  • เช่นเดียวกับแนวคิด situated software ของ Clay Shirky มันไม่ใช่ซอฟต์แวร์ที่ต้องมาปรับให้เป็นส่วนตัวภายหลัง แต่เกือบจะเป็นซอฟต์แวร์ส่วนตัวมาตั้งแต่ต้น
  • แกนหลักคือหน้าจอกล้องสำหรับรับภาพถ่ายและวิดีโอ
    • ใช้วิธีควบคุมที่คุ้นเคย คือแตะเพื่อถ่ายรูปและกดค้างเพื่อบันทึกวิดีโอ
    • ส่วนนี้ใช้คอมโพเนนต์โอเพนซอร์ส SwiftyCam
    • หากไม่มีคอมโพเนนต์นี้ โครงการก็คงทำได้ยาก
  • ฝั่งแบ็กเอนด์มีองค์ประกอบน้อยมาก
    • S3 bucket ของ AWS ใช้เก็บรูปภาพและวิดีโอ
    • ฟังก์ชัน AWS Lambda ไม่กี่ตัวทำงานที่จำเป็นเมื่อมีการอัปโหลดข้อความใหม่
  • การแจกจ่ายให้ครอบครัวทำผ่าน TestFlight และแอปก็ยังคงเป็น “เบต้าถาวรอันแสนอบอุ่น” ต่อไป

สิ่งที่เจอระหว่างพัฒนาจริง

  • ถ้าโลกดีกว่านี้ นี่คงเป็นแอปที่สร้างได้ภายในวันเดียวด้วยเครื่องมือแนว HyperCard สมัยใหม่ที่ยืดหยุ่นสำหรับ iOS
  • แต่ในความเป็นจริง ใช้เวลาราว 1 สัปดาห์ และเกือบครึ่งหนึ่งหมดไปกับการจัดการปัญหา code signing และ ID provisioning
  • ถึงอย่างนั้น คอมโพเนนต์โอเพนซอร์สและโค้ดตัวอย่างก็ทำให้โปรเจกต์นี้เกิดขึ้นได้ ซึ่งหมายความว่าโลกทุกวันนี้ก็ยังไม่ได้พังไปเสียทั้งหมด
  • การเขียนโปรแกรมในศตวรรษที่ 21 เมื่อทำงานภายในขอบเขตของเทคโนโลยีสมัยใหม่ สามารถให้ความรู้สึกเหมือน ประกอบ Lego ได้
  • การเปิดเผยโค้ดอาจเป็นแนวทางให้คนอื่นได้ แต่ในโค้ดของแอปนี้มีค่าต่างๆ และคีย์ยืนยันตัวตนเฉพาะแอปปะปนอยู่มาก
    • แอปนี้ไม่ใช่เฟรมเวิร์กหรือเทมเพลต แต่เป็น แอปที่เป็นตัวมันเอง
    • คุณลักษณะเช่นนี้แยกไม่ออกจากเจตนาที่ใช้สร้างแอปขึ้นมา

การเขียนโปรแกรมแบบ “อาหารทำเองที่บ้าน”

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

แอปที่ยังถูกใช้อยู่หลายปีต่อมา

  • ตามอัปเดตเดือนกุมภาพันธ์ 2022 ครอบครัวยังใช้ BoopSnoop ทุกวันแม้ผ่านไปแล้ว 2 ปี และมีการเพิ่มฟีเจอร์หนึ่งตามคำขอของคุณแม่
  • ในเดือนกุมภาพันธ์ 2023 ก็ยังใช้งานทุกวัน
  • ในเดือนกุมภาพันธ์ 2024 ก็ยังใช้งานต่อเนื่อง และ TestFlight build อยู่ที่ 26
  • ในเดือนกุมภาพันธ์ 2025 แอปแทบไม่ได้เปลี่ยนอะไรเลยตามตัวอักษร และ TestFlight build อยู่ที่ 30

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

 
GN⁺ 2024-01-06
ความคิดเห็นจาก Hacker News
  • นี่เหมือนบทกวีเลย ตลอด 10 ปีที่ผ่านมา ผมทำโปรเจกต์ส่วนตัวมาเรื่อย ๆ และแทนที่แอปที่ใช้ทุกวันอย่างอีเมล ปฏิทิน ฯลฯ ที่เคยใช้ทั้งหมด
    ทุกครั้งที่มีคนเห็นผมใช้ เขาจะถามว่า “ว้าว เจ๋งมาก ดาวน์โหลดได้ยังไง?” แต่คำตอบก็เหมือนเดิมเสมอ: ดาวน์โหลดไม่ได้
    การออกแบบอะไรสักอย่างเพื่อให้ตัวเองใช้คนเดียวมีความงามอยู่ และผมมั่นใจ 100% ว่าโปรเจกต์นี้ช่วยรักษา สุขภาวะทางใจ ของผมไว้
    มันเป็นแหล่งของความหวังและความสุขต่ออนาคตที่ไม่มีบริษัทหรือเงินเดือนใดให้ได้ และเป็น ไพ่โจ๊กเกอร์ ส่วนตัวของผมในการรับมือกับโลก

    • ผมก็คล้ายกัน กำลังทำแอปจดโน้ตอีกตัวเพื่อใช้เองเท่านั้น
      เครื่องมือที่สร้างเองมีข้อดีที่ใหญ่กว่าที่คิดตรงที่ ตั้งแต่วันแรกคุณจะกลายเป็น ผู้เชี่ยวชาญอันดับหนึ่งของโลก สำหรับเครื่องมือนั้น มีซอฟต์แวร์สักกี่ตัวที่คุณพูดได้ว่ารู้ฟีเจอร์ทั้งหมด คีย์ลัดทั้งหมด และการทำงานภายใน 100%
      ถ้าเป็นเครื่องมือทำงานหรือเพิ่ม productivity “การเชี่ยวชาญอย่างสมบูรณ์” นี้ทำให้มีประสิทธิภาพมากได้มหาศาล และเมื่อใช้ทุกวันพร้อมป้อนกลับการแก้ไขเล็ก ๆ กับการปรับให้เหมาะสม เครื่องมือก็เติบโตไปพร้อมกับเรา
      ตอนนี้แอปจดโน้ตของผมรับหน้าที่ตั้งแต่ฐานความรู้ส่วนตัว การจัดการโปรเจกต์ รายการสิ่งที่ต้องทำ แผนรายวัน ไปจนถึงไดอารี และเพราะมีแค่ฟีเจอร์ที่ต้องการจริง ๆ จึงเบาและเร็ว
      สรุปคือผมคิดว่าเราทุกคนควรทดลอง สร้างเครื่องมือของตัวเอง กันมากขึ้น
    • อยากให้มีคนจำนวนมากขึ้นเผยแพร่ของแบบนี้เป็น โอเพนซอร์ส แต่ปิด pull request กับ issue ไว้
      เป็นวิธีทำให้ความคาดหวังชัดเจนว่า คนอื่นใช้ เรียนรู้ และเอาไปต่อยอดได้ แต่ไม่ต้องการ feedback หรือ contribution
    • อยากรู้ว่าจะอธิบายการทำงานหรืออัดวิดีโอตอนใช้งานให้ดูได้ไหม
      แต่ก็อาจขัดกับประโยคสุดท้ายที่ว่า “ไพ่โจ๊กเกอร์ส่วนตัวของผม”
      ผมเดาว่าอาจเป็นการผสานแอปต่าง ๆ เข้าด้วยกัน เช่น สร้าง event จากข้อความ แล้วส่งต่ออีเมลไปยัง contact ใน Signal
      ผมเองก็ automate งานซ้ำ ๆ ด้วยสคริปต์ได้เร็ว แต่ไม่ได้รวมสคริปต์ทั้งหมดเข้าเป็นหนึ่งเดียว ถ้าแยกไว้ภาระ maintenance จะน้อยกว่า เลยไม่แน่ใจว่าจะไปทางนั้นหรือไม่
    • ผมเขียนโปรแกรมเพื่อใช้เองเป็นหลัก แต่โดยปกติจะเปิดเผยไว้เพื่อให้คนอื่นที่เห็นว่ามีประโยชน์นำไปใช้ แก้ไข ใช้โค้ดบางส่วน วิจารณ์ หรือ backup ได้
      ถ้ามีใครเขียนอะไรน่ารำคาญเกี่ยวกับมัน ก็แค่ไม่สนใจ และมันไม่กระทบวิธีที่ผมใช้งานเอง
      ถ้าไม่อยากรับคำวิจารณ์ patch หรือ bug report ก็อาจเปิดเผยเฉพาะไฟล์ไว้ในที่อย่าง GitHub โดยไม่มี issue, pull request หรือพื้นที่สนทนา
    • ผมเองใช้แรงน้อยกว่านั้นมากด้วยการตั้งค่า neomutt จนได้ UX ของ mail client ที่สวยและเร็วที่สุด และใช้ทั้งงานกับส่วนตัว
      คนที่เห็นต่างก็ทึ่ง และมีบางคนขอ config แต่ดูเหมือนไม่มีใครชินกับมันจริง ๆ
  • บทความดีมาก ทำให้นึกถึงแอป macOS ที่ทำให้ภรรยาเมื่อหลายปีก่อน
    มันติดตามเวลาเปิดทำการของร้านที่ภรรยาชอบ และเมื่อกดไอคอนบน menu bar ก็จะแสดงว่าวันนี้แต่ละร้านเหลือเวลาอีกเท่าไรก่อนปิด
    ยังบอกด้วยว่าช่วงนั้นคนแน่นไหม เพื่อให้ตรงกับความชอบของเธอที่อยากไปตอนคนไม่พลุกพล่าน
    เป็น แอป Qt ง่าย ๆ ที่เก็บข้อมูลในไฟล์ข้อความ และตอนถามว่าจะตั้งชื่อว่าอะไร เธอบอกว่า “เหมือนชื่อดอกไม้ Gladiolus” ก็เลยตั้งชื่อนั้น
    ในฐานะโปรแกรมเมอร์ ผมไม่เคยมีลูกค้าคนไหนที่รู้สึกขอบคุณมากกว่าผู้ใช้เพียงคนเดียวของ Gladiolus เลย

    • ถ้า เวลาเปิดทำการ ของร้านเปลี่ยนล่ะ ทำยังไง?
  • ส่วนที่บอกว่าพยายามปล้ำกับ code signing และ identity provisioning ของ Xcode แล้วจุดธูป โยนก้อนหิน ก่อนที่เทพเจ้าแห่ง Xcode จะอนุญาตให้ผ่าน นี่โดนใจมาก
    นี่คือแรงเสียดทานขนาดใหญ่ใน modern software development เวลาจะแก้ความไม่สะดวกของตัวเองโดยตรง
    มันไม่ใช่การคิดเชิงวิศวกรรมที่เข้าใจหลักการคอมพิวติ้งและประกอบส่วนต่าง ๆ อย่างมีเหตุผลเพื่อสร้างสิ่งใหม่ แต่เป็นการท่องคาถาที่หาได้จาก Google ซ้ำ ๆ เอาหัวโขกไปเรื่อย ๆ จนจู่ ๆ มันก็ใช้ได้

    • สิ่งที่ผมต้องการจากแพลตฟอร์มเป็นอันดับหนึ่งคือ การพัฒนาและติดตั้งโปรแกรมที่ต้องการได้โดยไม่ต้องมี การอนุญาตจากคนอื่น
      ถ้าใช้เกณฑ์นั้น Apple กับ Microsoft ก็แทบถูกตัดออกไป
    • เรามักต้องท่องคาถาที่หาได้จาก Google ซ้ำ ๆ พร้อมภาวนาว่าอย่าทำอะไรพังหนักกว่าเดิม
      การที่ Apple ทำให้การจัดการ profile, key signing ฯลฯ ใน Xcode มีปุ่ม “ครับ ช่วยทำให้ง่าย ๆ” นับว่าเป็นส่วนที่ดีขึ้น แต่ยังมีกรณีที่การตั้งค่าถูกลืมหรือพังแบบสุ่ม จนต้องกลับไปไล่หาปัญหาอีก
    • developer experience ด้าน signature, certificate และ profile ของ Apple แย่อย่างน่าทึ่ง
    • ในสถานการณ์แบบนี้ การใช้เว็บเซิร์ฟเวอร์ Raspberry Pi คู่กับ Cloudflare Tunnel นี่โดดเด่นจริง ๆ
      ไม่ต้องขออนุญาตใครเพื่อรัน service นั้น ผมรันแอป to-do แบบ custom บน Pi โดยไม่ต้องเปิด router ออกไป และรู้สึกอิสระมาก
  • ตอนบทความนี้ขึ้น HN ครั้งแรกเมื่อก่อน มันส่งผลกับผมมาก และช่วยเรียบเรียงเป็นคำพูดให้กับสิ่งที่ผมทำอยู่โดยไม่รู้ตัวอยู่แล้ว
    หลายปีก่อนผมเริ่มทำ homelab เหมือนคนจำนวนมาก และมันค่อย ๆ กลายเป็นงานอดิเรกในการสร้างและ self-host แอปให้ครอบครัวกับเพื่อนสนิทประมาณ 5–15 คน
    ผมทำแอปเล็ก ๆ กับ integration ใน group chat เยอะมาก เช่น การนัดคืนดูหนัง และผลก็คือทุกคนคุยกันและไปมาหาสู่กันบ่อยขึ้นมาก
    กลุ่มเพื่อนที่อยู่ไกลกันและไม่เคยรู้จักกันมาก่อน ตอนนี้ถึงขั้นนัดเจอกันเองโดยไม่มีผม เพื่อไปงาน baby shower หรืองานแต่งงานแล้ว
    ถ้าคุณมีกลุ่มเพื่อนแบบนี้ ลองสร้างอะไรสักอย่างให้พวกเขาดู

    • ผมชอบทำเครื่องมือเล็ก ๆ แต่มีแนวโน้มจะทำให้คนอื่นมากกว่าตัวเอง
      แฟนกับน้องของเธอต้องคอยจัดบัญชีเคลียร์เงินกันอยู่เรื่อย ๆ และมักลำบากกับการหาว่าใครติดหนี้อะไร เมื่อไร
      ผมเลยทำ “แอป” ในรูปแบบสเปรดชีตฉลาด ๆ ที่แชร์บน Google Docs ให้ พอใส่ข้อมูลรายเดือนก็จะคำนวณว่าใครต้องจ่ายเท่าไร
      ผมลืมมันไปเกินปี แล้วถามว่ายังใช้อยู่ไหม เธอตอบว่า “ใช้ตลอดเลย มันช่วยชีวิตจริง ๆ”
      จริง ๆ แล้วก็แทบเป็นแค่การใช้สเปรดชีตธรรมดา แต่คนเก่งรายได้สูงกลับยังลำบากกับการเคลียร์เงินง่าย ๆ
      ผมตั้งให้แต่ละแท็บใหม่ของแต่ละเดือนดึงรูปหมาที่ทั้งสองเลี้ยงร่วมกันมาแสดงด้วย ซึ่งพวกเธอชอบเป็นพิเศษ เครื่องมือเล็ก ๆ ที่ใช้เวลา 15 นาทีทำนี้ยังเป็นที่รักมาหลายปี
      การทำ เครื่องมือเล็ก ๆ ให้คนกลุ่มเล็ก ๆ เป็นเรื่องดี
    • น่าขำตรงที่วิธีนี้ก็เป็นเส้นทางที่ดีในการสร้างผลิตภัณฑ์จริงด้วย ถ้าคุณยอมรับการเติบโตได้
      3 ปีก่อนผมทำแอปง่าย ๆ ให้ครอบครัวกับเพื่อนแชร์สูตรอาหารกัน และค่อย ๆ เพิ่มฟีเจอร์ที่ถูกขอเข้ามา จนผ่านไปประมาณ 2 ปีมันเริ่มแพร่แบบปากต่อปาก
      เดือนตุลาคมมันโตถึงจุดที่ต้องเริ่มเก็บเงินผู้ใช้ใหม่เพื่อรับภาระค่าเซิร์ฟเวอร์ และตอนนี้ผมกำลังคิดถึงอนาคตที่อาจ ทำงานกับมันแบบเต็มเวลา
  • ขณะเดียวกันก็รู้สึกว่าช่องว่างระหว่างแอปแบบนี้กับแอปมืออาชีพกำลังกว้างขึ้น
    การใช้แอปง่ายขึ้นแล้ว แต่การสร้างแอป “จริงจัง” สำหรับคนทั่วไปกลับยากขึ้น
    ผมเขียนหนังสือ https://opinionatedlaunch.com มานานกว่า 3 ปี และต้องคอยอัปเดตบท “มือถือ” อยู่เรื่อย ๆ ไม่ใช่เพราะมีเฟรมเวิร์กใหม่เจ๋ง ๆ แต่เพราะ Apple กับ Google เพิ่ม ข้อกำหนด อยู่ตลอด
    อย่างข้อจำกัดการเข้าถึง GPS ที่เข้มงวดขึ้นอาจเป็นเรื่องดี แต่ถ้าไม่ตามให้ทัน สักวันแอปก็จะถูกถอดออกจากแพลตฟอร์ม ในความหมายนี้จึงไม่มีคำว่า “เสร็จสมบูรณ์”
    โปรแกรมเล็ก ๆ ที่เขียนด้วย Pascal ในปี 1990 อาจยังแจกจ่ายได้อยู่ แต่ผมไม่รู้ว่าสิ่งเทียบเท่าในโลกแอปมือถือคืออะไร พูดถึงการแจกจ่าย ไม่ใช่การรัน

    • ผมนึกวิธีแก้ไว้สองทาง: แจกผ่าน TestFlight แล้วไม่ปล่อยจริง หรือทำ แอป HTML ที่ทำงานได้ดีบนมือถือและแคชแบบออฟไลน์ได้
      ผมเอนเอียงไปทาง HTML มากขึ้นเรื่อย ๆ
    • ผมก็เคยเจอเอง นานมาแล้วผมทำแอป Android เพื่อใช้เอง และอีกเดือนสองเดือนต่อมาก็ทำเสร็จ
      ไม่มีอะไรต้องเปลี่ยน มันทำงานตรงตามที่ต้องการพอดี แต่ถึงจุดหนึ่ง Google ตัดสินว่ามันไม่เป็นไปตามมาตรฐานล่าสุด จึงต้องถอดออกจากสโตร์
      ไม่ได้บ่นนะ และยังติดตั้งผ่าน adb ได้อยู่ แต่คนอื่นดาวน์โหลดไม่ได้อีกแล้ว ตอนนี้ผมยังจะบิลด์ไบนารีได้ไหมก็น่าจะยาก
    • ความกังวลแบบนี้ทำให้ผมหันไปดู Nim
      ยังทำให้มันใช้งานได้จริงไม่ได้ แต่ภาพคือถ้าจำกัด UI ให้เรียบง่ายพอ ก็สามารถคอมไพล์โค้ดเดียวกันเป็น Objective C สำหรับ iStuff, C++ สำหรับ Android และเดสก์ท็อป, และ Javascript สำหรับเว็บได้
      แต่ละแอปสามารถประเมิน nimscript ใด ๆ ได้ในแบบที่ไม่ขึ้นกับแพลตฟอร์ม
      ผมลืมไปนานแล้วว่าแอปที่อยากทำคืออะไร แต่ถ้านึกขึ้นมาได้อีก ก็หวังว่าจะไม่มีใครมาห้ามไม่ให้มันรันได้ทุกที่
    • เห็นด้วยเต็มที่ว่า Android กับ Apple เป็น ระบบนิเวศแบบปิด ที่กฎเปลี่ยนไปเรื่อย ๆ
      แต่ก็คิดว่าซอฟต์แวร์ส่วนใหญ่คง “เสร็จสมบูรณ์” จริง ๆ ได้ยากเหมือนกัน
      ถ้าไม่ใช่หมวดหมู่ที่แยกขาดจากวัฒนธรรมมหาชนโดยสิ้นเชิง ก็คงเรียกว่าฟีเจอร์ครบถ้วนได้ยาก GNU units หรือ grep อาจเรียกว่า “เสร็จแล้ว” ได้ แต่แอปส่วนใหญ่ต้องเปลี่ยนตามโลกแวดล้อมที่เปลี่ยนไป
    • ขึ้นอยู่กับว่าผู้ใช้เป้าหมายคือใคร
      เครื่องมือระดับล้ำสุดในสาขาของผมล้วนใช้ผ่านสคริปต์หรือ บรรทัดคำสั่ง แบบโต้ตอบ
      ถ้าทำโดยตั้งเป้าอินเทอร์เฟซแบบนั้น จะเร็วและง่ายกว่าการทำ GUI ด้วยไลบรารียุคใหม่มาก และยังหาผู้ใช้ได้มากพอ แค่ผู้ใช้ conda ก็มีราว 40 ล้านคนแล้ว
  • บทความนี้ทำให้ความคิดของผมเกี่ยวกับ sideloading บน iPhone เปลี่ยนไป
    เมื่อก่อนผมอยู่ฝั่ง “ต้องล็อกไว้เพื่อไม่ให้คุณยายโดนแฮ็ก” แต่ตอนนี้มองว่ามันขัดขวางไม่ให้ผู้คนสร้างแอปแบบอาหารทำกินเองที่บ้านแบบนี้
    อีกทั้งยังแพร่ความเข้าใจว่าคอมพิวเตอร์คือเวทมนตร์ และมีแต่พ่อมดเท่านั้นที่ควรเขียนโปรแกรม ในบรรดานักพัฒนาซอฟต์แวร์ที่ผมเคยเจอ ไม่มีใครรู้สึกแบบนั้น และผมก็ไม่รู้สึกแบบนั้น

    • ค่าเริ่มต้นยังควรเป็นโหมดคุณยายอยู่ แต่คงดีถ้าสามารถเปิด sideloading ได้ผ่านพิธีเริ่มต้นที่ยุ่งยาก ซึ่งต้องผ่านแค่ครั้งเดียว
      กระบวนการนั้นควรเต็มไปด้วยคำเตือนทำนอง “จากนี้ไปมีมังกร” โดยพื้นฐานคือทำให้มันคล้าย Mac หรือ Chromebook ทั่วไปมากขึ้น
      โทรศัพท์ Pixel ยังอนุญาตให้รูทอยู่ไม่ใช่หรือ?
    • เหตุผลเดียวที่ล็อกไว้คือ ค่าธรรมเนียม 30% ของ App Store
      คุณยายมีโอกาสเสียเงินเก็บจากกลโกงวิศวกรรมสังคมแบบดั้งเดิมผ่านโทรศัพท์บ้านมากกว่าผ่านมือถือ
      ถ้า Apple ใส่ใจเรื่องความปลอดภัยและสแปมจริง ๆ มากกว่าการทำเงินจาก App Store หรือสถานการณ์การซ่อม ก็คงลงมือจัดการสแปม iMessage ไปแล้ว
    • ผมมองว่า “เบต้าภายนอก” ของ TestFlight เป็นเส้นทางที่ฉลาดจริง ๆ
      ถ้ามีทางที่ผมถูกปฏิบัติเหมือนบริษัทสำหรับกลุ่มเพื่อนและครอบครัวได้ ผมคงใช้ไปตั้งแต่หลายปีก่อนแล้ว แต่ TestFlight ใช้ง่ายมากและรองรับกลุ่มเป้าหมายใหญ่พอ ตอนนี้จึงแทบไม่มีอุปสรรค
      ยังมีอุปสรรคด้านค่าใช้จ่ายคือต้องซื้อ Mac แต่ถ้าคิดรวมภาษีที่ว่าต้องมี Mac อยู่แล้ว ก็ไม่ได้สูงขนาดนั้น
      เป็นความจริงที่คอมพิวเตอร์ถูกมองเหมือนเวทมนตร์ แต่การแจกจ่ายไม่ใช่สาเหตุ น่าเสียดายที่ผู้คนไม่อยากทำอะไรกับคอมพิวเตอร์ให้มากกว่านี้
      เมื่อก่อนพ่อแม่ผมใช้แอปฐานข้อมูลพื้นฐานมาก ๆ บนเครื่อง 386 แต่ถึงจุดหนึ่งเครื่องจักรก็ใหญ่ขึ้นและน่ากลัวขึ้น และผู้คนก็อยากรู้อยากเห็นน้อยลง
      อาจเป็นเพราะอายุ แต่ก็อาจเป็นเพราะเราสร้างเครื่องที่ไม่เป็นมิตรต่อการรับโค้ดใหม่ ๆ เท่าเดิม
    • ผมกลับคิดว่าถ้าอยากไม่ให้คุณยายถูกหลอก ก็ควรอนุญาตให้ sideloading
      มันเป็นแค่ปัญหาว่าใครเป็นคนหลอกเท่านั้น อาชญากรอาจปล้นได้ก้อนใหญ่ครั้งเดียว แต่บริษัทมือถือเคลื่อนไหวในแนวรบที่กว้างกว่ามาก และต้นทุนก็สูงกว่ามาก
  • คำอธิบาย ไอเดียแอป และวิธีลงมือในบทความนี้สดใหม่ดี
    แนวคิดการทำเพื่อ ตลาดรวมที่เข้าถึงได้ทั้งหมด (TAM) แค่หลักหน่วย เป็นความแตกต่างที่ดีเมื่อเทียบกับสิ่งส่วนใหญ่
    แอปแบบนี้อยู่เหนือโปรเจกต์เพื่อการเรียนรู้ขึ้นมาหนึ่งขั้น และมีประโยชน์มหาศาลต่อคนคนเดียวหรือคนไม่กี่คน ยิ่งไปกว่านั้น คนไม่กี่คนนั้นยังเป็นคนสำคัญที่สุดในชีวิต จึงน่าพึงพอใจกว่ามาก
    การเปรียบกับการทำอาหารที่บ้านให้ครอบครัวนั้นสมบูรณ์แบบ

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

    • เห็นด้วยอย่างมากว่าเว็บระดับโลกมันน่าเหนื่อย แต่เหมือนคุณจะตกหลุมพรางแบบ “อยากสร้างอะไรสักอย่าง แล้วจะสร้างอะไรได้บ้าง?”
      โดยพื้นฐานแล้วมันเป็นสภาพที่ มีแต่ตลาด แต่ยังไม่มีผลิตภัณฑ์ ดังนั้นนอกจากตัวคุณเองแล้ว มันอาจไม่ได้มีความหมายมากนัก
      แน่นอนว่าการเกาคันให้ตัวเอง หรือทำขึ้นมาเพราะอยากทำเฉย ๆ ก็เป็นเรื่องชอบธรรมโดยสมบูรณ์ และนั่นก็เป็นซอฟต์แวร์แบบอาหารทำเองที่บ้านเหมือนกัน
    • ผมกำลังพยายามดึงคนรู้จักให้มาใช้ Meshtastic ให้มากที่สุด
      ชอบตรงที่ฮาร์ดแวร์ราคา 25 ดอลลาร์ ไม่มีเซิร์ฟเวอร์กลาง ไม่ต้องมีใบอนุญาตวิทยุสมัครเล่น และควบคุมผ่านมือถือได้
      สักวันหนึ่งอยากทำโปรเจกต์ที่เจ๋งจริง ๆ มากกว่าแค่ฟังก์ชันพื้นฐาน แต่ตอนนี้ยังไม่รู้ว่าควรทำอะไร
  • ผมหัวเราะออกเสียงกับประโยคที่ว่า “จุดธูปแล้วโยนหิน จากนั้นเทพเจ้าแห่ง Xcode ก็อนุญาตให้ผ่าน”
    ผมเองก็เคยสู้ศึกกับเทพเจ้าเหล่านั้นมานับไม่ถ้วน และพวกเขาคือสัตว์ประหลาด

    • ผู้เขียน Robin Sloan เป็นนักเขียนที่เขียนนิยายหลายเล่ม เรื่องสั้นจำนวนมาก และจดหมายข่าวที่ยอดเยี่ยมซึ่งออกเกือบทุกเดือน
      ถ้าคุณชอบประโยคนั้น ขอแนะนำอย่างยิ่งให้อ่านนิยายเล่มแรกของเขา Mr Penumbra's 24 Hour Bookstore
    • เป็นบทความที่ดี แต่ส่วนนั้นทำให้เศร้าและโมโห
      เรามาถึงจุดที่ยอมรับสภาพแบบนี้ได้อย่างไร? MAGA(Microsoft Apple Google Amazon) กำลังทำให้ชีวิตการแชร์ซอฟต์แวร์อึดอัดจนหายใจไม่ออกแล้ว
    • ในการสัมภาษณ์งานหลายครั้ง ผมบอกว่ารู้เรื่องการเซ็นผลิตภัณฑ์ของ Apple เยอะมาก แต่ทั้งหมดเป็นความรู้ที่ไม่ได้อยากเรียนเลย
  • ในบริษัทมีแอปเล็ก ๆ สำหรับใช้ภายในอยู่ มันเป็นแค่ Rails app แยกต่างหาก และไม่แตะระบบธุรกิจภายใน
    แต่ถ้าต้องการที่วางโค้ดเล็ก ๆ ก็จะเอาไปใส่ไว้ตรงนั้น มีเครื่องมือเชื่อมต่อแบบสุ่ม ๆ เช่น กราฟการเติบโต เสิร์ชเอนจินเล็ก ๆ สำหรับข้อมูลภายใน สคริปต์แจ้งเตือนงานซ้ำ ๆ และสคริปต์ RSS→Email สำหรับบล็อก
    ผมคิดว่าทุกคนควรมีแอป “สารพัดของจิปาถะ” ที่แยกจากข้อมูลลูกค้าไว้สักตัว
    ถ้าอุปสรรคในการสร้างอะไรสนุก ๆ ต่ำ ใจก็จะรู้สึกเป็นอิสระขึ้น และโค้ดทุกชิ้นไม่จำเป็นต้องเป็นงานธุรกิจที่มีความเสี่ยงสูง

    • กำลังเรียน RoR อยู่ เลยสงสัยว่าคุณ deploy สิ่งนี้อย่างไร เป็นเว็บแอปหรือเปล่า?