1 คะแนน โดย GN⁺ 2024-05-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Decker คือแพลตฟอร์มมัลติมีเดียสำหรับสร้างและแชร์งานที่รวมเสียง รูปภาพ ไฮเปอร์เท็กซ์ และพฤติกรรมที่สคริปต์กำหนดไว้ไว้ในเอกสารเดียว โดยทดลองใช้งานได้ทันทีในเบราว์เซอร์
  • ยังคงอารมณ์ด้านภาพของ HyperCard และ classic MacOS ไว้ พร้อมเพิ่ม ประวัติการเลิกทำแบบลึก, การรองรับล้อเลื่อนเมาส์และหน้าจอสัมผัส, การนำทางด้วยคีย์บอร์ดแบบสมัยใหม่ และการแก้ไขแบบเป็นชุด
  • สามารถสร้างงานอย่าง E-Zine, โน้ต, สไลด์นำเสนอ, เกมผจญภัย และ พิกเซลอาร์ต 1 บิต ได้ และ deck ที่ทำเสร็จแล้วสามารถบันทึกเป็นเอกสาร .html แบบ standalone ได้
  • โปรเจกต์ที่ซับซ้อนขยายได้ด้วย Lil ซึ่งได้รับอิทธิพลจาก Lua และ Q ส่วนวิดเจ็ต การแชร์ผ่านคลิปบอร์ด และรูปแบบเอกสารแบบข้อความช่วยให้ใช้ซ้ำและจัดการเวอร์ชันได้ง่ายขึ้น
  • เป็นเครื่องมือ โอเพนซอร์สฟรีภายใต้ไลเซนส์ MIT ที่ไม่มีโฆษณา เทเลเมทรี เกมมิฟิเคชัน หรือการผสานกับ slop-generator พร้อมเผยแพร่ซอร์สบน GitHub และไบนารีบน Itch.io

การสร้างเอกสารโต้ตอบได้ในอารมณ์แบบ HyperCard

  • Decker คือแพลตฟอร์มมัลติมีเดียสำหรับสร้างและแชร์เอกสารโต้ตอบได้ที่มีเสียง รูปภาพ ไฮเปอร์เท็กซ์ และพฤติกรรมจากสคริปต์
  • สามารถทดลองใช้งานได้ทันทีในเว็บเบราว์เซอร์
  • สืบทอดสุนทรียภาพด้านภาพของ HyperCard และ classic MacOS พร้อมคงความเรียบง่ายและความเรียนรู้ง่ายที่ HyperCard เคยมี
  • การปรับปรุงด้านการใช้งานเน้นการรักษาอารมณ์ของเครื่องมือสร้างงานแบบการ์ดในยุคเก่าไว้ ขณะเดียวกันก็ปรับให้เข้ากับสภาพแวดล้อมการป้อนข้อมูลสมัยใหม่
    • ประวัติการเลิกทำแบบลึก

      • รองรับล้อเลื่อนเมาส์และหน้าจอสัมผัส
      • การนำทางด้วยคีย์บอร์ดที่ทันสมัยขึ้น
      • งานแก้ไขแบบเป็นชุด
      • ตัวอย่างสิ่งที่สร้างได้มีหลากหลาย
      • E-Zine
      • การจัดระเบียบโน้ต
      • สไลด์นำเสนอ
      • เกมผจญภัย
      • ภาพวาดเล่น พิกเซลอาร์ต 1 บิต
      • deck ที่ทำเสร็จแล้วสามารถบันทึกเป็นเอกสาร .html แบบ standalone ที่ทำงานได้เองในเว็บเบราว์เซอร์ และแชร์ได้ทุกที่ที่โฮสต์หรือฝังเว็บเพจได้
      • Decker ยังรันแบบเนทีฟบน MacOS, Windows, BSD และ Linux ได้ด้วย

