2 คะแนน โดย GN⁺ 2024-03-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Monodraw เป็นโปรแกรมแก้ไข ASCII art สำหรับ Mac ที่ทำให้สามารถวาดไดอะแกรม โฟลว์ชาร์ต และโครงสร้างข้อมูลเป็น ข้อความธรรมดา เพื่อให้อ่านได้โดยตรงภายในเอกสารทางเทคนิคและโค้ด
  • เนื่องจากผลลัพธ์เป็นข้อความ จึงคัดลอกและวางได้ง่าย และเมื่อจำเป็นก็สามารถสร้างเป็นรูปภาพได้ด้วย การส่งออก PNG·SVG
  • รองรับตั้งแต่ mind map, ER diagram ไปจนถึงการทำแบนเนอร์ โดยเน้นที่ การสร้างภาพเพื่อการจัดทำเอกสาร มากกว่าการแก้ไขข้อความแบบธรรมดา
  • มี FIGlet และ ฟอนต์ 148 แบบ มาให้โดยพื้นฐาน พร้อมฟีเจอร์อย่างเส้น สี่เหลี่ยม ไกด์การจัดแนว กลุ่ม และคีย์ลัด ที่ช่วยลดงานทำ text art ซ้ำๆ
  • ต้องใช้ macOS 11 Big Sur ขึ้นไป และเครื่องมือบรรทัดคำสั่งดาวน์โหลดได้โดยตรงจากเว็บไซต์ โดยรวมอยู่เฉพาะเวอร์ชันที่ซื้อจากสโตร์เท่านั้น

เครื่องมือสร้างภาพสำหรับ Mac ที่วาดด้วยข้อความ

  • Monodraw เป็นเอดิเตอร์สำหรับสร้าง ASCII art บน Mac
  • สามารถเขียนโครงสร้างอย่างไดอะแกรม เลย์เอาต์ และโฟลว์ชาร์ตในรูปแบบข้อความได้
  • ใช้สำหรับ จัดระเบียบให้เห็นภาพ ของสิ่งที่เข้าใจได้ยากหากดูจากโค้ดอย่างเดียว เช่น อัลกอริทึม โครงสร้างข้อมูล และฟอร์แมตไบนารี
  • เนื่องจากผลลัพธ์เป็นข้อความธรรมดา จึงสามารถแทรกลงในเอกสาร โค้ด และสเปกได้แทบจะตรงๆ
  • หากต้องการรูปภาพ ก็สามารถส่งออกเป็น PNG และ SVG ได้

การแสดงเอกสารทางเทคนิคและโมเดลข้อมูล

  • text diagram ที่อยู่ในโค้ดและสเปกมีไว้เพื่อช่วยให้เข้าใจโครงสร้างได้รวดเร็ว
  • การทำภาพของโครงสร้างข้อมูล อัลกอริทึม และฟอร์แมตข้อมูล มีความสำคัญต่อการช่วยให้ผู้อ่านมองเห็นความสัมพันธ์และลำดับการไหล
  • เนื่องจากเวลาอ่านโค้ดมีมากกว่าเวลาเขียน แผนภาพข้อความจึงอาจช่วยได้ในกระบวนการดูแลรักษาและรีวิว
  • Mind map

    • ผสานความเรียบง่ายของข้อความธรรมดาเข้ากับวิธีการแบบ mind map
    • สามารถย้ายข้อความไปยังตำแหน่งที่ต้องการบนแคนวาสไร้ขีดจำกัดได้
    • ไม่ถูกผูกไว้กับโครงสร้างเชิงเส้นของไฟล์ข้อความ
  • ER diagram

    • แสดงโมเดลข้อมูลเป็นแผนภาพ entity-relationship แบบเรียบง่าย
    • รองรับสัญลักษณ์ Crow’s Foot 3 แบบย่อย

