Sự thay đổi của thời gian ánh sáng ban ngày ảnh hưởng đến nhịp sinh học và tâm trạng hàng ngày của chúng ta, đặc biệt là đối với những người sống ở vĩ độ phía bắc. Một công cụ dòng lệnh mới có tên là daylight đã xuất hiện để giúp người dùng theo dõi thời gian mặt trời mọc, mặt trời lặn và thời lượng ánh sáng ban ngày từ terminal của họ, tạo ra những cuộc thảo luận thú vị về cách thực hiện và các giải pháp thay thế.
Tính toán cục bộ sau khi phát hiện vị trí dựa trên IP
Công cụ daylight kết hợp chức năng trực tuyến và ngoại tuyến theo một cách thú vị. Mặc dù nhiều người dùng ban đầu thắc mắc về nguồn dữ liệu của nó, nhà phát triển đã làm rõ rằng ứng dụng chỉ sử dụng dịch vụ trực tuyến (ipinfo.io) để xác định vị trí của người dùng dựa trên địa chỉ IP của họ. Khi đã có tọa độ vĩ độ và kinh độ, tất cả các tính toán về mặt trời mọc và mặt trời lặn được thực hiện cục bộ bằng các thuật toán hình học.
Nó lấy vĩ độ/kinh độ của bạn từ dịch vụ tra cứu IP, sau đó thực hiện tính toán hình học cục bộ
Phương pháp tính toán dựa trên thư viện go-sunrise, thực hiện phương trình mặt trời mọc từ Wikipedia cho các tính toán thiên văn. Cách tiếp cận này đảm bảo kết quả chính xác mà không cần kết nối internet liên tục cho mỗi lần tính toán.
Tùy chọn cấu hình vị trí thủ công
Đối với người dùng lo ngại về quyền riêng tư hoặc những người sử dụng VPN có thể báo cáo vị trí không chính xác, công cụ cung cấp các tùy chọn dòng lệnh để chỉ định tọa độ và múi giờ theo cách thủ công. Tính linh hoạt này đã được cộng đồng đón nhận tích cực, với người dùng đánh giá cao khả năng ghi đè phát hiện tự động bằng các lệnh như --loc=12.34,56.78
và --timezone=America/New_York
.
Việc nhà phát triển quan tâm đến những trường hợp sử dụng này cho thấy sự hiểu biết về nhu cầu đa dạng của người dùng công cụ dòng lệnh, những người thường ưu tiên kiểm soát và tùy chỉnh.
Ví dụ sử dụng
Dữ liệu hôm nay cho vị trí IP của bạn
daylight
Ghi đè vị trí IP và múi giờ
daylight --loc="-33.92,18.42" --timezone="Africa/Johannesburg"
Tóm tắt ngắn về dữ liệu
daylight --short
Dữ liệu cho ngày khác
daylight --date="2025-12-31"
Tắt đầu ra màu
NO_COLOR=true daylight
Phương pháp cài đặt
- Homebrew (MacOS và Linux):
brew tap jbreckmckye/formulae brew install daylight
- Cài đặt thủ công: Tải tệp thực thi từ trang releases
- Windows: Có sẵn tệp nhị phân nhưng ít được kiểm tra hơn
Các cách tiếp cận thay thế và tích hợp hệ sinh thái
Cuộc thảo luận cộng đồng đã tiết lộ một số phương pháp thay thế để truy cập cùng thông tin. Một người dùng chỉ ra rằng người dùng Emacs có thể nhận được chức năng tương tự bằng cách thiết lập tọa độ của họ và sử dụng lệnh tích hợp M-x sunrise-sunset
. Điều này đã tạo ra một số câu đùa nhẹ nhàng về khả năng mở rộng của các trình soạn thảo văn bản, với các tham chiếu đến truyện tranh XKCD cổ điển về các trình soạn thảo văn bản.
Những trao đổi này cho thấy cách các công cụ dòng lệnh thường tồn tại trong một hệ sinh thái phong phú các giải pháp thay thế, với người dùng hướng đến các giải pháp tích hợp với quy trình làm việc hiện có của họ.
Triển khai kỹ thuật và trải nghiệm học tập
Nhà phát triển đã tạo ra daylight như một dự án học tập cho lập trình Go, điều này đã thu hút được sự đồng cảm của nhiều người trong cộng đồng, những người đánh giá cao các công cụ mã nguồn mở được xây dựng như các bài tập học tập. Codebase sử dụng thư viện giao diện người dùng terminal lipgloss để tạo ra một giao diện hấp dẫn với khả năng thích ứng màu sắc dựa trên nền terminal.
Một số người dùng nhận thấy những điểm kỳ lạ về định dạng, chẳng hạn như công cụ hiển thị thời gian 24 giờ nhưng vẫn thêm AM/PM khi sử dụng một số cờ múi giờ nhất định. Những quan sát này chỉ ra bản chất lặp đi lặp lại của việc phát triển công cụ dòng lệnh, nơi phản hồi của cộng đồng thường thúc đẩy sự hoàn thiện.
Công cụ daylight đóng vai trò vừa là một tiện ích thực tế cho những người, giống như người tạo ra nó, yêu thích ánh sáng mặt trời và sợ những buổi tối mùa đông dài và tối, vừa là một ví dụ về cách các dự án học tập có thể tạo ra các ứng dụng thực sự hữu ích. Sự kết hợp giữa phát hiện vị trí trực tuyến và tính toán ngoại tuyến tạo ra sự cân bằng giữa tiện lợi và quyền riêng tư mà nhiều người dùng dòng lệnh đánh giá cao.
Tham khảo: daylight: một chương trình dòng lệnh để theo dõi thời gian mặt trời mọc và mặt trời lặn