trandatdt

The Art of Simple

ssl google cloud platform Trong bài này chúng ta sẽ thực hiện chuyển từ self-managed SSL certificates sang Google-managed SSL certificates trên Cloud Load Balancing mà không bị downtime.

Read more...

sudo systemctl status bluetooth

Đôi khi trên các hệ điều hành như Ubuntu, Pop!_OS, Arch Linux sẽ gặp lỗi không kết nối được thiết bị bluetooth. Khi xem log sử dụng systemctl thì sẽ thấy như sau:

Read more...

rabbitmq

Vấn đề

Đôi khi với RabbitMQ ta gặp 1 số queue mà khi sử dụng Management Plugin để xóa theo cách thông thường sẽ bị lỗi timeout, không thể xóa được.

Read more...

Puppeteer in Python

RuntimeError: This event loop is already running

Không rõ nguyên nhân là từ đâu nhưng trên các máy mình cài hệ điều hành Ubuntu 22.04 hoặc Pop!_OS 22.04 (thực ra được base trên Ubuntu 22.04) thì Pyppeteer không thể chạy được.

Read more...

Optimistic concurrency control with sql

Bạn có một hệ thống thanh toán. Khi khách hàng giao dịch, code của bạn sẽ trừ tiền trong tài khoản của khách, chắc chắn rồi.

Giả sử khách hàng có user_id = 1 có giao dịch 100 VND, cách làm thông thường trông sẽ giống như thế này (bài viết sử dụng PostgreSQL để demo):

Read more...

evil-tom

Mới đây chiếc máy chấm công của công ty mình được kết nối mạng để tích hợp với hệ thống ERP. Rảnh rỗi không có việc gì làm nên mình lôi nó ra để pentest. Trong bài này mình sẽ trình bày quá trình mình truy cập vào máy chấm công của công ty. ?

Read more...

apache kafka

What is Kafka?

Nếu chưa biết Kafka là gì, bạn có thể tìm hiểu tại: https://kafka.apache.org/intro

Scaling your Kafka cluster

Một Kafka cluster gồm nhiều server chạy Kafka (trong kafka, mỗi server như vậy được gọi là một broker) để có tính sẵn sàng cao (high availability). Để đảm bảo khả năng chịu lỗi (fault-tolerant), các bản sao (replicas) của messages được duy trì trên mỗi broker, nhờ vậy nếu có server nào đó “sập” thì không xảy ra mất mát dữ liệu, cluster vẫn hoạt động bình thường.

Read more...

numpy

Giả sử chúng ta muốn tạo ra một list chứa các số integer như sau:

arr = list(range(1000000))

Bạn đoán Python sẽ dùng bao nhiêu memory để lưu list arr? Hmm... Ở đại học ta được học integer là 4 bytes (tùy máy tính, tùy compiler), vậy tính ra với một triệu phần tử thì sẽ ~4MiB?

Trong thực tế, Python tốn ~36MiB để lưu arr và các số integer này.

Read more...

tor-proxy

Mở đầu

Cuộc chiến giữa những người quản trị website và những web crawler là những cuộc chiến không hồi kết. Một website thường chặn web crawler bằng cách chặn địa chỉ IP của nó. Vậy thì nếu crawler có thật nhiều IP là sẽ không lo bị chặn rồi đúng không nào? (Không đúng lắm, thử nghĩ xem nếu 1 tài khoản được truy cập liên tục từ nhiều IP thì có bị chặn không. Nhưng trong bài viết này mình chỉ đề cập tới khía cạnh chặn IP ?). Thực tế mỗi mạng chỉ được cấp một public IP mà thôi nên muốn đổi địa chỉ IP thì chúng ta phải tìm tới proxy hoặc VPN. Trong bài viết này mình chọn Tor để tạo một proxy server.

Read more...

Ignore files for just you in Git

Nếu bạn nghĩ bài viết này là về .gitignore thì xin chúc mừng bạn đã nhầm. ???

Read more...