7 điểm bởi GN⁺ 2023-12-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Heynote là một scratchpad kiểu bộ đệm văn bản bền vững, nơi lưu tập trung các đoạn văn bản tạm, phản hồi API, ghi chú cuộc họp và danh sách việc cần làm vốn dễ bị phân tán trong quá trình phát triển
  • Đơn vị làm việc là khối; có thể tạo khối mới bằng ⌘-Enter và nhanh chóng chỉ chọn nội dung của khối hiện tại bằng ⌘-A
  • Dựa trên thiết lập ngôn ngữ cho từng khối như JavaScript, JSON, Markdown, ứng dụng áp dụng tô sáng cú pháp và tự động định dạng
  • Khối Math xử lý cả biến, hàm, chuyển đổi đơn vị và chuyển đổi tiền tệ, giúp tiếp tục các phép tính đơn giản ngay trong ngữ cảnh làm việc
  • Cung cấp nhiều bộ đệm ghi chú, sắp xếp theo thư mục, ánh xạ tệp, ảnh nội tuyến và tính năng chú thích, tập trung vào việc gom không gian làm việc tạm của lập trình viên vào một ứng dụng duy nhất

Scratchpad dựa trên khối

  • Cấu trúc cơ bản của Heynote là một bộ đệm văn bản bền vững lớn được chia thành nhiều khối
  • Khối mới được tạo bằng ⌘-Enter, và khi nhấn ⌘-A trong một khối thì sẽ chỉ chọn nội dung của khối hiện tại, thay vì toàn bộ tài liệu
  • Phù hợp để dán nhanh những tài liệu tạm thời khó lưu ở nơi khác
    • Bản nháp tin nhắn Slack không muốn gửi nhầm
    • Phản hồi JSON của API đang làm việc
    • Ghi chú cuộc họp
    • Danh sách việc cần làm hằng ngày

Tính năng khối cho công việc mã và tài liệu

  • Mỗi khối có thể có thiết lập ngôn ngữ riêng như JavaScript, JSON, Markdown
  • Tùy theo thiết lập ngôn ngữ, tô sáng cú pháp sẽ được áp dụng, đồng thời hỗ trợ tự động định dạng theo từng khối
  • Hỗ trợ nhiều ngôn ngữ lập trình, cho phép xử lý các đoạn mã và ghi chú tài liệu cùng nhau trong một bộ đệm

Khối Math dùng như máy tính

  • Khối Math có thể được dùng như một scratchpad máy tính cho các phép tính đơn giản
  • Hỗ trợ biến, hàm, chuyển đổi đơn vị, và phần chuyển đổi đơn vị cũng bao gồm chuyển đổi tiền tệ
  • Phù hợp để xử lý nhanh các phép “tính nháp trên khăn giấy” ngay trong luồng ghi chú

Nhiều bộ đệm và tổ chức tệp

  • Ngoài bộ đệm Scratch mặc định, có thể tạo bao nhiêu bộ đệm ghi chú tùy ý
  • Các phím tắt chính dùng cho thao tác với bộ đệm như sau
    • ⌘-N: tạo bộ đệm mới
    • ⌘-S: chuyển khối hiện tại sang bộ đệm mới
    • ⌘-P: chuyển nhanh giữa các bộ đệm
  • Các bộ đệm có thể được sắp xếp theo thư mục, và mỗi bộ đệm tương ứng với một tệp trên đĩa

Ảnh và chú thích

  • Heynote hỗ trợ ảnh nội tuyến
  • Có thể dán ảnh từ clipboard hoặc kéo thả tệp ảnh vào bộ đệm
  • Có thể chọn và thay đổi kích thước ảnh ngay trong trình soạn thảo, đồng thời nhanh chóng đưa ảnh trở lại clipboard hệ thống
  • Công cụ vẽ nhẹ tích hợp cho phép thêm chú thích tự do lên ảnh
  • Ảnh đã chú thích có thể được cập nhật thành phiên bản mới trong clipboard chỉ bằng một cú nhấp chuột hoặc phím bấm để dán sang nơi khác