Lil, วิดเจ็ต และเวิร์กโฟลว์การพัฒนาบนข้อความ

  • สำหรับโปรเจกต์ที่ซับซ้อน สามารถใช้ภาษาสคริปต์ชื่อ Lil ได้
    • Lil ได้รับอิทธิพลจาก Lua ภาษาเชิงคำสั่งที่ฝังในเครื่องมือและเกมเอนจิน
    • ยังได้รับอิทธิพลจาก Q ภาษาฟังก์ชันตระกูล APL ที่ใช้ร่วมกับฐานข้อมูลอนุกรมเวลา
    • คงโครงสร้างที่ผู้มีประสบการณ์เขียนโปรแกรมอยู่แล้วจะคุ้นเคย พร้อมมีเลขคณิตสเกลาร์-เวกเตอร์แบบนัย และภาษา query ในตัวที่คล้าย SQL
  • ในการสร้างอินเทอร์เฟซ สามารถใช้ชุด วิดเจ็ตโต้ตอบได้ ที่มีในตัว และยังนิยามวิดเจ็ตใหม่ได้
    • วิดเจ็ตแบบกำหนดเองและนิยามต่าง ๆ สามารถคัดลอกและวางผ่านคลิปบอร์ดของระบบได้
    • หากเป็นที่ที่แชร์หรือบันทึกข้อความได้ ก็สามารถแชร์วิดเจ็ตแบบกำหนดเองได้เช่นกัน
    • deck แต่ละชุดใช้เป็นคอลเลกชันชิ้นส่วนที่นำกลับมาใช้ซ้ำในโปรเจกต์อื่นได้
  • หาก build จากซอร์ส จะมาพร้อม Lilt ซึ่งเป็นอินเทอร์พรีเตอร์ Lil แบบ standalone
    • Lilt สามารถอ่าน เขียน จัดการ และรันเอกสาร Decker แบบ headless ได้
    • มี dependency น้อยกว่า Decker จึงสามารถคอมไพล์เป็นไฟล์ปฏิบัติการ APEแบบข้ามแพลตฟอร์มได้
    • ยังมีอินเทอร์พรีเตอร์ Lil ที่รันบน POSIX AWK ด้วย
  • deck ถูกจัดเก็บในรูปแบบข้อความแบบรายบรรทัด จึงทำงานร่วมกับเครื่องมือจัดการซอร์สเดิม ๆ เช่น Git และ SVN ได้ดี
  • Decker ไม่มีโฆษณา เทเลเมทรี เกมมิฟิเคชัน การผสานกับ slop-generator หรือองค์ประกอบที่ละเมิดความเป็นส่วนตัวและอำนาจควบคุมตนเองของผู้ใช้

ตัวอย่าง deck และไลบรารีส่วนขยาย

