Anki trên cổ tay tôi
AI/ML·Dev.to·3 lượt xem

Anki trên cổ tay tôi

Anki On My Wrist

AI Summary

Một developer đã tự xây dựng ứng dụng Garmin watch để dùng Anki flashcards mà không cần mang theo điện thoại, xuất phát từ nhu cầu cá nhân muốn ghi nhớ kiến thức lâu dài. Thách thức lớn nhất là tích hợp Anki API vào watch, đòi hỏi phải có một backend riêng và giải pháp secure tunneling. Qua đó, các dev có thể học hỏi về cách vượt qua giới hạn thiết bị, tự tạo các tích hợp tùy chỉnh và tối ưu hóa cho môi trường bị hạn chế tài nguyên như smartwatch.

Tôi từ lâu đã quan tâm đến việc "học cách học" và từ lâu đã cảm thấy khó chịu vì việc tôi ngày càng quên nhiều thứ - đó không phải là một dấu hiệu tuyệt vời đối với một thanh niên 24 tuổi. Điều đó, kết hợp với cách tôi và một số...

Từ lâu, tôi đã quan tâm đến việc "học cách học" và từ lâu đã thấy khó chịu vì tôi ngày càng quên nhiều thứ -- đó không phải là một dấu hiệu tuyệt vời đối với một thanh niên 24 tuổi. Điều đó, kết hợp với việc tôi và một số bạn bè của tôi ngày càng phụ thuộc vào điện thoại trong nhiều năm, đã khiến tôi tạo ra một hệ thống để học, ghi nhớ và ghi nhớ mọi thứ tốt hơn trong thời gian dài mà không nhất thiết cần đến điện thoại.

Flashcards

Tôi nhớ đã sử dụng Quizlet rộng rãi trong suốt thời trung học vì nó được coi là bắt buộc đối với nhiều môn học, nhưng cách thực hành đó không áp dụng ở trường đại học khi hầu hết các lớp trong chương trình Khoa học dữ liệu của tôi đều yêu cầu viết mã hoặc toán, cả hai môn này đều không kết nối ngay với thẻ ghi nhớ hoặc khả năng ghi nhớ ngay từ cái nhìn đầu tiên. Trong suốt nhiều năm, tôi nhận thấy rằng thật khó để nhớ lại một số ký ức nhất định, cho dù đó là tên người, sự kiện về một số chủ đề nhất định hay đơn giản là những điều tôi chắc chắn đã học nhưng không thể nhớ lại được nữa.

Như một người đã làm, tôi đã tạo ứng dụng của riêng mình bằng ngôn ngữ lập trình gốc của họ có tên là MonkeyC.

nguyên mẫu

AnkiGarmin được cài đặt trên Garmin VivoActive 6
Garmin VivoActive 6 với Nguyên mẫu Anki

Khi tôi giành vị trí đầu tiên tại UF AI Days Hackathon, chúng tôi được lựa chọn một món đồ liên quan đến công nghệ trị giá 300 USD. Tôi đã mua một chiếc Garmin VivoActive 6 mặc dù không chạy nhiều vì lúc đó tôi bị ám ảnh bởi giấc ngủ và không sử dụng điện thoại. Đó có vẻ là một lựa chọn tốt -- ngoài ra tôi có thể để điện thoại bên ngoài phòng và đặt báo thức trên đồng hồ.

Quay trở lại với thẻ ghi chú, tôi cũng rất hào hứng khi cài đặt Anki trên chiếc Garmin mới toanh của mình và xem lại thẻ ghi nhớ trên cổ tay bất cứ khi nào tôi đi bộ, tắm vòi sen hay làm bất cứ việc gì khác.

Anki trên cổ tay tôi

Chà, điều đó chỉ tồn tại trong thời gian ngắn. Tôi không tìm thấy ứng dụng Anki có thể tải xuống cho Garmin hoặc bất kỳ triển khai công khai nào về cách tải Anki trên Garmin của bạn. Tương tự như vậy, tôi đã tạo ứng dụng của riêng mình bằng ngôn ngữ lập trình gốc có tên là MonkeyC, cài đặt tiện ích bổ sung AnkiConnect để kích hoạt các cuộc gọi HTTP có lập trình, hiển thị máy tính của tôi qua đường hầm ngrok, nhận ra rằng Garmin kỳ vọng các lệnh gọi API sẽ là HTTPS, tạo lại hệ thống API của họ với FastAPI và đường hầm Cloudflare, đồng thời đã trải qua nhiều thử nghiệm lặp đi lặp lại bằng cách từ chối sử dụng plugin Garmin gốc của Windows và thay vào đó sử dụng WSL2. Sau khi hoàn tất, đồng hồ của tôi có thể tìm nạp, xem xét và đồng bộ hóa thẻ theo cả hai cách với tài khoản Anki của tôi.

Máy tính xách tay của bạn có hoạt động 24/7 không?

Như bạn có thể đã nhận ra, thiết lập này yêu cầu phải bật máy tính xách tay của tôi để lộ đường hầm và khi tôi muốn sử dụng ứng dụng trên đồng hồ của mình, tôi thường đi bộ với máy tính xách tay của mình được đóng kín và/hoặc không có wifi trong ba lô. Vấn đề này gần đây đã được giải quyết bằng cách mua một trong các máy ảo Oracle miễn phí và chuyển tất cả quy trình làm việc của tôi vào bên trong máy ảo.