ฟีเจอร์สำหรับสร้าง text art

  • แบนเนอร์ สามารถสร้างได้ด้วยการคลิกเพียงครั้งเดียว
  • มี FIGlet ติดตั้งมาในตัว และมี ฟอนต์ 148 แบบ รวมมาให้โดยพื้นฐาน
    • รองรับฟอนต์แบบกำหนดเอง
    • สามารถปรับขนาดกล่องข้อความ เปลี่ยนฟอนต์ และปรับการจัดแนวแบบอินเทอร์แอ็กทีฟได้โดยไม่ต้องใช้เทอร์มินัล
  • เครื่องมือข้อความ ทำงานด้วยเอนจินข้อความแบบกำหนดเองที่อิง CoreText
    • สามารถปรับการจัดแนว ตำแหน่ง ทิศทางการเดินบรรทัด และการเลื่อนบรรทัดได้
    • สามารถเพิ่มเส้นขอบรอบข้อความได้ด้วยการคลิกครั้งเดียว
  • เครื่องมือเส้น ช่วยให้การเชื่อมรูปร่างทำได้ง่าย และรองรับทั้งเส้นตั้งฉากและเส้นแบบขั้นบันได
    • สามารถตั้งค่ารูปแบบเส้นประของเส้นได้
    • สามารถยึดเส้นเข้ากับรูปร่างอื่นแบบไดนามิกผ่านจุดเชื่อมต่อ ทำให้ลดภาระการจัดวางใหม่หลังย้ายรูปร่าง
  • เครื่องมือสี่เหลี่ยม เป็นฟังก์ชันสำหรับสร้างกล่องที่ใช้บ่อยใน text art
    • สามารถกำหนดเส้นขอบและพื้นหลังได้ด้วยการคลิกไม่กี่ครั้ง
    • สามารถเพิ่มเงาได้
    • สามารถยึดเส้นเข้ากับตำแหน่งที่แม่นยำผ่านจุดเชื่อมต่อแบบกำหนดเอง

ฟีเจอร์เสริมที่ช่วยลดงานบนแคนวาส

  • มี เครื่องมือวาดพื้นฐาน ได้แก่ Pencil, Eraser, Bucket Fill และ Picker
    • สามารถวางภาพซ้อนบนแคนวาสเพื่อใช้เป็นแนวในการลอกแบบได้
  • ฟีเจอร์ กลุ่ม ช่วยรวมหลายรูปร่างเป็นหนึ่งเดียว เพื่อให้คัดลอกและย้ายได้ง่าย
  • ไกด์การจัดแนว ช่วยให้ไม่ต้องนับจำนวนตัวอักษรเองเวลาจัดวางเนื้อหาและปรับขนาด
  • ฟีเจอร์ โฟกัส ช่วยให้ล็อกหรือซ่อนรูปร่างอื่นเมื่ออยากจดจ่อกับบางส่วนของแคนวาส
    • สามารถซูมเพื่อโฟกัสกับองค์ประกอบที่มองเห็นอยู่ในขณะนั้นได้
  • ทุกฟีเจอร์เข้าถึงได้ด้วย คีย์ลัด
    • สามารถเลือกเครื่องมือได้อย่างรวดเร็วด้วยการกดปุ่มเดี่ยวโดยไม่ต้องใช้คีย์เสริม