ซอร์ส การจัดจำหน่าย และชุมชน

  • ซอร์สโค้ดที่เรียกดูได้และบั๊กแทร็กเกอร์อยู่บน GitHub
  • Decker เป็นโอเพนซอร์สฟรีภายใต้ ไลเซนส์ MIT
  • สามารถดาวน์โหลดไบนารีที่ออกเป็นระยะสำหรับ MacOS และ Windows ได้จาก Itch.io
  • หน้า Itch มีฟอรัมชุมชนสำหรับพูดคุยเกี่ยวกับ Decker และแชร์โปรเจกต์ที่สร้างด้วย Decker
  • “Game Jams” ธีม Decker จัดขึ้นทุกปีในเดือนกรกฎาคมและธันวาคม โดยกิจกรรมครั้งถัดไปคือ Decker Fantasy Camp, July 2026

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

 
GN⁺ 2024-05-09
ความคิดเห็นจาก Hacker News
  • สวยงามมาก! รู้ว่ามีสุนทรียะที่งานนี้พยายามยึดไว้ แต่ถ้าขยับจาก กราฟิก 1 บิต ไปอีกนิดเป็น กราฟิก 2 บิต ก็น่าจะทำให้มีรูปภาพที่อ่านดูได้จริง ๆ ด้วย
    มีเว็บที่ผมชอบซึ่งมีสุนทรียะแบบคล้ายกัน โดยรูปทั้งหมดในเว็บนั้นใช้สีไม่เกิน 6 สี เพียงแต่พาเล็ตต์จะแตกต่างกันไปในแต่ละภาพ: https://solar.lowtechmagazine.com/

    • UI ของ Decker ส่วนใหญ่เป็นขาวดำ แต่จริง ๆ แล้วใช้ พาเล็ตต์ 16 สี ที่ผู้ใช้ปรับแต่งได้
      ในฟอรัมชุมชน[0] มีการคุยกันเรื่อง dithering และการนำเข้าภาพถ่ายสี และผู้ใช้ก็ทำโปรเจกต์[1] ที่ค่อนข้างเจ๋งโดยใช้สีด้วย
      [0]: https://itch.io/t/2668739/16-color-dithered
      [1]: https://crowmorbid.itch.io/desker-deckmonth
  • อย่าลืมลองเล่นเองด้วย!
    https://www.beyondloom.com/decker/tour.html
    เห็นแล้วความทรงจำแสนหวานผุดขึ้นมาอย่างน่าประหลาด มีแค่ผมหรือเปล่า? ที่อยากได้ก็แค่ให้ บีบนิ้วเพื่อซูม บนมือถือได้เท่านั้นเอง

    • ด้วยเหตุผลบางอย่าง มันเหมือนใช้พื้นที่หน้าจอ iPhone แค่ประมาณ 20%
      เล็กเกินไปจนอ่านข้อความไม่ได้ และ บีบนิ้วเพื่อซูม ก็ถูกปิดไว้ เลยดูใกล้ ๆ ไม่ได้
    • อาจเป็นปัญหาของ Firefox หรือผมอาจใช้ไม่เป็นก็ได้ แต่พอกด New Card แล้วก็เห็นแต่หน้าจอว่าง ๆ ไม่มีวิธีพิมพ์หรือวาดอะไรเลย
  • ผมเคารพตัวเลือกของโปรเจกต์นี้นะ แต่รู้สึกว่าข้อบกพร่องใหญ่ที่สุดของ HyperCard คือ การไม่สามารถทำระบบสีได้ ตอนที่ Mac เริ่มยอมรับสีแล้ว
    ตอนอยู่มัธยม Mac ทุกเครื่องในโรงเรียนเป็นเครื่องสีหมดแล้ว แต่ HyperCard ก็ไม่เคยมีสีแบบเนทีฟจริง ๆ เข้ามาสักที

    • ความทรงจำของผมก็ประมาณนั้นเหมือนกัน HyperCard ฮิตมาก โดยเฉพาะในฐานะเครื่องมือแนะนำการเขียนโปรแกรมให้เด็ก ๆ แต่พอ Mac ตระกูล Quadra มาพร้อมสี ทุกคนก็อยากได้สี
      HyperCard ไม่เคยได้อัปเดตสีแบบเนทีฟ และนั่นคือฟีเจอร์ที่ทุกคนอยากได้ที่สุด
      มีเครื่องมือที่เป็นผลิตภัณฑ์เกี่ยวข้องกัน น่าจะชื่อ SuperCard ที่ให้ใช้สีได้ ผมเคยลองแล้วแต่รู้สึกเทอะทะ จำเหตุผลแน่ชัดไม่ได้ แต่สุดท้ายก็ไม่ดัง
      API ที่จำกัดของ HyperTalk ก็เป็นปัญหาเหมือนกัน มีตลาดส่วนขยายอยู่ และนักพัฒนาบางรายก็ครองพื้นที่นั้นอยู่ช่วงหนึ่ง สงสัยว่า J5erson เป็นอย่างไรบ้าง เขาเก่งจริง ๆ
      ส่วนขยายมักเขียนด้วย Pascal และเพิ่มความสามารถให้ HyperTalk ได้มากมาย จึงเป็นบันไดขั้นดีสำหรับคนที่อยากสำรวจการเขียนโปรแกรมต่อไปเกินกว่า HyperCard
      Decker ดูเหมือนนำข้อดีหลายอย่างของ HyperCard มาใช้ เช่น ความเรียบง่ายและการพกพาข้ามแพลตฟอร์ม แต่เสียดายนิดหน่อยที่ไม่ได้ใช้ภาษาที่ใกล้กับ HyperTalk มากกว่านี้ ภาษานั้นดีมากในแบบของมันเองจริง ๆ
  • Decker ส่วนใหญ่เป็น 1 บิต เลยดูเผิน ๆ คล้าย HyperCard แต่จริง ๆ แล้วต่างกันมากพอที่จะต้องเรียนใหม่ทั้งหมด
    ใช้ค่อนข้างยาก ต้องเรียน Lil ซึ่งเป็นภาษาใหม่และมีเอกลักษณ์ และขาดฟีเจอร์อำนวยความสะดวกหลายอย่างที่คนจะมองหาเมื่อคาดหวัง HyperCard หรือ MacPaint
    สุดท้ายศิลปิน HyperCard จึงย้ายมาได้ยาก และด้วย Infinite Mac ก็ยังใช้ HyperCard ต่อในเบราว์เซอร์ได้อยู่ ใกล้กันมากแต่ก็ไกล คล้ายแต่ไม่เหมือน

    • ถ้าภาษาเป็นเรื่องสำคัญที่สุด https://livecode.com/ มี ภาษาที่คล้าย HyperTalk มาก และรันบนฮาร์ดแวร์สมัยใหม่ได้ด้วย
    • แม้จะไม่ใช่แบบเดิมเป๊ะ ๆ แต่ HyperCard บนเบราว์เซอร์ใช้ได้ที่ https://hypercardsimulator.com
  • ที่โรงเรียนมี เลเซอร์ดิสก์ของ NASA ที่อัดแน่นด้วยข้อมูลเกี่ยวกับกระสวยอวกาศ
    มันเชื่อมกับ Mac ที่รัน HyperCard เพื่อใช้ในการนำทางและแสดงข้อมูล ค่อนข้างเจ๋งเลย แต่ตอนนั้นผมคงไม่ได้ซาบซึ้งกับมันมากเท่าที่ควร

    • จำของพวกนั้นได้! ถึงจะไม่เคยเห็นอันนั้น แต่จำได้แน่ว่ามี HyperCard stack ที่เหมือนฐานข้อมูลขนาดย่อมของสิ่งเจ๋ง ๆ พร้อมรูปภาพกระจายอยู่
      ให้ความรู้สึกเหมือนมัลติมีเดียยุคแรก ก่อนบูมมัลติมีเดียในยุค 90 :-)
  • ไม่เข้าใจว่าทำไม Apple หรือ Microsoft ถึงไม่ตั้งใจทำเครื่องมือแบบนี้สำหรับ นักพัฒนาแบบแคชชวล ในระบบปฏิบัติการให้มากกว่านี้
    VB กับ Python ก็ดี แต่บางครั้งเราต้องการเครื่องมือที่ออกแบบมาเพื่อสร้างแอปพลิเคชันเล็ก ๆ จริง ๆ

    • Apple ก็มี Swift Playgrounds อยู่
      และ SwiftUI ก็ถือว่าง่ายเท่าที่จะเป็นไปได้
      แต่ถ้าต้องใช้ Xcode และตั้งค่า App Store ก็ยังต้องเจอกับการตั้งค่าที่เข้าใจยาก และต้องมีความเข้าใจ IDE ของ Xcode อยู่พอสมควร :-)
  • มีความรักต่อ HyperCard มากจริง ๆ
    ผมไม่ได้มีประสบการณ์ตรงกับมัน แต่ดูเหมือนว่ามันช่วยให้ผู้คนสร้างเครื่องมือเล็ก ๆ ที่มีประโยชน์ได้มากมาย ในแง่ความอเนกประสงค์ก็คล้ายสเปรดชีต แต่ความรู้สึกในการใช้งานต่างกัน
    อยากรู้ว่าสำหรับคนที่ผ่านยุคนั้นมา เครื่องมือสมัยใหม่ตัวไหนให้ความรู้สึกแบบนั้นบ้าง
    ผมเป็นคนรุ่นที่อายุน้อยกว่านิดหน่อย เลยรู้สึกคิดถึงเครื่องมืออย่าง Delphi/VB หรือ Macromedia Flash มันไม่ได้สมบูรณ์แบบ แต่กระตุ้นความคิดสร้างสรรค์ได้ดี
    เครื่องมือในปัจจุบันดีขึ้นมาก แต่รู้สึกเหมือนว่าเราสูญเสียอะไรบางอย่างไประหว่างทาง

    • Flash ค่อนข้างใกล้เคียง แต่สำหรับผู้ใช้ทั่วไปมันซับซ้อนและแพงเกินไป HyperCard ตอนแรกฟรี แต่ไม่ได้แถมมากับไลน์ Performa Mac
      HTML รับเอาหลายสิ่งที่ HyperCard เคยมีไป แต่เครื่องมือสร้างเว็บก็ไม่เคยง่ายได้เท่ามัน และยังไม่สามารถให้ฟีเจอร์หนึ่งของ HyperCard ได้ด้วย นั่นคือรูปลักษณ์และความรู้สึกของ UI ที่สอดคล้องกัน เรื่องนี้อาจเป็นได้ทั้งข้อดีและข้อเสีย แต่ผู้ใช้บางคนชอบตรงที่แค่เพิ่มปุ่มก่อนหน้า/ถัดไปสองปุ่มลงในหน้า ก็ทำเป็น flipbook ได้แล้ว
      มีคนที่เริ่มธุรกิจด้วยการรวบรวมสื่อการสอนเป็นสแต็ก HyperCard แล้วขายด้วย
      ภาษาโปรแกรม HyperTalk ไม่ได้ยอดเยี่ยม และเป็นภาษาประเภทที่พวกฮิปปี้ชอบ แต่ผู้ใช้ทั่วไปก็ยังงงกับมันพอ ๆ กับเวลาเห็น C หรือ Pascal
      ผมรู้สึกมาตลอดว่า Apple พยายามควบคุมสิ่งที่ทำกับมันได้มากเกินไป ซึ่งตรงข้ามกับสิ่งที่ผมคาดหวังจากภาษาโปรแกรมและเครื่องมือรอบ ๆ มัน
      ถ้าอยากรู้ว่ามันให้ความรู้สึกแบบไหน ลองเขียนโค้ดอะไรสักอย่างด้วย AppleScript ดูก็ได้
    • ผมก็เป็นคนละเจเนอเรชันเหมือนกัน และสงสัยว่า ความพิเศษของ HyperCard คืออะไร
      ยังจำ VB กับเครื่องมือของ Macromedia ได้ และรู้สึกว่าเครื่องมือสมัยนี้ใช้ยากกว่า
    • Flash เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสร้างอะไรบางอย่างอย่างรวดเร็วแล้วกระจายไปยังผู้ใช้จำนวนมาก และในแง่ที่มันทำงานบนเบราว์เซอร์และหลายแพลตฟอร์ม มันทำตามคำสัญญานั้นได้ดีกว่า HyperCard ในยุคนั้นเสียอีกในหลายด้าน
      แต่สิ่งที่น่าเสียดายคือมันสร้างช่องว่างใหญ่ระหว่างผู้สร้าง Flash กับผู้บริโภค Flash ถ้าเป็น tinkerer ที่มีแรงจูงใจก็อาจ decompile ไฟล์ .swf แล้วแก้ไขได้ แต่ก็ห่างไกลจากโมเดลของ HyperCard ที่ให้เครื่องมือแก้ไขแก่ผู้ใช้ทุกคน และทำให้ทุกสแต็กเป็นชุดชิ้นส่วนที่นำกลับมาใช้ใหม่ได้
      Decker สามารถ export เด็กแบบสแตนด์อโลนที่ “ล็อก” ไว้ซึ่งซ่อน editor ได้ แต่ขั้นตอนการเปิดใช้งานกลับนั้นเล็กน้อยมาก ผมเคยเห็นกรณีที่ออกแบบให้มัน “ปลดล็อก” ตัวเองเมื่อเล่นเกมจบด้วย ซึ่งคิดว่าเป็นรางวัลที่เท่มาก
    • ในเมื่อเป็นที่รักขนาดนั้น ก็สงสัยเหมือนกันว่าทำไม HyperCard ถึงหายไป และทำไมไม่มีสิ่งที่คล้ายกันเข้ามาแทนที่ได้
    • ถ้ามองเฉพาะแง่ที่ว่า “ช่วยให้สร้างเครื่องมือเล็ก ๆ ที่มีประโยชน์ได้มากมาย” สิ่งที่ใกล้เคียงที่สุดที่นึกออกตอนนี้คือเอนจิน “เกม” Godot: https://godotengine.org
      ในหลายแง่มันไม่ได้ตรงกับ HyperCard เป๊ะ ๆ แต่ในสามพื้นที่ที่เกี่ยวข้อง มันเป็นตัวเลือกที่แข็งแรงเป็นพิเศษ ขนาดดาวน์โหลดเริ่มต้นเล็ก (<100MB) เวลาโหลด/รันสั้น และรองรับโฟลว์การพัฒนาแบบวนซ้ำและแฮ็ก ๆ ที่เหมาะกับช่วงสำรวจเริ่มต้นเพื่อสร้าง “อะไรสักอย่างที่ทำงานได้” GDScript เหมาะกับเรื่องนี้มาก และด้วยสิ่งที่เพิ่มเข้ามาในช่วงหลังอย่าง gradual typing ความทนทานก็ยิ่งดีขึ้นเรื่อย ๆ
      วิธี deploy/ติดตั้งของ Godot ก็แข็งแกร่งมาก ในด้านนี้ผมมองว่ามันนำหน้า ecosystem อื่น ๆ[0] ไปหลายปีแสง แค่ดาวน์โหลด export template ของแพลตฟอร์มที่จะรองรับ หรือก็คือไบนารี executable ทั่วไปตามแพลตฟอร์ม แล้วแพ็กเกจโค้ดและทรัพยากรของแต่ละโปรเจกต์เพื่อ export ออกมาก็พอ[1]
      จุดที่ตอนนี้ Godot ยังขาดมากที่สุดอย่างน่าประหลาดใจเมื่อเทียบกับ HyperCard หรือ Visual Basic “ยุคคลาสสิก” คือ การสร้าง UI แบบลากแล้ววาง Godot มีระบบ UI ที่ค่อนข้างทรงพลัง แต่บางครั้งก็ไม่โปร่งใส และประสบการณ์ผู้ใช้ในการสร้าง UI ปัจจุบันทำให้ต้องตระหนักถึง node tree ของ scene มาก แทนที่จะเป็นการลาก widget จาก toolbar ไปวางบนหน้าต่าง
      ประสบการณ์ผู้ใช้นี้ดูเหมือนจะปรับปรุงได้ค่อนข้างง่ายด้วย Editor Plugin และสักวันผมอาจทำ prototype สำหรับโพรงกระต่ายนั้นก็ได้ :)
      มันไม่ใช่ทางออกที่สมบูรณ์แบบ แต่เวลาสร้างยูทิลิตีแบบ GUI ในยุคนี้ มันเป็นตัวเลือกเริ่มต้นของผมอย่างแน่นอน บางตัวในนั้นผมก็ทำจนเสร็จพอจะ “release” ได้จริง ๆ ด้วย :D
      [0] โดยเฉพาะ Python พังอย่างน่าเวทนาในจุดนี้
      [1] ยัง export เป็น WASM สำหรับเว็บได้ด้วย จึงทำการแจกจ่ายสองทางได้ คือให้คนลองใช้ยูทิลิตีเวอร์ชันเว็บก่อน แล้วถ้ามีประโยชน์พอก็ค่อยดาวน์โหลด executable สำหรับรันในเครื่อง
  • Decker ดีมากจริง ๆ และสนุกมาก
    ถ้ากำลังมองหา สคริปต์แบบ HyperTalk Wyldcard ก็น่าจะสนุกเช่นกัน
    https://github.com/defano/wyldcard

  • หลังจาก Decker ถูกพูดถึงในการถกเรื่องตัวแทน HyperCard เมื่อสัปดาห์ที่แล้ว ผมก็เริ่มขุดดูมัน
    ผมสงสัยเรื่องการแพ็กเกจ deck มาก ๆ ชอบวิธีแบบ Redbean ที่รวม Lua, SQLite และอื่น ๆ ไว้ในไฟล์เดียวทั้งหมด เปิดด้วยเครื่องมือ zip แล้วใส่โค้ด HTML กับ Lua เข้าไป จากนั้นแค่เปลี่ยนชื่อก็พร้อมแจกจ่าย
    เลยสงสัยว่า Decker กำลังพิจารณาวิธีแนว ๆ นั้นเพื่อทำให้การแจกจ่ายง่ายขึ้นหรือเปล่า