Máy ảo này không có nhiều RAM -- à, có một máy ảo miễn phí của Oracle tốt hơn nhưng thường luôn bị sử dụng. Tôi đã viết một tập lệnh để tiếp tục cố gắng chọn phiên bản miễn phí tốt hơn sau khi nó có sẵn trên cả 3 khu vực có sẵn và tập lệnh đã chạy được 2 ngày mà không gặp may.

Kiến trúc hệ thống

Các vấn đề khác

Không có gì đáng ngạc nhiên khi Garmin không có nhiều bộ nhớ dành riêng cho các ứng dụng của bên thứ ba, vì vậy khi bộ nhớ của tôi tăng kích thước -- hoặc có lần tôi quên xem lại thẻ do quá bận thực hiện quy trình làm việc thay vì xem lại chúng -- việc nhấn đồng bộ hóa sẽ làm đồng hồ bị quá tải và làm hỏng ứng dụng. Bản sửa lỗi đã đồng bộ hóa phân trang: tìm nạp 10 thẻ cùng một lúc thay vì toàn bộ bộ bài và loại bỏ các bản sao dữ liệu trung gian làm tăng gấp ba lần mức sử dụng bộ nhớ.

Thậm chí nhiều tiện ích mở rộng hơn

Một vấn đề riêng biệt mà tôi gặp phải là ghi chú. Tôi đã sử dụng NotePad, Obsidian, OneNote, thậm chí cả máy chủ của chính tôi trên Discord hoặc trò chuyện nhóm một mình trên WhatsApp. Tôi thực sự thích Obsidian và đã sử dụng nó được một thời gian, nhưng điều khiến tôi luôn khó chịu là phải chuyển đổi giữa bất cứ việc gì tôi đang làm hoặc dựa vào một màn hình riêng. Điều này khiến tôi phải tạo một tập lệnh AutoHotKey siêu đơn giản, nhẹ để tạo ra một lớp phủ có thể bật/tắt.

Tôi đã nhanh chóng mở rộng công cụ nhỏ này, thêm bộ đếm thời gian pomodoro, một tính năng khóa màn hình của bạn trong tab hiện tại vì tôi có xu hướng chuyển sang một bên và làm nhiều việc cùng một lúc, một công cụ cắt bài viết khi tôi đọc nhiều bài viết và mất dấu những gì tôi đã đọc hoặc nơi tôi tìm thấy thông tin nhất định sau đó, và cuối cùng là khả năng tương thích với thẻ ghi nhớ của tôi vì tôi đã có sẵn đã xác định điểm cuối API.

Tôi đã tích hợp Claude vào đó bằng cách thêm nút ghi chú vào thẻ flashcard (bạn có thể chọn thẻ nào bạn chấp thuận) và chức năng thú vị này đề xuất cầu nối giữa các thẻ nhất định -- ví dụ: bạn có thể có thẻ "Mạng thần kinh" và "Lập trình biểu tượng" và hệ thống cầu nối có thể đề xuất "AI biểu tượng thần kinh" làm thuật ngữ cầu nối kết nối chúng.

Một lần nữa, khi bạn có điểm cuối API, bạn có thể tích hợp điểm này vào hầu hết mọi thứ. Tôi đã sử dụng Tác vụ ChatGPT để tạo "AnkiGPT", cho phép tôi xem lại thẻ của mình thông qua ChatGPT -- tính năng này cũng hoạt động với chế độ giọng nói, cho phép tôi làm thẻ ghi nhớ khi lái xe trên đường cao tốc.

Dòng thời gian dự án

  • Tháng 11 năm 2025 -- v1: ứng dụng đồng hồ Garmin cơ bản với thẻ mẫu, giao diện người dùng chạm/vuốt
  • Tháng 12 năm 2025 -- Cầu nối FastAPI với danh sách bộ bài, tìm nạp thẻ, gửi đánh giá
  • Tháng 12 năm 2025 -- Triển khai đường hầm Cloudflare -- anki.matheus.wiki đi vào hoạt động
  • Tháng 12 năm 2025 -- AnkiGraph: Phân tích LLM, biểu đồ tri thức, xuất Obsidian
  • Tháng 1 năm 2026 -- Trang đích có tính năng nhập thẻ đa định dạng kéo và thả
  • Tháng 3 năm 2026 -- Triển khai Oracle Cloud VM 24/7 với Anki không đầu

Quá phụ thuộc

Như với tất cả mọi thứ, sự cân bằng là quan trọng. Ghi nhớ mà không hiểu, đặc biệt là trong lĩnh vực như Machine Learning, có thể gây hại cho bạn vì bạn không thể hình thành các kết nối mới hoặc khái quát hóa các thuật ngữ mới. Hệ thống tôi xây dựng chỉ là một công cụ chứ không phải là sự thay thế cho tư duy sâu sắc. Nhưng khi bạn cần nhớ tên của một giáo sư, năm xuất bản một bài báo hoặc cờ của công cụ CLI mà bạn sử dụng hai lần một tháng -- việc có nó trên cổ tay thực sự hữu ích.

Tác giả: Matheus Kunzler Maldaner

#learning#productivity#showdev#ai