การรองรับ macOS และเงื่อนไขของเครื่องมือบรรทัดคำสั่ง

  • Monodraw ถูกออกแบบเป็น แอปเนทีฟสำหรับ macOS ตั้งแต่เอนจินจัดวางข้อความไปจนถึงอินเทอร์เฟซ
  • text art สามารถส่งออกได้ด้วยวิธีคัดลอกไปวางในโปรแกรมแก้ไขข้อความที่ต้องการ
  • ความต้องการของระบบคือ macOS 11 Big Sur ขึ้นไป
    • สำหรับ macOS รุ่นเก่ากว่า สามารถใช้ Monodraw v1.3 ได้ โดยต้องใช้ macOS 10.10 Yosemite ขึ้นไป
    • Monodraw v1.5 ต้องใช้ macOS 10.14 Mojave ขึ้นไป
  • อินเทอร์เฟซบรรทัดคำสั่งรวมอยู่เฉพาะใน เวอร์ชันดาวน์โหลดโดยตรง เท่านั้น
    • รวมอยู่ในเวอร์ชันที่ดาวน์โหลดโดยตรงจากเว็บไซต์และซื้อจาก สโตร์
    • เวอร์ชัน Mac App Store ไม่สามารถรวมเครื่องมือบรรทัดคำสั่งได้เนื่องจากข้อจำกัดของ App Sandbox
    • สามารถนำไปใช้ร่วมกับ version control hook เพื่อสร้างเอกสารอัตโนมัติขณะ commit ได้
    • รองรับเอาต์พุต JSON ด้วย จึงนำไปใช้ในโปรแกรมได้ง่าย
  • Monodraw ระบุว่าไม่มีการเก็บรวบรวมข้อมูลใดๆ เลย

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

 
GN⁺ 2024-03-10
ความคิดเห็นจาก Hacker News
  • สุดท้ายก็กลับมาที่ Monodraw อยู่ดี
    แอปอื่น ๆ มีฟีเจอร์และตัวเลือกสไตล์เยอะเกินไปจนโฟกัสกับเนื้อหาจริง ๆ ได้ยาก แต่ Monodraw ไม่ทำให้เสียสมาธิ
    ถึงอย่างนั้นก็ยังมีฟีเจอร์มากพอให้ทำอะไรได้เยอะ และชอบ anchors เป็นพิเศษ: https://tamasruss.com/articles/monodraw-anchors

    • ก็ดูแอบน่าขันนิด ๆ ที่บอกว่าแอปอื่นทำให้โฟกัสกับเนื้อหาไม่ได้ แต่การมานั่งปรับ responsive separators กับ anchor points ใน Monodraw กลับโอเค
      แต่เทคนิคนี้ก็เนี้ยบดี
    • UML boxes สำหรับคลาสมีประโยชน์มาก และทิวทอเรียลก็ดี
  • นี่เป็นหนึ่งในแอปที่ชอบมากจริง ๆ และก็จ่ายเงินทันทีที่มันเปิดตัว
    เคยใช้ทำเอกสารแบบนี้หลายครั้ง: https://github.com/ivank/potygen/blob/main/packages/potygen/...
    ASCII อเนกประสงค์มาก เลยช่วยแทรกรูปที่ดูดีในจุดที่คาดไม่ถึงและทำให้เข้าใจง่ายขึ้น

    • มุมพวกนั้นดูเหมือน Unicode block characters
    • ตัวอย่างนี้เป็นภาพที่ยอดเยี่ยมและแสดงเสน่ห์ของซอฟต์แวร์ได้ทันที จนทำให้อยากลองดูเอง
    • ไดอะแกรม "With Expression" ที่บรรทัด 656 ดูโอเคใน emacs แต่พอเปิดลิงก์จริงใน chrome ด้านขวากลับพังทั้งหมด
      ตัวอักษรยังปกติ แต่ดูเหมือนการเลือกฟอนต์ของ github จะจัดการ “ช่องว่างที่มีความหมาย” ในส่วนขยายได้ไม่ดี
    • น่าจะดีกว่าถ้าเลือกบรรทัดที่อยากให้ดูแล้วลิงก์ไปยังตำแหน่งนั้น
  • กำลังดูแลลิสต์ เครื่องมือ text-to-diagram แบบเว็บ อยู่: https://xosh.org/text-to-diagram/
    ตัวเลือกบนเว็บสำหรับเครื่องมือวาด ASCII แบบนี้ก็มี https://fsymbols.com/draw/, https://textik.com/, https://asciiflow.com/#/, https://web.archive.org/web/20210503172024/https://fatiherik..., https://app.monosketch.io เป็นต้น

    • Pikchr ก็น่าเอาเข้าลิสต์เหมือนกัน
      เป็นเครื่องมือที่ผู้สร้าง SQLite ทำขึ้น: https://pikchr.org/home/doc/trunk/doc/userman.md
    • จากไดอะแกรมที่ทำด้วยมือเมื่อไม่นานนี้ เครื่องมือในลิสต์นี้ยังไม่มีอันไหนมีฟีเจอร์ครบตามที่ต้องการ
      ในลิสต์นี้เหมือนจะมีแค่ https://textik.com/ ที่จัดการ เส้นทแยงมุม ได้ และเหมือนจะยังไม่มีฟีเจอร์เติมพื้นที่ด้วย
      ไดอะแกรมที่ตั้งใจจะวาดก็เป็นประมาณนี้: https://pastebin.com/NPXFS1Fi
      ผมทำกล่องกับสามเหลี่ยมใน textik.com ได้ แต่ต้องมานั่งแก้มุมหลายจุดด้วยมือและต้องเติมด้านในเอง
      ถึง Monodraw จะราคาแค่ 10 ดอลลาร์ แต่ก็ยังไม่แน่ใจว่าจะจ่ายไหม เพราะเป็น แอปเนทีฟสำหรับ Mac เท่านั้น
      ผมทำงานบนเว็บเยอะ ใช้หลายอุปกรณ์ และวาดไดอะแกรมแค่ปีละไม่กี่ครั้ง เลยรู้สึกว่าแบบเว็บหรือปลั๊กอิน VSCode น่าจะเหมาะกว่า
    • ลองดูรายการจาก https://fmhy.net ด้วยก็น่าสนใจ
      อาจมีเครื่องมือที่น่าสนใจอยู่
    • อีกตัวที่น่าใส่ในลิสต์คือ https://mbarkhau.github.io/asciigrid
    • เมื่อหลายปีก่อนผมทำเครื่องมือง่าย ๆ ไว้ตัวหนึ่ง และตอนนี้ยังโฮสต์อยู่ที่ https://letterbrush.com
  • ชอบเครื่องมือนี้มากจริง ๆ
    ใช้มันทำไดอะแกรมของ Mapless: https://sebastianconcept.github.io/Mapless/guides/2024/01/28...
    และยังใช้ทำเอกสารการตั้งค่า Pharo VM Plugin builder ด้วย: https://github.com/sebastianconcept/PharoPluginBuilder

    • หมายความว่าคุณสร้างไดอะแกรมข้อความด้วยเครื่องมือวาด ASCII แล้วค่อยจับภาพหน้าจอเอาไปลงเว็บไซต์เหรอ?
      สำหรับการวาดแค่สี่เหลี่ยมไม่กี่อัน มันดูอ้อมเกินไปหน่อย มีวิธีที่ง่ายกว่านี้ไหม?
    • ผมใช้มันทำเอกสารประกอบซอร์สโค้ด และมันดีมากเพราะช่วยให้มองเห็น layout ของ buffer หรือ struct ในโค้ดได้
  • ถ้ามันเป็น cross-platform จะดีมาก
    อยากใช้บน Linux ด้วย
    เข้าใจดีว่าการทำแอปที่ขัดเกลามาดีต้องใช้ความพยายามมาก แต่ก็อยากให้เครื่องมือทำแอปเดสก์ท็อปหันมารองรับ Linux, Windows, Mac ให้ดีกว่านี้
    น่าจะเป็นหนึ่งในเหตุผลใหญ่ที่ทำให้เว็บแอปเพิ่มขึ้นเรื่อย ๆ

    • ค่อนข้างแปลกใจเหมือนกันที่แอปเดสก์ท็อปไม่ใช้ Qt กันมากกว่านี้
      มันเหมาะกับแอปประเภทนี้มาก
  • เป็นเครื่องมือที่เจ๋งมาก
    ถ้าอยากได้ทางเลือกแบบเว็บ ก็มี https://github.com/tuanchauict/MonoSketch ที่เพื่อนผมทำด้วย Kotlin
    ส่วนผมก็ทำเวอร์ชันที่ยังไม่สมบูรณ์นักไว้ด้วย Rust: https://github.com/huytd/ascii-d

  • ดูดีนะ
    https://asciiflow.com/ เป็นทางเลือกแบบเว็บ และเป็นเครื่องมือที่ใช้เป็นหลักมาราว 10 ปีแล้ว

    • ใช้ ASCIIFlow อยู่ตลอด
      แต่ก็ยังหาวิธีทำให้เบราว์เซอร์เรนเดอร์ฟอนต์แบบ fixed-width ได้อย่างถูกต้องไม่เจอสักที
      ดูได้จากไดอะแกรมตัวอย่างในหน้านี้: http://uggly.bytester.net/#how-it-works
    • ดูเหมือนว่าข้อความในไดอะแกรมแบบนี้จะถูก โปรแกรมอ่านหน้าจอ อ่านไม่ได้
  • นี่เป็นแอปประเภทที่ถึงจะใช้แค่เป็นครั้งคราว ก็ยังอยากซื้อไว้และเก็บไว้ตลอด

    • สงสัยว่าหมายถึงเป็นเครื่องมือที่ใช้มานานแล้ว หรือเดาว่าเป็นซอฟต์แวร์ประเภทที่น่าจะชอบกันแน่
      ถ้าเคยใช้จริงก็อยากฟังด้วยว่านำไดอะแกรมที่สร้างไปใช้อย่างไร
      พอนึกภาพสกรีนช็อตของไดอะแกรมออก แต่ต้นฉบับแบบข้อความน่าจะใหญ่เกินกว่าจะเอาไปใส่ในอะไรอย่างเทอร์มินัล
    • ดีไซน์เว็บไซต์ก็เรียบสะอาดดี
  • แอปนี้เข้าสู่ โหมดบำรุงรักษา ตั้งแต่ปี 2018 แล้ว หลังจากนั้นมีอะไรเปลี่ยนไปบ้างไหม? https://blog.helftone.com/monodraw-maintenance-mode/

    • ผมเป็นผู้พัฒนา Monodraw
      ขอบคุณสำหรับเสียงตอบรับที่ดีต่อแอป
      ช่วงนี้เวลาน้อยมาก เลยออกอัปเดตเพิ่มเติมได้ไม่มาก
      กำลังทำฟีเจอร์ที่มีคนขอกันมากอยู่ไม่กี่อย่าง แต่ยังสัญญาไม่ได้ว่าจะปล่อยเมื่อไร
      ปกติจะค่อย ๆ ทำให้คืบหน้าตอนช่วงวันหยุด
      ถึงอย่างนั้นก็จะยังแก้ปัญหาที่เกิดจากการอัปเกรด OS ต่อไป และตั้งใจจะดูแลให้ผลิตภัณฑ์ยังใช้งานได้ต่อเนื่อง
    • ดูจาก https://x.com/Monodraw แล้ว เหมือนจะมีอัปเดตเกิดขึ้นจริง
    • คำตอบตรงท้าย FAQ ดูแปลก ๆ อยู่หน่อย
      เขาให้เหตุผลว่าการดูแลโปรเจกต์โอเพนซอร์สเป็นภาระใหญ่ และถ้าเปิดซอร์สผลิตภัณฑ์ที่เสร็จสมบูรณ์แล้ว ก็อาจมีการนำโคลนไปขายให้ลูกค้าที่ไม่รู้เรื่องได้
      แต่ถ้าโอเพนซอร์ส ก็อาจมีผู้ร่วมพัฒนามาช่วยรับงานบางส่วนได้ และไลเซนส์บางประเภทก็สามารถป้องกันการขายโคลนแบบนั้นได้
  • เคยใช้เมื่อก่อนและชอบมาก
    ถ้าจำไม่ผิด ข้อเสียอย่างหนึ่งคือถ้าจะเก็บฟีเจอร์เจ๋ง ๆ อย่าง anchor หรือกล่องที่ปรับขนาดได้ ก็ต้องใช้ฟอร์แมตไฟล์ภายในของมันเอง
    การที่มันอ้างถึงภาพ ASCII ในเอกสาร Markdown โดยตรง ไม่ได้แปลว่าฟีเจอร์ทั้งหมดจะมีตามมาโดยอัตโนมัติ
    ถ้าต้องการจริง ๆ ก็น่าจะแก้ได้ระดับหนึ่งด้วยอัลกอริทึมที่ฉลาดและ LLM และจริง ๆ ก็ใช้ LLM ช่วยร่างไดอะแกรม ASCII อยู่บ่อยพอสมควร และก็ได้ผลอยู่บ้าง
    แต่ก็ยังหาสมดุลที่ดีไม่ได้ระหว่างการบำรุงรักษาได้ง่าย คือความสามารถในการจัดการกล่องให้เป็นกล่องและย้ายแล้วเส้นเชื่อมตามไปด้วย กับความพกพาได้ คือทุกอย่างเป็นข้อความล้วน
    ถ้า Monodraw เวอร์ชันล่าสุดต่างออกไป หรือมีเครื่องมืออื่นที่แก้ปัญหานี้ได้ ก็อยากรู้เหมือนกัน
    อย่างน้อย Monodraw ก็เหมาะกับผมมากกว่า artist mode ของ Emacs

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