Tải xuống

  • Phiên bản ổn định mới nhất là 2.9.0
  • Các bản tải xuống được hỗ trợ gồm Mac Universal, Mac Arm, Mac Intel, Windows, AppImage, Snap
  • Cũng có bản beta 2.9.1-beta
  • Có thể xem toàn bộ bản phát hành tại All releases

1 bình luận

 
GN⁺ 2023-12-23
Ý kiến trên Hacker News
  • Thật sự tuyệt vời. Gần như khớp chính xác với hình dung của tôi về một scratch pad
    Nếu thêm một yêu cầu tính năng, tôi muốn có hỗ trợ luồng “đảo ngược”, trong đó block mới được thêm vào đầu trang thay vì bên dưới. Scratch pad luôn mở ở trên cùng, và theo thời gian các block cũ “chìm” xuống dưới, để nội dung liên quan nhất còn lại ở phía trên
    Cách này hợp với lối suy nghĩ của tôi hơn. Tuy vậy, như một số ý kiến khác trong thread này, tôi cũng ủng hộ việc bỏ qua phần lớn các yêu cầu tính năng kiểu này để giữ sự đơn giản hiện có. Bao gồm cả yêu cầu của tôi

    • Rất vui vì bạn thích :)
      Tôi hiểu ý tưởng “đảo ngược”. Không biết liệu chỉ cần cho phép cấu hình để C-Enter chèn block mới trước block hiện tại, và khi khởi động Heynote đặt con trỏ ở vị trí bắt đầu buffer thay vì ở cuối như hiện nay, có đủ không
    • Tôi cũng thích cách này. Tuy nhiên nếu mỗi lần tạo dòng mới mà nhìn thấy mọi block bên dưới con trỏ di chuyển thì có vẻ sẽ gây xao nhãng
      UX lý tưởng là thêm buffer mới ở trên cùng, nhưng có đủ padding để lấp đầy cửa sổ nhằm không thấy các block trước đó di chuyển trong lúc nhập
      Tôi chưa tải app xuống, nhưng có thể nó đã hoạt động gần như vậy rồi. Trông đẹp nên tôi rất mong được dùng thử
    • Tính năng bổ sung này có vẻ rất hữu ích. Tôi vốn đã dùng thứ tự ghi chú như vậy trong tài liệu Markdown
    • Tôi đã làm một ứng dụng ghi chú theo cách tương tự. Ghi chú được thêm ở trên cùng, và khi chỉnh sửa một ghi chú thì nó lại được “kéo” lên trên cùng: https://thinktype.app/
    • Nếu có tính năng này thì cũng có thể dùng làm nhật ký hằng ngày, rất hay
  • Với các điều kiện này thì có lẽ tôi sẽ trả tiền: key binding vi, hiển thị vị trí file để có thể di chuyển hoặc đồng bộ/backup trên nhiều thiết bị, và tính năng sắp xếp đảo ngược
    Thật sự rất, rất tốt

  • Trông tuyệt. Tôi thích ý tưởng block nên sẽ tải về dùng thử
    Như thường lệ có nhiều bàn luận về Electron, nên nếu bạn chưa xem qua thì tôi muốn nhắc đến Tauri. Đây là một công cụ giống Electron dựa trên Rust, dùng webview của hệ thống thay vì Chromium nên giảm đáng kể kích thước bundle và mức dùng bộ nhớ
    Nhìn code thì có vẻ phần code phía Electron không quá nhiều, nên nếu bạn muốn thử Rust thì việc thay thế có thể không quá khó. Ứng dụng chỉnh sửa video tôi đang làm cũng khởi đầu bằng Electron rồi chuyển sang Tauri giữa chừng, và khá ổn
    Không phải yêu cầu gì đâu, cứ bỏ qua cũng được

    • Tôi đã xem xét Tauri ở giai đoạn đầu dự án. Lý do chọn Electron là độ trưởng thành và cộng đồng người dùng lớn
      Sau khi từng dùng các công cụ đa nền tảng khác cho mobile, kỳ vọng của tôi rất thấp, nhưng thực tế làm việc với Electron rất dễ chịu và tôi không hối tiếc về lựa chọn này. Gần như không gặp bug, hệ sinh thái lớn, và tôi thích việc dễ tự động hóa build đa nền tảng cùng tự động cập nhật
    • Điểm tôi không hài lòng ở Tauri là trên Linux nó dùng WebKitGtk2. Xét về hiệu năng thì khá tệ, và hỗ trợ tính năng cũng kém hơn WebKit trên macOS hoặc Webview2 trên Windows
    • Tôi đọc thấy phần Rust dùng khá bất tiện. Tôi tò mò liệu bạn có thấy Tauri giúp làm việc năng suất không
  • Tôi thật sự thích. Đơn giản và được triển khai chắc chắn. Tôi đã muốn làm một thứ tương tự trong một thời gian, có khi sẽ fork rồi thử chỉnh sửa vài thứ
    Hiện tại tôi dùng Obsidian theo cách tương tự bằng cách tạo ghi chú mới mỗi ngày và chia “block” bằng đường kẻ ngang Markdown (---), nhưng cách này gọn gàng hơn nhiều
    Điểm mạnh của cách tiếp cận này là khiến việc capture trở nên cực kỳ dễ dàng. Chỉ cần tạo block mới và viết ngay, không phải băn khoăn nên đặt nó ở đâu hay ghép vào cấu trúc hiện có thế nào. Cứ suy nghĩ như vậy thì trong lúc tìm vị trí cho ý tưởng, nhiều khi lại đánh mất ý tưởng
    Nhược điểm tất nhiên là việc tìm lại. Sẽ rất hay nếu có thể gắn tag hoặc tiêu đề cho block rồi tìm kiếm theo tag/tiêu đề. Tham vọng hơn nữa, thử đưa LLM và embedding vào để tự động gắn tag, tóm tắt, phân loại, gom cụm các block cũng sẽ thú vị
    Có nhiều hướng đi, nhưng tôi cũng đồng ý với ý kiến của những người khác rằng không nên thêm quá nhiều tính năng để rồi mất đi sự đơn giản vốn là sức hút ban đầu. Và tôi tò mò ứng dụng xử lý hiệu năng thế nào khi buffer trở nên rất lớn

    • Nó không phải mã nguồn mở. Commons Clause giới hạn rất nặng những việc có thể làm. Cái tên gây hiểu lầm
    • Hiệu năng phần lớn do trình soạn thảo nền tảng của Heynote là CodeMirror(https://codemirror.net/) xử lý. Có vẻ nó xử lý buffer khá lớn cũng tốt
      Tuy vậy, khi xử lý các block rất lớn ở một số chế độ ngôn ngữ nhất định, tôi thấy có vài vấn đề hiệu năng nhỏ
    • Tôi đang dùng Obsidian cho ghi chú lập trình, nhật ký xử lý sự cố, suy nghĩ “trên giấy”, viết lách và kiểm chứng giả định. Nó rất mạnh và hiệu năng cũng khá tốt. Bạn có thể hỏi tôi bất cứ điều gì
  • Tôi vừa tải về cài đặt và thật sự ấn tượng. Tôi thích khái niệm block toán học, nhưng mất vài giây mới tìm ra cách đổi block mới thành block toán học
    Cụm ⌘ + L Change block language ở phía trên không khiến tôi liên tưởng ngay đến “đổi loại block”. Sẽ tốt hơn nếu chỉnh nhẹ thành kiểu ⌘ + L Change block language (Math, Markdown, etc.)
    Ngoài ra, tôi thấy đây là một dự án tuyệt vời, đúng kiểu gãi đúng chỗ ngứa

    • Gợi ý hay, tôi sẽ đổi
  • Thích lắm. Đúng thứ mình cần. Từ trước tới giờ mình dùng một nhóm WhatsApp chỉ có mỗi mình cho mục đích này
    Các yêu cầu tính năng gồm có gói Arch, kết quả toán học được đưa vào buffer.txt và nội dung sao chép sau Ctrl+a, đổi phông chữ và theme màu, hỗ trợ hình ảnh/phương tiện trong block Markdown, timestamp cho block, tải lại tệp, và khả năng dùng trên di động
    Riêng về màu sắc, mình muốn vẫn chỉ dùng tối thiểu màu như hiện tại, nhưng theo kiểu thiết lập vài màu chứ không phải CSS tùy chỉnh. Dán ảnh thì sẽ tốt nếu giống Markdown của VS Code: nhấn Ctrl+v để chèn ảnh thì nó chèn Markdown và lưu ảnh thành tệp; có preview Markdown cũng hay, nhưng nếu bạn cho rằng ngoài phạm vi thì mình cũng hiểu
    Timestamp sẽ đặc biệt hữu ích nếu lưu createdAt, updatedAt vào dòng có ký hiệu vô cực trong buffer.txt, vì có thể dễ dàng trích xuất bằng grepcut. Bên dưới bạn nói đang làm tính năng tải lại tệp để có thể sao lưu bằng Git v.v., mình cũng rất mong chờ tính năng đó

    • Việc thêm kết quả tính toán vào các dòng được sao chép từ block toán học có vẻ khả thi, và mình cũng thích ý tưởng này
      Mình đồng ý rằng sẽ tốt nếu kết quả cũng có trong buffer.txt, nhưng có lẽ sẽ khó hơn do chi tiết triển khai
      Thiết lập phông chữ và theme màu hiện tại có khả năng cao sẽ không được thêm, vì mình đang nghiêng về hướng giảm số mục có thể cấu hình
      Timestamp cho block nằm trong danh sách việc cần làm, tải lại tệp cũng vậy. Di động thì có lẽ sẽ khó
    • Mình thấy bên dưới bạn nói có kế hoạch thêm phiên bản PWA và lưu trữ cục bộ. Vậy có thể bỏ qua yêu cầu di động, nhưng thay vào đó nếu có nút tải xuống trên di động để có thể đồng bộ với desktop qua Git hoặc Drive thì sẽ tốt
    • Vì được làm bằng Electron, nếu cho phép thêm CSS vào trang HTML thì có thể triển khai phông chữ và màu sắc
      Như vậy một số ghi chú còn có thể dùng CSS màu mè nữa
  • Thật sự, thật sự rất hay. Nó nhanh chóng có một chỗ cố định trên Dock của mình
    Mình có một yêu cầu mà sẵn sàng trả tiền: giá như có thể chạy code block và tạo output. Mình thường mở console trình duyệt để test JS, nên nếu làm được ngay cạnh các ghi chú khác thì tuyệt vời

  • Nó làm mình nhớ nhiều đến org-mode của https://orgmode.org/. Mình tò mò liệu có kế hoạch thêm các tính năng giống org, chẳng hạn như đánh giá code block, hay không
    Cá nhân mình có lẽ sẽ không rời org-mode, nhưng sẽ rất tuyệt nếu có thứ gì đó đáng giới thiệu như một app độc lập cho những người ngại dùng Emacs

    • Mình chưa từng xem orgmode nên không biết nó có những tính năng gì. Ngoài block toán học ra, đánh giá code block làm tăng độ phức tạp nên mình không có kế hoạch thêm
  • Tuyệt vời. Với những việc kiểu này mình luôn quay lại TextEdit, giờ mình sẽ thử Heynote xem sao
    Thật vui khi thấy thứ như thế này trên HN, giống những ngày xưa tốt đẹp. Không biết có kế hoạch hỗ trợ phím tắt vi không

    • Rất hay, nhưng nếu không có phím tắt vi thì với mình tính thực dụng sẽ giảm
      Giờ mình tự hỏi liệu có thể có được thứ tương tự bằng plugin Vim, hoặc tự làm không. Nếu chạy trong terminal thì còn có lợi thế là có thể đặt trong một phiên tmux bền vững và truy cập từ xa
    • Mình cũng đồng ý. Sẽ rất tốt nếu có binding vi/vim
  • Mình cũng muốn nhận phản hồi :)
    Kho GitHub của Heynote: https://github.com/heyman/heynote

    • App tốt. Mình luôn có một scratch pad cho mục đích này nhưng chưa từng có giải pháp nào thực sự tốt. Soulver hay nhưng quá thiên về toán, tab VS Code cũng ổn nhưng quản lý nhiều buffer theo từng ngôn ngữ khá phiền. Mình thích bộ tính năng ở đây
      Có vài phản hồi để cải thiện hoặc làm rõ. Mình không tìm ra phím tắt đổi ngôn ngữ cho đến khi rê chuột lên phần tử thanh trạng thái, nên nên có một mục menu hiển thị phím tắt đó
      Chuyển sáng/tối và kiểm tra cập nhật trong các app khác không nằm ở thanh trạng thái, nên có vẻ nên đưa vào phần cài đặt. Mặc định cũng nên theo chế độ sáng/tối của hệ thống, và có tùy chọn ghi đè theo từng app thì tốt
      Nếu không có đủ thứ để đặt trên thanh trạng thái thì có lẽ bỏ hẳn cũng được. Hiện tại nó có cảm giác như gom đủ thứ vào để biện minh cho sự tồn tại của thanh trạng thái
      Branding màu xanh lá ổn, nhưng cá tính của app khá mạnh. Có lẽ nên cân nhắc liệu app có cần cá tính mạnh như vậy không. Có thể cân nhắc bảng màu trung tính hợp với macOS hơn, hoặc nhiều lựa chọn màu nhấn bao gồm tùy chọn trung tính
      427MB là lớn. May là với tài liệu nhỏ nó không ngốn nhiều bộ nhớ, nhưng bundle quá lớn so với quy mô này. Mình tò mò tại sao lại bao gồm ffmpeg, có thật sự cần GLES không, và framework Electron mặc định có thật sự hơn 300MB không
      Có tùy chọn keymap, nhưng sau khi xóa nội dung ban đầu thì mình mất luôn keymap thực tế. Sẽ tốt nếu có tham chiếu trợ giúp trong app, hoặc ít nhất là một trang tài liệu được liên kết từ menu Trợ giúp
      Nếu đổi được phông chữ thì cũng tốt. Mình cũng không hiểu mô hình lưu trữ. Mình muốn biết dữ liệu được lưu ở đâu, có kiểm soát được không, có cần lưu không, hay nó được ghi bền vững thường xuyên thế nào. Có thể đặt vào lưu trữ đám mây để đồng bộ giữa các thiết bị không, và nếu đã làm vậy thì có tắt được không
      Cá nhân mình không thích đưa tên app vào icon app. Hầu hết app không làm vậy, nên mình đề xuất một icon tinh tế hơn
    • Một đề xuất nhỏ: sẽ tốt nếu có phím tắt để chèn ngày/giờ hiện tại
      Hoặc tùy chọn theo dõi thời gian tạo block và hiển thị nhỏ ở đâu đó trong UI của từng block cũng hay. Khi tìm lại những ghi chú cũ như thế này, có ngày tháng sẽ rất hữu ích
    • Mình tò mò liệu có thể dùng phông chữ độ rộng biến thiên không. Chỉ xem website thì chưa rõ. Với mình đây là tính năng bắt buộc
    • Không biết có khả năng có bản build arm64 cho Linux không. Mình có thể tự build, nhưng nếu không phải làm vậy thì tốt
    • Mình thật sự thích nó. Ý tưởng hay và được triển khai gọn gàng. Bản cài trên macOS arm của mình dưới 100MB
      Mình thấy cũng có người yêu cầu tab, nhưng mình thì muốn có thể mở nhiều cửa sổ