You don't need Evernote
TIL
497
@100daysTIL
42
White

Huy Trần viết ngày 07/02/2018

#Day005

Đối với một developer, việc ghi chú, lưu lại những kinh nghiệm hay những kĩ thuật đã học là một vấn đề rất nên làm. Có 10001 cách để ghi chú hằng ngày, có người dùng Evernote, có người dùng Google Keep, cũng có người dùng Notes app của macOS, StickyNotes của Windows...

Phần lớn thời gian mình làm việc trên editor, nếu khi học được cái gì mới hoặc nảy ra idea gì mới mà phải nhảy sang Evernote, Googke Keep để ghi lại thì rất khó chịu. Mà nếu lưu note trong máy tính thì nó không sync với các máy khác mình xài. Nếu xài Github để lưu note thì mỗi lần ghi hoặc sửa gì lại phải commit rồi push rất mất công.

Nên mình muốn có một cách lưu note vừa có thể thực hiện ngay trên editor mình đang xài, vừa có thể tự do tổ chức và cấu trúc thư mục và vừa có thể tự động đồng bộ lên internet.

Setup

Và đây là giải pháp:

  • Tạo một thư mục để lưu note, ví dụ ~/notes
  • Tạo một repository trên Github để đồng bộ
  • Mỗi khi cần lưu hoặc ghi chú gì, thì tạo file mới trong thư mục này, việc này có thể làm trực tiếp trên editor mà không cần phải nhảy sang một ứng dụng khác
  • Viết script tự động commit và push từ thư mục ~/notes
  • Problem Solved :trollface:

Đây là đoạn script mà mình dùng để thực hiện việc push note tự động, mình đặt tên nó là git-notes và lưu vào đâu đó có trong $PATH, ví dụ như là:

/usr/local/bin/git-notes

cd $GITNOTES_PATH
CURRENT_STATUS=$(git status -s)
if [[ "$CURRENT_STATUS" != "" ]]; then
  echo $(date) "Changes found"
  git add -A
  git commit -m "Automatically update"
  git push
else
  echo $(date) "No changes found"
fi

Biến $GITNOTES_PATH bạn có thể cấu hình trong ~/.bash_profile hay đâu đó tùy ý:

export GITNOTES_PATH=~/notes

Trước khi xài nhớ cấp quyền chạy được cho git-notes:

chmod +x /usr/local/bin/git-notes

Để cho script trên tự động chạy, chúng ta dùng crontab:

crontab -e

Gõ vào:

*/5 * * * * . $HOME/.bash_profile; git-notes &> ~/tmp/git-notes.log

Lưu lại, thế là xong.

Nội dung của đoạn cronjob trên là chạy lệnh git-notes mỗi 5 phút một lần, và lưu output vào một file log để chúng ta có thể kiểm tra lại về sau.

Sử dụng

Khi cần tạo một ghi chú mới, chúng ta có thể tạo file mới trong ~/notes:

vim ~/notes/til-02072018-1135.md

Có thể tạo thư mục để phân loại cho dễ nhìn. Gõ xong thì lưu lại, mỗi 5 phút toàn bộ nội dung sẽ được tự động commit và push lên Github, chúng ta không cần phải làm gì cả.

Đây là cấu trúc thư mục ~/notes của mình:

.
├── README.md
├── algorithms
│   ├── levenshtein.js
│   ├── quicksort
│   └── second-largest
├── interviews
│   ├── coding-interview-notes
│   ├── facebook-frontend-questions
│   └── postmortem
│        ├── google
│        ├── facebook
│        ├── amazon
│        └── microsoft
├── reading-list
│   ├── react-fiber
│   └── history-of-communist-parties
└── til
    └── ...

huytd 08-02-2018

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Trần

100 bài viết.
1440 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
145 43
Tại sao phải viết blog kĩ thuật? Có rất nhiều bài viết trên mạng nói về vấn đề tại sao một lập trình viên nên thường xuyên viết các bài blog kĩ thu...
Huy Trần viết hơn 2 năm trước
145 43
White
143 37
(Ảnh) Tiếp tục sêri (Link) lần này, chúng ta sẽ cùng tìm hiểu và mô phỏng lại một chức năng mà mọi người đang bắt đầu sử dụng hằng ngày, đó là chứ...
Huy Trần viết hơn 1 năm trước
143 37
White
96 16
Phần 1: Tự truyện Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nh...
Huy Trần viết gần 2 năm trước
96 16
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 7 tháng trước
1 1
White
8 0
Lấy fake path của file trong html input Ngữ cảnh: em cần làm một cái nút tải ảnh lên có preview. GIải pháp đầu: Dùng (Link) đọc file ảnh thành ba...
Hoàng Duy viết gần 2 năm trước
8 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
100 bài viết.
1440 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!