Nodejs: setTimeout

Phương thức setTimeout() đặt bộ hẹn giờ thực thi một chức năng hoặc đoạn mã nào đó sau khi thời gian đặt trước đã trôi qua.

setTimeout(code)
setTimeout(code, delay)

setTimeout(functionRef)
setTimeout(functionRef, delay)
setTimeout(functionRef, delay, param1)
setTimeout(functionRef, delay, param1, param2)
setTimeout(functionRef, delay, param1, param2, /* … ,*/ paramN)

Phương thức đơn giản này chỉ có chút rắc rối khi dùng từ khóa this.

Continue reading

Comments Off on Nodejs: setTimeout

Filed under Software

Ghi luồng rtsp bằng ffmpeg

Nếu kiểu nén audio đầu phát không tương thích với kiểu nén audio đầu thu (ffmpeg), có thể tạo ra clip lỗi (0 byte đến vài trăm byte). Các encoding cổ điển làm tốn băng thông nhưng dễ tương thích và khi ghi file thì ffmpeg có thể nén theo kiểu khác hiệu quả hơn, dẫn đến video clip có kích thước nhỏ hơn clip cùng thời gian do camera tự tạo.

Continue reading

Comments Off on Ghi luồng rtsp bằng ffmpeg

Filed under Software

Camera Hikvision DS-2CV2Q21FD-IW

Firmware phiên bản V5.5.803 build 210817 có vài điểm mới:

  • Giao diện web thuận tiện, đầy đủ tính năng hơn
  • Có thể chạy trên MS Edge, không cần giả lập MS IE
  • ONVIF cần có user/pass (giống như login user), nếu không sẽ gặp lỗi “ONVIF SOAP Fault: The action requested requires authorization and the sender is not authorized” mặc dù chúng ta yêu cầu các chức năng không cần đăng nhập.

Firmware của camera này, và nhiều camera khác bán trong nước, ít đươc cập nhật và khó tìm.

Comments Off on Camera Hikvision DS-2CV2Q21FD-IW

Filed under Software

Tải về từ camera HIKVISION


Chúng ta có thể lưu file của camera trong thẻ nhớ hoặc NAS, nhưng snapshot/clip được camera nén trong một file lớn phải dùng phần mềm của hãng để xem.

Python script Hikvision/Hiwatch Video downloading có thể giúp trích xuất các file riêng lẻ dạng .jpg hay .mp4.

Sử dụng rất đơn giản

media_download.py [-u] [-p] CAM_IP START_DATE START_TIME END_DATE END_TIME

  -u: use parameters as UTC time, otherwise use as camera's
      local time
  -p: download photos instead of videos

# Thí dụ
media_download.py 10.10.10.10 2020-04-15 00:30:00 2020-04-15 10:59:59

Trước đó phải mở file media_download.py để điền user_nameuser_password để login vào camera

Continue reading

Comments Off on Tải về từ camera HIKVISION

Filed under Software

cloudup so với rclone mount

  • cloudup dùng rclone để upload file lên remote
  • cloudup không sync thư mục giữa local và remote như rclone mount, mà chỉ update lên remote các thay đổi trong thư mục local, thích hợp cho mục đích backup
  • cloudup chấp nhận symlink, upload data từ target lên remote với tên symlink, mục đích quản lý tập trung dữ liệu từ nhiều nguồn khác nhau.
  • cloudup nhanh, trong khi rclone mount rất chậm

Comments Off on cloudup so với rclone mount

Filed under Software

inotifywait: vài lưu ý

Chạy inotifywait khi khởi động

5 cách để gọi chạy ứng dụng khi khởi động, trong đó rc.local được gọi muộn hơn trước khi xuất hiện màn hình đăng nhập.

Nếu cho inotifywait giám sát một symbolic link thì có thể gây lỗi “không tìm thấy” vì symlink chỉ được khởi tạo sau khi quá trình boot hoàn tất, khi đó phải chạy vòng lặp chờ symlink xuất hiện mới gọi chạy inotifywait.

Một cách khác là gọi chạy một systemd service. Có thể cài đặt để service tự gọi lại một vài lần cho đến khi thành công.

Continue reading

Comments Off on inotifywait: vài lưu ý

Filed under Software

Software RAID và LVM

lvm và mdadm là hai tiện ích có mục đích tương tự nhưng nguyên lý lại hoàn toàn khác nhau, được thiết kế để xử lý dữ liệu đĩa. Điểm giống nhau nằm ở chỗ cả lvm và mdadm đều phân phối dữ liệu giữa các ổ đĩa ở cấp độ phần mềm. Nghĩa là, chúng ta có thể tạo một mảng RAID phần mềm hoặc đĩa lvm chỉ bằng khả năng của hệ điều hành , không có phần cứng bổ sung. Để hiểu sự khác biệt, trước tiên chúng ta hãy tìm hiểu từng công nghệ một.

Continue reading

Comments Off on Software RAID và LVM

Filed under Software

os.backup2 (v.20221205)

Hình #1: Ext4 layout

Script backup Debian OS thành file .img, có thể nén thành file .xz | .zstd | .gz

File kết quả có thể dùng ghi vào thẻ nhớ và khởi động từ thẻ nhớ này.

Mặc dù đĩa gốc có thể kiểu MBR hay GPT, đĩa backup .img được xây dựng kiểu MBR và chỉ gồm 2 partition boot và rootfs. Khi phục hồi thủ công bằng cách copy file từ đĩa .img, cần chép đè file cmdline.org và fstab.org lên cmdline.txt và fstab để trả lại cấu hình gốc.

Continue reading

Comments Off on os.backup2 (v.20221205)

Filed under Software

Lạc đề: kích hoạt MS Office

Vừa rồi mua key Office trên mạng, ai ngờ người ta giao key đã active online.

Một key Office retail ngoài kích hoạt online còn có thể kích hoạt by phone trên máy khác (không hiểu rõ về chính sách này của M$), vì vậy tôi phải tìm hiểu các script kích hoạt by phone. Các batch script này gọi chạy ospp.vbs của M$ nên an toàn hơn là dùng các tool. Ngoài ra nếu dùng tool lấy CID được gọi chạy qua giao diện web thì cũng an toàn hơn gọi chạy trực tiếp.

Cuối cùng là script actOffice.cmd ra mắt, biến tấu những gì đã có trên mạng.

Continue reading

Comments Off on Lạc đề: kích hoạt MS Office

Filed under Software

img.edit (v.20221104)

Script mở file ảnh .img để soạn thảo, cập nhật các thay đổi vào file img. Nếu file ảnh được nén bằng xz, zstd hay gz thì img.edit giải nén trước khi mở và nén lại khi đóng, ngoài ra không biết đến kiểu nén khác.

usage: img.edit
  -a file.img
  -d [file.img|mountpoint|device|]
  -D regular_expression của device|file.img
  -u file
  -z xz|std|gz file
  -n [file.img]

trong đó
  -a: Mở file.img để soạn thảo
  -d: Đóng file.img/mountpoint/device/tất cả file .img đã mở bằng img.edit
  -D: Đóng thiết bị/file.img khớp với regular expression
  -u: Giải nén file kiểu .xz/.zst/.gz
  -z: Nén file.img kiểu .xz/.zst/.gz
  -n: Không nén lại file.img/hoặc tất cả
Continue reading

Comments Off on img.edit (v.20221104)

Filed under Software