1 คะแนน โดย GN⁺ 3 시간 전 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • Ratty เป็นเทอร์มินัลอีมูเลเตอร์ที่เรนเดอร์ด้วย GPU และรองรับกราฟิก 3D แบบอินไลน์
  • มาพร้อมกับเคอร์เซอร์รูปหนูกำลังหมุน
  • สามารถอ่านบทความบล็อกได้บนเว็บไซต์
  • สามารถไปที่ดาวน์โหลด Rattyได้บนเว็บไซต์
  • สามารถไปที่ดูซอร์สได้บนเว็บไซต์

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

 
GN⁺ 2 시간 전
ความเห็นจาก Hacker News
  • มีบางคนพูดถึงการใช้งานกับ VR ที่นี่ เลยนึกขึ้นได้ว่าเมื่อก่อนเคยลองทำ UI 3D แบบตื้น สำหรับพัฒนาซอฟต์แวร์อยู่บ้าง
    มันเป็นความลึกตื้น ๆ แค่ไม่กี่เซนติเมตรเข้าไปจากหน้าจอแล็ปท็อป เพื่อให้ใช้ได้ทั้งวันโดยล้าตาน้อยจาก VAC และให้ความรู้สึกใกล้เคียงกับการวาดโดยเพิ่มสีและเลเยอร์ใน 3D มากกว่าการเหวี่ยงแขนไปมาในห้อง
    3D ทำได้ด้วย wobble 3D, มุมมองจากการติดตามศีรษะ/ดวงตาด้วยเว็บแคม, stereo แบบแว่นชัตเตอร์, XR HMD ฯลฯ วิธี wobble ทำได้ง่ายสุดแต่ดูน่ารักและค่อนข้างรบกวนสายตา ส่วนการใช้มุมมองจะละเอียดอ่อนกว่าและกวนใจน้อยกว่า
    stereo pair ของแอปอาจทำได้แบบ “มีหน้าต่างตาซ้าย/ตาขวาสองบาน” หรือ “สลับแสดงมุมมองซ้ายขวาพร้อม labeling/synchronization/polling” ซึ่งหลายอย่างในนี้ต้องพึ่งการรองรับจากระบบหน้าต่าง/window manager/เดสก์ท็อป ผมได้แรงส่งเยอะทีเดียวจากการซ้อน Electron กับ X
    การดันข้อความให้ออกมาเป็น 3D สนุกกว่าการใส่สี และถ้ายอมรับหน้าตาที่ดูรกขึ้นได้ ก็ยังใส่เลเยอร์ข้อมูลเสริมที่แยกด้วยความลึกได้ด้วย ถ้า Emacs มีความลึกระดับตัวอักษร มันก็จะมีบางอย่างที่แม้แต่ LispM ก็ยังไม่มี
    แต่เวลาจะสำรวจความเป็นไปได้กับสิ่งที่โดยเนื้อแท้ไม่ใช่ 3D อย่างข้อความโค้ด การทำ prototype UX ด้วยสีพื้นหน้า/พื้นหลัง, ฟอนต์, Unicode, แอนิเมชัน จะง่ายกว่ามาก และถ้าเป็นเบราว์เซอร์ก็ใช้ div ซ้อนกันกับแคนวาส 2D/3D โปร่งใสได้

    • ผมมี ระบบเรนเดอร์ข้อความแบบใช้ glyph 3D ที่ใช้งานได้ครบจริง ๆ อยู่ระบบหนึ่ง แต่ทำให้คนสนใจมาดูยากมาก
      ทุกตัวอักษรคือ quad ที่ถูกวางไว้ใน 3D และเรนเดอร์แบบ instance เลยรองรับได้เป็นหลายสิบล้านตัวขึ้นไป แต่ละตัวอักษรถูกอ้างอิงและแก้ไขแยกกันได้เหมือนเป็น polygon คนละชิ้น
      ตอนนี้ผมใช้มันเรนเดอร์ทั้ง GitHub repository พร้อมกันในครั้งเดียว และมีทั้งเวอร์ชัน native บน Apple กับเวอร์ชันเว็บ เวอร์ชันเว็บมีองค์ประกอบพื้นฐานของ IDE อยู่แล้ว และอยากฟังมุมมองหรือข้อคิดเห็นจากคนอื่น
      https://ivanlugo.dev/ide
  • UNIX ดูเหมือนว่ายังพยายามไล่ตาม Xerox workstation หรือ Lisp machine ทั่วไปอยู่เลยในแง่ประสบการณ์ REPL
    ในปี 1981 ก็มี inline graphics แล้ว
    https://youtu.be/o4-YnLpLgtk?t=376

    • บางทีก็รู้สึกเหมือนเรายังไล่ตาม UX ที่ถูกแก้ไปแล้วตั้งแต่ Mother of all Demos ในปี 1968
      สำหรับคนที่ยังไม่เคยดู: https://www.youtube.com/watch?v=yJDv-zdhzMY
    • นั่นไม่ใช่ 3D
    • หรือจะบอกว่า TempleOS ก็มีเหมือนกัน
  • ผมชอบอันนี้นะ ไม่มีเหตุผลเลยว่าทำไมเทอร์มินัลต้องรองรับแค่ข้อความ
    โน้ตบุ๊กด้าน data science แสดงให้เห็นหนึ่งในทิศทางที่เทอร์มินัลอาจพัฒนาต่อไปได้ และมีอะไรน่าสนใจเกิดขึ้นในพื้นที่นี้เยอะมาก Kitty น่าจะเป็นผู้เล่นที่ผลักนวัตกรรมแรงที่สุดในตอนนี้ [1]
    แต่ผมก็ยังไม่แน่ใจว่ามีวิสัยทัศน์ภาพรวมที่ชัดเจนหรือเปล่า
    [1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/

    • จริง ๆ ก็ไม่จำเป็นต้องวิวัฒน์อะไรเลย ถ้าใช้โปรเจกต์ของผม euporie [1] คุณก็ใช้โน้ตบุ๊กด้าน data science ทั้งหมดในเทอร์มินัลได้อยู่แล้ว พร้อมเอาต์พุตเป็นภาพกราฟิก, HTML, LaTeX ฯลฯ
      [1] https://github.com/joouha/euporie
    • pyvista เคยทำสำเร็จแล้วในการใช้กราฟิกของ Kitty เพื่อ เรนเดอร์วัตถุ 3D แบบกำหนดเองลงในเทอร์มินัลโดยตรง
      มันเป็นการแฮ็กครั้งใหญ่ และแทบไม่มีทางอื่นให้ได้ประสิทธิภาพนอกจากใช้ shm
      https://git.theresno.cloud/panki/kglobe
    • Terry A Davis ทำแบบนี้ไปแล้ว ตอนนั้นมันก็บ้าพอ ๆ กับตอนนี้นี่แหละ
    • ถ้าเอากราฟิก 3D แบบนี้ไปผสมกับโน้ตบุ๊กด้าน data science, local LLM, integrated coding harness, และการมองเห็นข้อมูลส่วนตัวของตัวเอง อาจได้อะไรที่ยอดเยี่ยมแบบเกินจริงออกมาเลยก็ได้
      มันอาจไปไกลกว่า “haiku+macOS mashup” ที่ผมเคยนึกภาพไว้ว่าเป็นอนาคตการคอมพิวต์ในอุดมคติด้วยซ้ำ
    • สงสัยว่าแบบนี้จะใช้กับ thumbnail ในเทอร์มินัลได้ไหม
      ปกติผมชอบสำรวจ filesystem จากเทอร์มินัลมากกว่าคลิกใช้ file manager ถ้ามี ls แบบตารางที่แสดงโมเดล 3D ในไดเรกทอรี (STL/STEP, 3D printing) ด้วยการเรนเดอร์ผ่านเทอร์มินัลก็น่าจะมีประโยชน์มาก
      ถ้าพรีวิวโมเดลแล้วหมุนดูได้ด้วยก็ยิ่งดี
  • ยังนึกไม่ออกว่าจะเอาไปใช้ตรงไหน แต่เอฟเฟกต์ภาพมันสนุกดี และผมก็ชอบ ดีไซน์แนว brutalism ของเว็บไซต์ด้วย มันทำให้นึกถึงความทรงจำดี ๆ ในอดีต

  • อันนี้ดูดีมากเลยนะ?
    มีคำถามหน่อย จากความสามารถในการเรนเดอร์ ดูเหมือนว่า 2D ก็น่าจะทำได้ดี ใช่ไหม หรือผมเข้าใจผิด? วิธีแก้ปัญหาที่มีอยู่ตอนนี้สำหรับการได้ภาพ 2D คุณภาพสูงหรือการ rasterize ในเทอร์มินัล ส่วนใหญ่ยังไม่ค่อยดีนัก เลยสงสัยว่าอันนี้จะดีกว่าวิธีอื่นหรือเปล่า หรือสุดท้ายก็ไปติดข้อจำกัดพื้นฐานอะไรบางอย่าง
    แล้วถ้าใช้ GPU acceleration เวลาผ่าน ssh จะเป็นยังไงด้วย

    • Kitty graphics protocol ค่อนข้างดี และ Ghostty ก็ implement มันครบถ้วน
    • ตอนนี้ก็มี terminal emulator ที่ใช้ GPU อยู่หลายตัวแล้ว คุณกำลังมองหาอะไรประมาณนั้นหรือเปล่า?
  • เทอร์มินัลกำลังค่อย ๆ กลายเป็น เว็บเบราว์เซอร์แบบฟูลฟีเจอร์

    • เดี๋ยวก็คงมีมีม “มันเป็นแบบนั้นมาตลอด” โผล่มา ถ้าจะพูดจริงจังกว่านั้น จุดประสงค์ของเครื่องมือก็คือช่วยให้งานเสร็จ และสุดท้ายคำถามก็คือคุณทำให้เครื่องมือนี้มีประโยชน์ได้หรือไม่
      พูดตามตรง ตอนนี้ผมก็ยังไม่รู้ แต่ตั้งใจว่าจะลองดูเองเร็ว ๆ นี้ :D
    • แต่นี่แหละสิ่งที่คุณต้องการไม่ใช่เหรอ…
      https://github.com/fathyb/carbonyl
    • หรือจริง ๆ เทอร์มินัลอาจเป็นเว็บเบราว์เซอร์แบบฟูลฟีเจอร์อยู่แล้วก็ได้
      https://hyper.is/
    • ดูเหมือนจะเป็นแบบนั้นจริง ๆ
  • ขอร่วมไว้อาลัยให้ Terry ขออย่าให้เขาถูกลืมไปเลย
    และพูดเพิ่มเติมอีกนิดว่า พอดูโปรเจกต์นี้แล้วก็รู้สึกเหมือนจิตวิญญาณของเขายังมีชีวิตอยู่ต่อไป :D

  • เห็นอันนี้แล้วนึกถึงตอน compiz ออกมาใหม่ ๆ ที่ทุกคนพูดว่า “หน้าต่างของฉันอยู่บนลูกบาศก์” หรือ “ฉันต้องมี หน้าต่างเด้งดึ๋ง
    เพราะงั้นผมก็เลยทำตัวสมกับเป็นคนแบบนั้นด้วยการติดตั้งมันทันที

    • บน KDE Plasma ตอนนี้ก็ยังใช้ได้อยู่นะ ผมเปิดหน้าต่างเด้งดึ๋งไว้เพราะมันเท่ดี
    • คิดถึงช่วงเวลาดี ๆ เหล่านั้น ตอนนั้นผมมี Windows XP ที่รันผ่าน VirtualBox อยู่บนด้านหนึ่งของ compiz cube โดยเฉพาะ
      การสลับไปมาระหว่าง Windows กับ Ubuntu พร้อมเอฟเฟกต์แอนิเมชันสารพัดของ compiz มันให้ความรู้สึกเหมือนเวทมนตร์เลย
  • จากบล็อกโพสต์ที่ลิงก์ไว้ ผมเพิ่งไปรู้จัก glyph protocol [1] ที่เพิ่งถูกเสนอขึ้นมาใหม่ ซึ่งน่าสนใจมาก
    เมื่อราว 6 เดือนก่อนผมยังบ่นอยู่เลยว่าไม่มีอะไรแบบนี้ [2]
    [1] https://rapha.land/introducing-glyph-protocol-for-terminals/
    [2] https://news.ycombinator.com/item?id=45805072

    • เห็นด้วยเลย glyph คือหัวใจสำคัญ
      https://github.com/tikimcfee/glyph3d-js
    • เป็นไอเดียที่ดีนะ ต่างจากหลายโปรเจกต์เทอร์มินัลที่เห็นช่วงหลัง มันจัดการปัญหาได้โดยไม่ต้องนิยามใหม่หมดว่าเทอร์มินัลควรทำอะไรได้บ้าง
  • มันทำได้ในระดับหนึ่งอยู่แล้วผ่าน Kitty graphics protocol ผมเคยทำเดโม เรนเดอร์กราฟิก 3D บน Kitty ไว้ [1]
    ส่วนที่สำคัญแต่ยังขาดอยู่จริง ๆ คือ vsync ซึ่งดูเหมือน ratty ก็ยังไม่มีเหมือนกัน
    ถ้าการเรนเดอร์ไม่ถูกซิงก์ เทอร์มินัลอีมูเลเตอร์อาจไปอ่าน framebuffer ระหว่างที่แอปพลิเคชันกำลังเขียนอยู่ ทำให้เกิด visual artifact ได้
    [1] https://x.com/zack_overflow/status/2035921425341763756?s=20

 
GN⁺ 3 시간 전
ความเห็นจาก Lobste.rs
  • หน้าแลนดิงเพจมีกลิ่น LLM เลยไปอ่านโพสต์บล็อกดู แล้วก็เป็นอย่างที่คิดจริง ๆ

    🐁: "งานนี้มี AI เข้ามาเกี่ยวข้องมากแค่ไหน?"

    ถ้าอยากรู้จุดยืนของผมเกี่ยวกับการเขียนโปรแกรมแบบมี AI ช่วย โปรดดูโพสต์บล็อกนี้
    พูดสั้น ๆ คือมีส่วนอยู่บ้าง แต่ก็ไม่ได้มากถึงขั้นจะมองได้ว่าเป็นอะไรที่ผม "ทำแบบขอไปที"
    ก็ดีนะ แต่คำตอบนี้ก็ไม่ได้แก้ปัญหาเรื่องที่ generative AI มักจะ ลอกเลียนงานเดิมโดยไม่อ้างอิงแหล่งที่มา หรือประเด็นจริยธรรมอื่น ๆ

    • ผมว่าควรใช้แท็กนี้กับการถกเรื่อง vibe coding มากกว่าจะใช้กับการมีหรือไม่มี AI
      ถ้าจะติดแท็กกับการใช้งาน AI เอง ก็คงต้องติดให้กับโปรเจ็กต์ 90% เลย และบทสนทนาก็จะหลุดออกจากตัวผลงานไปด้วย ไม่อยากให้เธรดเกี่ยวกับเทอร์มินัลอีมูเลเตอร์ที่แสดงหนู 3D ซึ่งมีคนคนเดียวแฮ็กทำขึ้นมา ไหลกลายเป็นการถกเถียงด้านจริยธรรม
    • งั้นควรใส่เครดิตให้ Terry Davis (Temple OS) กับ Jeff Reeder, Jim Bergman, Mark Hayton(RIPscript) ในฐานะแหล่งที่มาของไอเดียด้วยหรือ?
    • ตอนแรกผมคิดว่า “เจ๋งดีนะ ดูเหมือนจะมีการแข่งขันแบบเป็นมิตรเกิดขึ้น” แต่ยิ่งขุดลึกลงไป รอยยิ้มก็ยิ่งกลายเป็นความผิดหวัง
      ผมเองก็ใส่3D เล็กน้อยเพื่อสร้างเอฟเฟกต์ว้าวเร็ว ๆ เหมือนกัน แต่ผมคิดว่าเป้าหมายควรเป็นการทบทวนพื้นฐานใหม่อย่างรอบคอบ แม้ว่าการทดลองของผมจะล้มเหลว อย่างน้อยผมก็ภูมิใจที่ได้สร้างผลิตภัณฑ์จากมุมมองแบบมนุษย์ เพื่อมนุษย์
      แน่นอนว่าถ้าพวกเขาทำสิ่งนี้เพราะสนุกจริง ๆ มันก็ไม่ได้มีปัญหาอะไรในตัวมันเอง
    • อยากรู้ว่าตรงไหนของหน้าแลนดิงเพจที่ทำให้รู้สึกว่าเป็น กลิ่น LLM เพราะในสายตาผม ถ้าไม่นับพื้นหลังสีดำ มันก็ดูแทบไม่ต่างจากหน้าแลนดิงเพจที่เห็นกันมาตลอด 5-10 ปีที่ผ่านมา
  • อ่านกี่รอบก็ยังสับสนมากอยู่ดี
    ด้านหนึ่งพอเห็น sixel หรือ kitty ก็ยังนึกว่า “ทำไปทำไม?” อยู่เรื่อย ๆ การเอากราฟิกมาใส่ในอินเทอร์เฟซที่โดยพื้นฐานแล้วเน้นข้อความมันก็ดูเท่ดี แต่ไม่ค่อยเห็นว่าจะใช้งานจริงได้แค่ไหน แน่นอนว่าจะแย้งแบบเดียวกันกับ curses หรือ slang ก็ได้
    แต่อีกด้านหนึ่งก็อดสงสัยไม่ได้ว่าจะมีทางยัด โปรโตคอล/การแสดงผลการเรนเดอร์ 3D เข้าไปใน Emacs ได้ไหม ยังไม่รู้เลยว่าจะเอาไปทำอะไร แต่คิดว่าคงเจ๋งมากแบบโปรเจ็กต์นี้

    • คำตอบของคำถาม “ทำไม?” ก็คือ เพราะมันสนุก
      เมื่อก่อนเราสร้างโปรแกรมกันเพราะมันสนุก จำกันไม่ได้แล้วหรือ?
    • https://codeberg.org/akib/emacs-eagle ?
    • แน่นอนว่าจะแย้งแบบเดียวกันกับ curses หรือ slang ก็ได้
      เคยมีบน lobste.rs มาก่อนแล้ว :p

  • ผมใช้เวลาช่วงเย็นครึ่งวันทำให้ Haskell CAD framework ของผมสามารถส่งออกวัตถุในรูปแบบที่ Ratty อ่านได้
    เมื่อเทียบกับเวลาที่ลงไป มันดูมีแววพอสมควร แต่ก็อยากให้คำสั่ง “จัดวางวัตถุ” ปรับแต่งได้มากกว่านี้หน่อย อยากให้มันจัดการสร้างพื้นที่ใน REPL output และปรับขนาดวัตถุได้ด้วยตัวเอง
    อีกอย่าง Ratty ดูจะโหลด ไฟล์นอกโฟลเดอร์ assets ไม่ได้ ซึ่งค่อนข้างน่าเสียดาย การเลื่อนหน้าจอก็ดูเหมือนจะพังนิดหน่อย เพราะผมเห็นวัตถุหายไปบ่อยทั้งที่ยังไม่น่าจะถึงเวลาหาย แต่อาจเป็นเพราะผมทำอะไรผิดเองก็ได้