Show HN: Heynote สแครตช์แพดเฉพาะสำหรับนักพัฒนา
(heynote.com)- Heynote คือสแครตช์แพดแบบ persistent text buffer ที่เก็บข้อความชั่วคราว, การตอบกลับ API, โน้ตประชุม และรายการสิ่งที่ต้องทำที่มักกระจัดกระจายระหว่างการพัฒนาไว้ในที่เดียว
- หน่วยการทำงานคือ บล็อก โดยสามารถสร้างบล็อกใหม่ด้วย ⌘-Enter และเลือกเฉพาะเนื้อหาในบล็อกปัจจุบันอย่างรวดเร็วด้วย ⌘-A
- ใช้ การตั้งค่าภาษา แยกตามบล็อก เช่น JavaScript, JSON, Markdown เพื่อเปิดใช้ syntax highlighting และการจัดรูปแบบอัตโนมัติ
- บล็อก Math รองรับทั้งตัวแปร, ฟังก์ชัน, การแปลงหน่วย และการแปลงสกุลเงิน ทำให้คำนวณง่าย ๆ ต่อเนื่องได้ในบริบทเดิม
- มีฟีเจอร์หลาย note buffer, การจัดระเบียบด้วยไดเรกทอรี, การแมปกับไฟล์, รูปภาพแบบ inline และคำอธิบายประกอบ โดยเน้นรวบรวมพื้นที่ทำงานชั่วคราวของนักพัฒนาไว้ในแอปเดียว
สแครตช์แพดแบบบล็อก
- โครงสร้างพื้นฐานของ Heynote คือ persistent text buffer ขนาดใหญ่ที่แบ่งออกเป็นหลาย บล็อก
- สร้างบล็อกใหม่ได้ด้วย ⌘-Enter และเมื่อกด ⌘-A ภายในบล็อก จะเป็นการ เลือกเฉพาะเนื้อหาในบล็อกปัจจุบัน ไม่ใช่ทั้งเอกสาร
- เหมาะกับการวางข้อมูลที่ไม่รู้จะเก็บไว้ตรงไหนแบบรวดเร็วชั่วคราว
- ร่างข้อความ Slack ที่ไม่อยากส่งพลาด
- JSON response ของ API ที่กำลังทำงานอยู่
- โน้ตประชุม
- รายการสิ่งที่ต้องทำประจำวัน
ความสามารถของบล็อกสำหรับงานโค้ดและเอกสาร
- แต่ละบล็อกสามารถมี การตั้งค่าภาษา ของตัวเองได้ เช่น JavaScript, JSON, Markdown
- ระบบจะใช้ syntax highlighting ตามภาษาที่ตั้งไว้ และรองรับการจัดรูปแบบอัตโนมัติระดับบล็อก
- รองรับหลายภาษาโปรแกรม ทำให้จัดการทั้งโค้ดสั้น ๆ และโน้ตเอกสารร่วมกันใน buffer เดียวได้
บล็อก Math ที่ใช้เหมือนเครื่องคิดเลข
- บล็อก Math ใช้เป็น calculator scratchpad สำหรับการคำนวณง่าย ๆ ได้
- รองรับตัวแปร, ฟังก์ชัน และการแปลงหน่วย โดยการแปลงหน่วยรวมถึง การแปลงสกุลเงิน ด้วย
- เหมาะกับการทำ “การคำนวณแบบคร่าว ๆ” อย่างรวดเร็วระหว่างจดโน้ต
หลายบัฟเฟอร์และการจัดการไฟล์
- นอกจาก Scratch buffer เริ่มต้นแล้ว ยังสามารถสร้าง note buffer ได้มากเท่าที่ต้องการ
- คีย์ลัดหลักสำหรับการทำงานกับ buffer มีดังนี้
- ⌘-N: สร้าง buffer ใหม่
- ⌘-S: ย้ายบล็อกปัจจุบันไปยัง buffer ใหม่
- ⌘-P: สลับระหว่าง buffer อย่างรวดเร็ว
- สามารถจัดระเบียบ buffer เป็นไดเรกทอรีได้ และแต่ละ buffer จะสอดคล้องกับ หนึ่งไฟล์ บนดิสก์
รูปภาพและคำอธิบายประกอบ
- Heynote รองรับ รูปภาพแบบ inline
- สามารถวางรูปจากคลิปบอร์ด หรือ drag and drop ไฟล์รูปภาพลงใน buffer ได้
- เลือกรูปภาพในตัวแก้ไขแล้วปรับขนาดได้ และยังสามารถคัดลอกรูปกลับไปยัง system clipboard ได้อย่างรวดเร็ว
- มีเครื่องมือวาดเขียนแบบเบาในตัวสำหรับเพิ่ม คำอธิบายประกอบแบบอิสระ ลงบนรูปภาพ
- รูปภาพที่ใส่คำอธิบายประกอบแล้วสามารถอัปเดตเป็นเวอร์ชันใหม่ไปยังคลิปบอร์ดเพื่อวางต่อที่อื่นได้ด้วยการคลิกครั้งเดียวหรือกดปุ่ม
ดาวน์โหลด
- เวอร์ชันเสถียรล่าสุดคือ 2.9.0
- มีตัวดาวน์โหลดสำหรับ Mac Universal, Mac Arm, Mac Intel, Windows, AppImage และ Snap
- มีเวอร์ชันเบตา 2.9.1-beta ให้ใช้งานด้วย
- ดูรายการรีลีสทั้งหมดได้ที่ All releases
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ยอดเยี่ยมจริง ๆ แทบจะตรงกับสิ่งที่อยากได้จาก scratch pad เลย
ถ้าจะขอเพิ่มฟีเจอร์สักอย่าง อยากให้รองรับ flow แบบ “ย้อนลำดับ” ที่เพิ่มบล็อกใหม่ไว้ที่ บนสุดของหน้า แทนที่จะเป็นด้านล่าง คือ scratch pad เปิดขึ้นมาที่บนสุดเสมอ และเมื่อเวลาผ่านไป บล็อกเก่าจะ “จมลง” ไปด้านล่าง เหลือเนื้อหาที่เกี่ยวข้องที่สุดไว้ด้านบน
วิธีนี้เข้ากับวิธีคิดของผมมากกว่า แต่ตามที่หลายคนในเธรดนี้พูด ผมก็เห็นด้วยว่าควรเมินคำขอฟีเจอร์ส่วนใหญ่แบบนี้ แล้วรักษา ความเรียบง่าย ที่ทำไว้ตอนนี้ รวมถึงคำขอของผมด้วย
เข้าใจไอเดีย “ย้อนลำดับ” อยู่ สงสัยว่าถ้าตั้งค่าให้
C-Enterแทรกบล็อกใหม่ก่อนบล็อกปัจจุบันได้ และให้ Heynote ตอนเริ่มต้นวางเคอร์เซอร์ไว้ที่ ตำแหน่งเริ่มต้นของบัฟเฟอร์ แทนที่จะเป็นท้ายบัฟเฟอร์ตามพฤติกรรมปัจจุบัน จะเพียงพอไหมUX ในอุดมคติคือเพิ่มบัฟเฟอร์ใหม่ไว้ด้านบนสุด แต่มี padding มากพอให้เต็มหน้าต่าง เพื่อไม่ให้เห็นบล็อกก่อนหน้าขยับระหว่างที่พิมพ์
ผมยังไม่ได้ดาวน์โหลดแอป แต่ก็อาจทำงานคล้าย ๆ แบบนี้อยู่แล้วก็ได้ หน้าตาดี น่าลองใช้มาก
ถ้ามีเงื่อนไขแบบนี้ผมน่าจะยอมจ่ายเงิน: vi key bindings, แสดงตำแหน่งไฟล์เพื่อให้ย้ายหรือซิงก์/สำรองข้อมูลหลายอุปกรณ์ได้ และฟีเจอร์เรียงลำดับแบบย้อนกลับ
ดีมาก ๆ จริง ๆ
ดูเจ๋งดี ชอบไอเดียเรื่อง บล็อก เลยจะดาวน์โหลดมาลองใช้
ตามปกติก็มีคนพูดถึง Electron กันเยอะ ถ้ายังไม่ได้ดู ผมอยากพูดถึง Tauri ด้วย เป็นเครื่องมือคล้าย Electron ที่ใช้ Rust เป็นฐาน และใช้ system webview แทน Chromium จึงช่วยลดขนาด bundle กับการใช้หน่วยความจำได้พอสมควร
ดูโค้ดแล้วเหมือนส่วนที่เป็น Electron ไม่ได้เยอะมาก ถ้าอยากลองจับ Rust การเปลี่ยนมาใช้อาจไม่ได้ยากมหาศาล แอปตัดต่อวิดีโอที่ผมทำก็เริ่มจาก Electron แล้วเปลี่ยนเป็น Tauri กลางทาง ซึ่งค่อนข้างโอเค
ไม่ใช่คำขอ แค่จะเมินก็ได้
หลังจากเคยใช้เครื่องมือ cross-platform อื่นสำหรับมือถือ ผมคาดหวังไว้ต่ำมาก แต่การทำงานกับ Electron จริง ๆ สบายมาก และไม่เสียใจที่เลือก แทบไม่มีบั๊กเลย ระบบนิเวศก็ใหญ่ และชอบตรงที่ทำให้อัตโนมัติสำหรับการ build หลายแพลตฟอร์มกับ auto update ได้ง่าย
ชอบมากจริง ๆ ทำออกมาเรียบง่ายและแข็งแรงดี ช่วงหนึ่งผมก็อยากทำของคล้าย ๆ กัน อาจ fork แล้วลองปรับนู่นนี่ดูก็ได้
ตอนนี้ผมใช้ Obsidian ทำโน้ตใหม่ทุกวัน แล้วใช้เส้นคั่นแนวนอนใน Markdown (
---) แบ่งเป็น “บล็อก” แบบคล้าย ๆ กัน แต่แบบนี้สะอาดกว่ามากจุดแข็งของแนวทางนี้คือทำให้ การ capture ง่ายสุด ๆ แค่สร้างบล็อกใหม่แล้วเขียนได้ทันที ไม่ต้องคิดว่าจะเอาไปไว้ตรงไหน หรือจะให้เข้ากับโครงสร้างเดิมอย่างไร เพราะพอคิดเรื่องพวกนั้น ก็มักทำให้ไอเดียหายไประหว่างหาตำแหน่งที่จะใส่
ข้อเสียก็แน่นอนว่าคือการค้นหากลับมาใหม่ ถ้าติดแท็กหรือตั้งชื่อให้บล็อก แล้วค้นหาตามแท็ก/ชื่อได้ก็น่าจะดี ถ้าทะเยอทะยานกว่านั้น การทดลองใส่ LLM และ embedding เพื่อแท็ก สรุป จัดหมวดหมู่ และจัดกลุ่มบล็อกโดยอัตโนมัติก็น่าจะเจ๋ง
มีทิศทางให้ไปได้หลายทาง แต่ก็เห็นด้วยกับคนอื่น ๆ ว่าอย่าเพิ่มฟีเจอร์มากเกินจนเสียความเรียบง่ายซึ่งเป็นเสน่ห์เดิมไป และสงสัยว่าจัดการ ประสิทธิภาพ อย่างไรเมื่อบัฟเฟอร์ใหญ่มาก
อย่างไรก็ตาม เห็นปัญหาประสิทธิภาพเล็กน้อยเมื่อจัดการบล็อกที่ใหญ่มากในโหมดภาษาบางตัว
เพิ่งดาวน์โหลดมาติดตั้ง ประทับใจมาก ชอบแนวคิดเรื่อง บล็อกคณิตศาสตร์ แต่ใช้เวลาอยู่ไม่กี่วินาทีกว่าจะรู้วิธีเปลี่ยนบล็อกใหม่ให้เป็นบล็อกคณิตศาสตร์
ข้อความด้านบน
⌘ + L Change block languageคำว่า “block language” ไม่ได้ทำให้นึกถึง “เปลี่ยนประเภทบล็อก” ทันที ถ้าปรับเล็กน้อยเป็น⌘ + L Change block language (Math, Markdown, etc.)ก็น่าจะดีนอกนั้นถือว่าเป็นโปรเจกต์ยอดเยี่ยมที่ช่วยแก้จุดคันได้ตรงมาก
ชอบมาก ตรงกับที่ต้องการพอดี จนถึงตอนนี้ผมใช้ กลุ่ม WhatsApp ที่มีผมอยู่คนเดียวเพื่อจุดประสงค์นี้อยู่
คำขอฟีเจอร์คือแพ็กเกจ Arch, ให้ผลลัพธ์คณิตศาสตร์ถูกรวมอยู่ใน
buffer.txtและในเนื้อหาที่คัดลอกหลังCtrl+a, เปลี่ยนฟอนต์และธีมสี, รองรับรูปภาพ/สื่อในบล็อก Markdown, timestamp ของบล็อก, โหลดไฟล์ซ้ำ และความเป็นไปได้บนมือถือโดยเฉพาะเรื่องสี อยากให้ใช้สีน้อยที่สุดแบบตอนนี้ แต่เป็นวิธีตั้งค่าสีได้ไม่กี่สีแทนที่จะเป็น CSS กำหนดเอง ส่วนการวางรูปภาพ อยากให้เหมือน VS Code Markdown คือเมื่อใส่รูปด้วย
Ctrl+vก็แทรก Markdown และบันทึกรูปเป็นไฟล์ และ Markdown preview ก็ดีเหมือนกัน แต่ถ้าตัดสินว่าอยู่นอกขอบเขตก็เข้าใจได้timestamp จะดีเป็นพิเศษถ้าเก็บ
createdAt,updatedAtไว้ในบรรทัดที่มีสัญลักษณ์อินฟินิตี้ในbuffer.txtเพราะจะดึงออกมาได้ง่ายด้วยgrepและcutข้างล่างเห็นบอกว่ากำลังทำการโหลดไฟล์ซ้ำเพื่อให้สำรองข้อมูลด้วย Git ฯลฯ ได้ ก็รอฟีเจอร์นั้นเหมือนกันเห็นด้วยว่าถ้าใน
buffer.txtมีผลลัพธ์ด้วยก็คงดี แต่คิดว่าน่าจะยากกว่าเพราะรายละเอียดการ implementส่วนการตั้งค่าฟอนต์และธีมสี ตอนนี้เอนเอียงไปทางลดจำนวนตัวเลือกที่ตั้งค่าได้ จึงมีโอกาสสูงว่าจะไม่เพิ่ม
timestamp ของบล็อกอยู่ในรายการสิ่งที่ต้องทำ และการโหลดไฟล์ซ้ำก็เช่นกัน ส่วนมือถือคงยาก
แบบนั้นก็จะทำให้บางโน้ตใช้ CSS สีสันจัดจ้านได้ด้วย
ดีมาก ๆ จริง ๆ แป๊บเดียวก็ได้ที่ประจำถาวรบน Dock แล้ว
มีคำขอหนึ่งอย่างที่ผมยินดีจ่ายเงินให้เลย คือถ้า รันโค้ดบล็อก และสร้าง output ได้จะดีมาก ผมเปิด browser console บ่อยเพื่อทดสอบ JS ถ้าทำได้ข้าง ๆ โน้ตอื่น ๆ เลยคงยอดเยี่ยม
ทำให้นึกถึง org-mode ของ https://orgmode.org/ มาก สงสัยว่ามีแผนจะเพิ่มฟีเจอร์คล้าย org อย่างการ evaluate code block ไหม
ส่วนตัวคิดว่าคงไม่ย้ายจาก org-mode แต่ถ้ามีอะไรที่แนะนำให้คนที่ไม่อยากใช้ Emacs ได้ในรูปแบบแอปเดี่ยว ๆ ก็คงดี
ยอดเยี่ยม ปกติสำหรับงานแบบนี้ผมมักกลับไปใช้ TextEdit เสมอ แต่ตอนนี้จะลองใช้ Heynote แล้วดูว่าจะเป็นอย่างไร
ดีใจที่ได้เห็นอะไรแบบนี้บน HN เหมือนยุคดี ๆ ในอดีต อยากรู้ว่ามีแผนรองรับ vi key bindings ไหม
ตอนนี้เลยสงสัยว่าจะได้อะไรคล้าย ๆ กันจาก Vim plugin หรือทำเองได้ไหม ถ้าอยู่ในเทอร์มินัลก็มีข้อดีคือวางไว้ใน session
tmuxที่คงอยู่ตลอดและเข้าถึงจากระยะไกลได้อยากได้ feedback ด้วยครับ :)
GitHub repository ของ Heynote: https://github.com/heyman/heynote
มี feedback บางอย่างเพื่อปรับปรุงหรือทำให้ชัดเจนขึ้น ทางลัดเปลี่ยนภาษา ผมหาไม่เจอจนเอาเมาส์ไปชี้ที่องค์ประกอบใน status bar ดังนั้นควรมีรายการเมนูที่แสดง shortcut ไว้
การสลับโหมดสว่าง/มืดและตรวจอัปเดต ปกติแอปอื่นไม่ได้วางไว้ใน status bar จึงน่าจะย้ายไปที่ settings ดีกว่า และควรตามโหมดสว่าง/มืดของระบบเป็นค่าเริ่มต้น โดยจะมี override รายแอปก็ได้
ถ้าไม่มีอะไรพอจะใส่ใน status bar ก็อาจตัดทิ้งไปเลย ตอนนี้รู้สึกเหมือนรวมโน่นนี่ไว้เพื่อทำให้ status bar มีเหตุผลในการมีอยู่
branding สีเขียวก็โอเค แต่แอปมีบุคลิกค่อนข้างแรง น่าคิดว่าแอปควรมีบุคลิกแรงขนาดนั้นไหม อาจพิจารณา palette ที่เป็นกลางและเข้ากับ macOS มากขึ้น หรือมีตัวเลือก accent color หลายแบบรวมถึงแบบกลาง ๆ
427MB ถือว่าใหญ่ ดีที่เอกสารขนาดเล็กไม่ได้กินหน่วยความจำมาก แต่ bundle ใหญ่เกินไปสำหรับขนาดนี้ สงสัยว่าทำไมถึงรวม ffmpeg ไว้ จำเป็นต้องใช้ GLES จริงไหม และ Electron framework พื้นฐานใหญ่เกิน 300MB จริงหรือ
มีตัวเลือก keymap แต่พอลบเนื้อหาเริ่มต้นแล้วก็เสีย keymap จริง ๆ ไป อยากให้มีเอกสารช่วยเหลืออ้างอิงในแอป หรืออย่างน้อยมีหน้าเอกสารที่เมนู Help ลิงก์ไป
ถ้าเปลี่ยนฟอนต์ได้ก็ดี และผมไม่เข้าใจโมเดลการบันทึกด้วย สงสัยว่าข้อมูลถูกเก็บไว้ที่ไหน ควบคุมได้ไหม ต้องกดบันทึกหรือไม่ หรือ persist บ่อยแค่ไหน อยากรู้ว่าสามารถใส่ไว้ใน cloud storage เพื่อซิงก์ข้ามอุปกรณ์ได้ไหม และถ้าทำอยู่แล้วปิดได้หรือเปล่า
ส่วนตัวไม่ชอบให้ใส่ชื่อแอปลงในไอคอนแอป แอปส่วนใหญ่ก็ไม่ทำแบบนั้น จึงขอเสนอไอคอนที่ subtle กว่านี้
หรือมีตัวเลือกให้ติดตามเวลาสร้างบล็อกแล้วแสดงเล็ก ๆ ตรงไหนสักแห่งใน UI ของแต่ละบล็อกก็ได้ วันที่มีประโยชน์มากเมื่อค้นหาโน้ตเก่า ๆ แบบนี้