# QuanWeb Blog Posts

This is a list of all blog posts on QuanWeb for AI agents to discover:

- [How to logout a Linux desktop session from command line](/post/2026/07/how-to-logout-a-linux-desktop-session-from-command-line.md)
- [Make Helix clipboard-copy work when running in byobu](/post/2026/06/make-helix-clipboard-copy-work-when-running-in-byobu.md)
- [journald-send - Library to help write logs to journald, for Python](/post/2026/06/journald-send-library-to-help-write-logs-to-journald-for-python.md)
- [Sử dụng model AI LLM host trong nước](/post/2026/04/su-dung-model-ai-llm-host-trong-nuoc.md)
- [Gleam - một lựa chọn mới cho lập trình web frontend](/post/2026/03/gleam-mot-lua-chon-moi-cho-lap-trinh-web-frontend.md)
- [Thư viện Python tra cứu phường xã trước và sau sát nhập](/post/2026/02/thu-vien-python-tra-cuu-phuong-xa-truoc-va-sau-sat-nhap.md)
- [API tỉnh thành có dữ liệu chính thức sau đợt sát nhập](/post/2026/01/api-tinh-thanh-co-du-lieu-chinh-thuc-sau-dot-sat-nhap.md)
- [Define UI comprising ListView in Blueprint for modern GTK apps](/post/2025/12/define-ui-comprising-listview-in-blueprint-for-modern-gtk-apps.md)
- [Define UI comprising Dropdown in Blueprint for modern GTK apps](/post/2025/11/define-ui-comprising-dropdown-in-blueprint-for-modern-gtk-apps.md)
- [Fix commands hanging in Incus container when host OS is Ubuntu](/post/2025/11/fix-commands-hanging-in-incus-container-when-host-os-is-ubuntu.md)
- [The trickiness of HTML checkbox](/post/2025/10/the-trickiness-of-html-checkbox.md)
- [Điểm mới của Python 3.14: Chế độ free-threading](/post/2025/10/diem-moi-cua-python-3-14-che-do-free-threading.md)
- [Lustre / Gleam: How to create modal popup](/post/2025/10/lustre-gleam-how-to-create-modal-popup.md)
- [Khi một ngôn ngữ lập trình không có lệnh `return`](/post/2025/10/khi-mot-ngon-ngu-lap-trinh-khong-co-lenh-return.md)
- [Lustre / Gleam: How to open confirm dialog](/post/2025/10/lustre-gleam-how-to-open-confirm-dialog.md)
- [structlog-journald, ghi log vào journald](/post/2025/08/structlog-journald-ghi-log-vao-journald.md)
- [Sinh viên đang khiến mình thụt lùi với AI](/post/2025/08/sinh-vien-dang-khien-minh-thut-lui-voi-ai.md)
- [Set a terminal emulator to be default for Ubuntu 25.04+](/post/2025/07/set-a-terminal-emulator-to-be-default-for-ubuntu-25.04.md)
- [Công cụ để chọn nhiều nhánh Git và xóa cùng lúc](/post/2025/06/cong-cu-de-chon-nhieu-nhanh-git-va-xoa-cung-luc.md)
- [Make Nginx Unit controllable from non-root user](/post/2025/05/make-nginx-unit-controllable-from-non-root-user.md)
- [Đồ chơi để thấy GraphQL đỡ phiền](/post/2025/04/do-choi-de-thay-graphql-do-phien.md)
- [Cấu hình autocomplete cho Nushell](/post/2025/03/cau-hinh-autocomplete-cho-nushell.md)
- [Resolve conflict of auto-completion script when installing some packages](/post/2025/02/resolve-conflict-of-auto-completion-script-when-installing-some-packages.md)
- [Grey background issue with Helix inside Byobu](/post/2025/02/grey-background-issue-with-helix-inside-byobu.md)
- [Triển khai tự động ứng dụng web Python](/post/2025/01/trien-khai-tu-dong-ung-dung-web-python.md)
- [Thử tài viết code Rust của DeepSeek](/post/2025/01/thu-tai-viet-code-rust-cua-deepseek.md)
- [Tại sao đôi khi tháng Chạp chỉ có 29 ngày?](/post/2025/01/tai-sao-doi-khi-thang-chap-chi-co-29-ngay.md)
- [Khám phá Nushell](/post/2024/12/kham-pha-nushell.md)
- [How to automatically deploy Python web application](/post/2024/12/how-to-automatically-deploy-python-web-application.md)
- [So sánh hệ thống kiểu của Python và TypeScript](/post/2024/11/so-sanh-he-thong-kieu-cua-python-va-typescript.md)
- [EasyEDA failed to start on Ubuntu 24.04](/post/2024/11/easyeda-failed-to-start-on-ubuntu-24.04.md)
- [Prevent Firefox from being installed as snap package](/post/2024/11/prevent-firefox-from-being-install-as-snap-package.md)
- [Món ăn kèm của đồng bào miền núi](/post/2024/11/mon-an-kem-cua-dong-bao-mien-nui.md)
- [Đến Phú Mỹ (BR-VT) ăn gì](/post/2024/10/den-phu-my-br-vt-an-gi.md)
- [Truy xuất mảng trong JavaScript một cách an toàn](/post/2024/09/truy-xuat-mang-trong-javascript-mot-cach-an-toan.md)
- [Lập trình nhúng, Rust đã có những gì?](/post/2024/09/lap-trinh-nhung-rust-da-co-nhung-gi.md)
- [When journalctl requires sudo to view even if user has been in correct group](/post/2024/09/when-journalctl-requires-sudo-to-view-even-if-user-has-been-in-correct-group.md)
- [How to play Zoo Tycoon 2001 in Ubuntu](/post/2024/08/how-to-play-zoo-tycoon-2001-in-ubuntu.md)
- [Effectly copy part of code file from remote machine](/post/2024/08/effectly-copy-part-of-code-file-from-remote-machine.md)
- [Sao chép nội dung một phần file code từ máy ở xa](/post/2024/08/sao-chep-noi-dung-mot-phan-file-code-tu-may-o-xa.md)
- [Những quán ăn ngon Quận 9 (Tp Thủ Đức)](/post/2024/08/nhung-quan-an-ngon-quan-9-tp-thu-duc.md)
- [Thư viện ghi log cho ứng dụng Python](/post/2024/07/thu-vien-ghi-log-cho-ung-dung-python.md)
- [Máy pha cafe phù hợp xe đẩy](/post/2024/06/may-pha-cafe-phu-hop-xe-day.md)
- [Lập trình ESP32 với Rust: cập nhật firmware OTA](/post/2024/03/lap-trinh-esp32-voi-rust-cap-nhat-firmware-ota.md)
- [Programming ESP32 with Rust: OTA firmware update](/post/2024/03/programming-esp32-with-rust-ota-firmware-update.md)
- [Configure proxy for APT to download faster](/post/2024/03/configure-proxy-for-apt-to-download-faster.md)
- [Thông báo về tình trạng API tỉnh thành Việt Nam](/post/2024/02/thong-bao-ve-tinh-trang-api-tinh-thanh-viet-nam.md)
- [Làm việc từ xa bằng máy tính ở nhà](/post/2023/12/lam-viec-tu-xa-bang-may-tinh-o-nha.md)
- [PlatformIO hangs when installing packages](/post/2023/12/platformio-hangs-when-installing-packages.md)
- [Setup Gel (formerly EdgeDB) for single-server deployment](/post/2023/11/setup-edgedb-for-single-server-deployment.md)
- ["Oxy hóa" nền tảng IoT nông nghiệp bằng Rust](/post/2023/10/oxy-hoa-nen-tang-iot-nong-nghiep-bang-rust.md)
- [Filter out bot visits from Gunicorn log](/post/2023/09/filter-out-bot-visits-from-gunicorn-log.md)
- [How to find the largest files](/post/2023/09/how-to-find-largest-files.md)
- [Theo dõi bài mới qua feeds](/post/2023/09/theo-doi-bai-moi-qua-feeds.md)
- [Querying EdgeDB with named parameters in Rust](/post/2023/08/querying-edgedb-with-name-parameters-in-rust.md)
- [Tận dụng phong cách xử trí lỗi của Rust trong lập trình web](/post/2023/08/tan-dung-phong-cach-xu-tri-loi-cua-rust-trong-lap-trinh-web.md)
- [Đăng ký tạm trú cho người thuê nhà tại Vinhomes Grand Park](/post/2023/08/dang-ky-tam-tru-cho-nguoi-thue-nha-tai-vinhomes-grand-park.md)
- [How to split Nginx logs for bot visits](/post/2023/07/how-to-split-nginx-logs-for-bot-visits.md)
- [Website phiên bản mới từ ruột](/post/2023/07/website-phien-ban-moi-tu-ruot.md)
- [Tại sao trên Linux hay dùng những định dạng file nén như *.gz, *.xz thay vì *.zip, *.7z?](/post/2023/03/tai-sao-tren-linux-hay-dung-nhung-dinh-dang-file-nen-nhu-gz-xz-thay-vi-zip-7z.md)
- [Suppress Django error reporting email](/post/2023/03/suppress-django-error-reporting-email.md)
- [Phần mềm để nạp firmware OpenWrt trong chế độ recovery](/post/2023/02/phan-mem-de-nap-firmware-openwrt-trong-che-do-recovery.md)
- [Xem thông tin phần cứng máy ảnh được nhúng trong file hình](/post/2023/01/xem-thong-tin-phan-cung-may-anh-duoc-nhung-trong-file-hinh.md)
- [Món cá nướng lá chúc Campuchia](/post/2023/01/mon-ca-nuong-la-chuc-campuchia.md)
- [Chuyển ảnh số lượng lớn từ điện thoại vào máy tính](/post/2022/11/chuyen-anh-so-luong-lon-tu-dien-thoai-vao-may-tinh.md)
- [Tiềm năng ứng dụng thực tế của blockchain & Web3](/post/2022/11/tiem-nang-ung-dung-thuc-te-cua-blockchain-web3.md)
- [Enable auto-completion for Solana CLI](/post/2022/10/enable-auto-completion-for-solana-cli.md)
- [Công cụ tra cứu nơi sinh từ mã định danh cá nhân](/post/2022/08/cong-cu-tra-cuu-noi-sinh-tu-ma-dinh-danh-ca-nhan.md)
- [Một số trục trặc khi nâng cấp server từ Ubuntu 20.04 lên 22.04](/post/2022/06/mot-so-truc-trac-khi-nang-cap-server-tu-ubuntu-20-04-len-22-04.md)
- [Fix missing key issue for Slack APT repo in Debian/Ubuntu](/post/2022/05/fix-missing-key-issue-for-slack-apt-repo-in-debian-ubuntu.md)
- [Lưu đọng dữ liệu Iconify để dùng offline](/post/2022/03/luu-dong-du-lieu-iconify-de-dung-offline.md)
- [Nhầm lẫn về tên thủ đô Thái Lan](/post/2022/02/nham-lan-ve-ten-thu-do-thai-lan.md)
- [Phần mềm nguồn mở giữa một dư luận thiếu hiểu biết nhưng thích chửi bới](/post/2021/11/phan-mem-nguon-mo-giua-mot-du-luan-thieu-hieu-biet-nhung-thich-chui-boi.md)
- [Trải nghiệm lần đầu viết thư viện Python từ ngôn ngữ biên dịch](/post/2021/10/trai-nghiem-lan-dau-viet-thu-vien-python-tu-ngon-ngu-bien-dich.md)
- [Họ tên có phản ánh nguồn gốc dân tộc không?](/post/2021/10/ho-ten-co-phan-anh-nguon-goc-dan-toc-khong.md)
- [Khởi đầu dự án Python như thế nào để thuận tiện phát triển lên](/post/2021/08/khoi-dau-du-an-python-nhu-the-nao-de-thuan-tien-phat-trien-len.md)
- [API mở cung cấp dữ liệu công cộng Việt Nam](/post/2021/08/api-mo-cung-cap-du-lieu-cong-cong-viet-nam.md)
- [Tự dựng proxy để truy cập web nước ngoài nhanh hơn](/post/2021/06/tu-dung-proxy-de-truy-cap-web-nuoc-ngoai-nhanh-hon.md)
- [Khắc phục tình trạng VPN WireGuard bị treo](/post/2021/06/khac-phuc-tinh-trang-vpn-wireguard-bi-treo.md)
- [Giao diện mới](/post/2021/05/giao-dien-moi.md)
- [Viết hàm thêm cho PostgreSQL: Chú voi bay](/post/2020/11/viet-ham-them-cho-postgresql-chu-voi-bay.md)
- [Dùng Python viết hàm xử lý dữ liệu dưới tầng database cho PostgreSQL](/post/2020/11/dung-python-viet-ham-xu-ly-du-lieu-duoi-tang-database-cho-postgresql.md)
- [Mát máy sau khi chuyển từ InfluxDB sang TimescaleDB](/post/2020/11/mat-may-sau-khi-chuyen-tu-influxdb-sang-timescaledb.md)
- [Một số mẹo cho việc phát triển ứng dụng hệ thống nhúng](/post/2020/08/mot-so-meo-cho-viec-phat-trien-ung-dung-he-thong-nhung.md)
- [Chuyển đổi Unicode dựng sẵn & tổ hợp với Python](/post/2020/07/chuyen-doi-unicode-dung-san-to-hop-voi-python.md)
- [Áp dụng quy trình hiện đại khi làm phần mềm cho hệ thống nhúng](/post/2020/06/ap-dung-quy-trinh-hien-dai-khi-lam-phan-mem-cho-he-thong-nhung.md)
- [CoBang, phần mềm quét mã QR cho Linux](/post/2020/06/cobang-phan-mem-quet-ma-qr-cho-linux.md)
- [Dữ liệu chuẩn về bảng mã các địa phương Việt Nam](/post/2020/03/Du-lieu-chuan-ve-bang-ma-cac-dia-phuong-Viet-Nam.md)
- [Tạo kho lưu cho các gói thư viện Python](/post/2020/02/tao-kho-luu-cho-cac-goi-thu-vien-python.md)
- [Bút nhớ USB tốc độ cao](/post/2019/12/But-nho-USB-toc-do-cao.md)
- [Bắt hình của IP Camera từ ứng dụng Python](/post/2019/11/bat-hinh-cua-ip-camera-tu-ung-dung-python.md)
- [Dùng Flask hay Django?](/post/2019/11/dung-flask-hay-django.md)
- [Install GitLab-Runner in Ubuntu 19.04 and 19.10](/post/2019/10/install-gitlab-runner-in-ubuntu-19-04-and-19-10.md)
- [Lại tản mạn về vai trò của Linux](/post/2019/08/lai-tan-man-ve-vai-tro-cua-linux.md)
- [Combining SSH and subprocess pipe in Python asyncio](/post/2019/04/Combining-SSH-and-subprocess-pipe-in-Python-asyncio.md)
- [Yếu tố Đông Nam Á trong văn hóa Việt Nam, ghi chép 1](/post/2019/03/Yeu-to-Dong-Nam-A-trong-van-hoa-Viet-Nam-ghi-chep-1.md)
- [Python và cách tiết kiệm dung lượng cho phần mềm nhúng](/post/2019/01/python-va-cach-tiet-kiem-dung-luong-cho-phan-mem-nhung.md)
- [Let VirtualBox bridge network adapter work with Alpine Linux guest](/post/2018/12/let-virtualbox-bridge-network-adapter-work-with-alpine-linux-guest.md)
- [Dựng mạng VPN với WireGuard](/post/2018/09/dung-mang-vpn-voi-wireguard.md)
- [Câu chuyện sử dụng VPN](/post/2018/09/cau-chuyen-su-dung-vpn.md)
- [A forgotten GUI tool for flashing SD card and USB drives](/post/2018/08/a-forgotten-gui-tool-for-flashing-sd-card-and-usb-drives.md)
- [Đặt sẵn cấu hình cho firmware OpenWrt từ khi build](/post/2018/06/dat-san-cau-hinh-cho-firmware-openwrt-tu-khi-build.md)
- [Cơn bệnh tưởng blockchain trong nền nông nghiệp mới](/post/2018/05/con-benh-tuong-blockchain-trong-nen-nong-nghiep-moi.md)
- [Make Tilix work with Nautilus 3.28](/post/2018/05/make-tilix-work-with-nautilus-3-28.md)
- [A need of an asyncio Python library for MiFlora sensor](/post/2018/04/a-need-of-an-asyncio-python-library-for-miflora-sensor.md)
- [Nhu cầu về điện toán đám mây của một đơn vị ứng dụng IoT](/post/2018/03/nhu-cau-ve-dien-toan-dam-may-cua-mot-don-vi-ung-dung-iot.md)
- [Thức ăn thu hút yến](/post/2018/03/thuc-an-thu-hut-yen.md)
- [Trải nghiệm IBM Cloud](/post/2018/02/trai-nghiem-ibm-cloud.md)
- [Mua mực khi ghé qua Bà Rịa](/post/2018/02/mua-muc-khi-ghe-qua-ba-ria.md)
- [Flash BeagleBone firmware](/post/2018/02/flash-beaglebone-firmware.md)
- [Đi bộ từ KL Sentral đến Bảo tàng Quốc gia Malaysia](/post/2018/01/di-bo-tu-kl-sentral-den-bao-tang-quoc-gia-malaysia.md)
- [Be careful with Python asyncio.wait](/post/2017/12/be-careful-with-python-asyncio-wait.md)
- [Nâng cấp Debian cho BeagleBone Black](/post/2017/11/nang-cap-debian-cho-beaglebone-black.md)
- [My packages store for BeagleBone running Debian 9](/post/2017/11/my-packages-store-for-beaglebone-running-debian-9.md)
- [Một tuần dãi nắng dầm sương vì rùa biển](/post/2017/08/mot-tuan-dai-nang-dam-suong-vi-rua-bien.md)
- [Fix: Gitg doesn't use monospace font in Ubuntu](/post/2017/06/fix-gitg-doesn-t-use-monospace-font-in-ubuntu.md)
- [Phần mềm nguồn mở và chủ nghĩa xã hội](/post/2017/04/phan-mem-nguon-mo-va-chu-nghia-xa-hoi.md)
- [Chuột không dây mau hư, cứu làm sao](/post/2017/03/chuot-khong-day-mau-hu-cuu-lam-sao.md)
- [Creating PostgreSQL cluster in portable hard drive](/post/2016/10/creating-postgresql-cluster-in-portable-hard-drive.md)
- [Bất cập của IoT](/post/2016/10/bat-cap-cua-iot.md)
- [Repository cho Ubuntu ARM gần Việt Nam](/post/2016/09/repository-cho-ubuntu-arm-gan-viet-nam.md)
- [Danh sách DNS tại Việt Nam](/post/2016/09/danh-sach-dns-tai-viet-nam.md)
- [Chứng chỉ số SSL miễn phí](/post/2016/08/chung-chi-so-ssl-mien-phi.md)
- [Trang web chia sẻ file tốc độ cao tại Việt Nam](/post/2016/07/trang-web-chia-se-file-toc-do-cao-tai-viet-nam.md)
- [Ubuntu chạy sai giờ sau khi upgrade](/post/2016/07/ubuntu-chay-sai-gio-sau-khi-upgrade.md)
- [Get syntax highlight for Jinja2-like template in Komodo](/post/2016/07/get-syntax-highlight-for-jinja2-like-template-in-komodo.md)
- [Mĩ đánh bại phát xít Đức năm 1945 thế nào?](/post/2016/04/mi-danh-bai-phat-xit-duc-nam-1945-the-nao.md)
- [Độ tin cậy của Mĩ trong vấn đề nhà máy Formosa](/post/2016/04/do-tin-cay-cua-mi-trong-van-de-nha-may-formosa.md)
- [Việt Nam chỉ coi Đài Loan là vùng lãnh thổ](/post/2016/04/viet-nam-chi-coi-dai-loan-la-vung-lanh-tho.md)
- [Khi wifi trên laptop bị hư](/post/2016/04/khi-wifi-tren-laptop-bi-hu.md)
- [Chuyển tiền từ Malaysia về Việt Nam](/post/2016/03/chuyen-tien-tu-malaysia-ve-viet-nam.md)
- [Internet in Viet Nam looks good](/post/2016/03/internet-in-viet-nam-looks-good.md)
- [Việt Nam đầu tư đô thị đồng đều hơn](/post/2016/03/viet-nam-dau-tu-do-thi-dong-deu-hon.md)
- [Vai trò của Nginx đối với web app](/post/2016/01/vai-tro-cua-nginx-doi-voi-web-app.md)
- [Thái độ của Malaysia đối với mại dâm](/post/2015/12/thai-do-cua-malaysia-doi-voi-mai-dam.md)
- [New nginx makes PHP website return blank page](/post/2015/11/new-nginx-makes-php-website-return-blank-page.md)
- [Logo vui](/post/2015/10/logo-vui.md)
- [Issue after upgrading to Ubuntu 15.10](/post/2015/10/issue-after-upgrading-to-ubuntu-15-10.md)
- [Truy cập nhanh giao diện dòng lệnh của PostgreSQL](/post/2015/10/truy-cap-nhanh-giao-dien-dong-lenh-cua-postgresql.md)
- [Setup router to work with Malaysian TM Unifi service](/post/2015/10/setup-router-to-work-with-malaysian-tm-unifi-service.md)
- [Thẻ chi trả đi lại ở Malaysia](/post/2015/09/the-chi-tra-di-lai-o-malaysia.md)
- [Nhà nghỉ rẻ ở Cần Thơ](/post/2015/09/nha-nghi-re-o-can-tho.md)
- [Chó chê mèo lắm lông](/post/2015/09/cho-che-meo-lam-long.md)
- [Khác nhau giữa "home" và "house"](/post/2015/09/khac-nhau-giua-home-va-house.md)
- [Sử dụng template nunjucks cho ứng dụng JavaScript, ban đầu bối rối nhưng kết quả tuyệt vời](/post/2015/08/su-dung-template-nunjucks-cho-ung-dung-javascript-ban-dau-boi-roi-nhung-ket-qua-tuyet-voi.md)
- [Build OpenWrt từ nguồn](/post/2015/07/build-openwrt-tu-nguon.md)
- [Tập bơi đi](/post/2015/06/tap-boi-di.md)
- [Building debian package for Nginx + pagespeed + passenger modules](/post/2015/03/building-debian-package-for-nginx-pagespeed-passenger-modules.md)
- [Việc làm cho người Việt tại Malaysia](/post/2014/12/viec-lam-cho-nguoi-viet-tai-malaysia.md)
- [Flask extension and isinstance conflict](/post/2014/10/flask-extension-and-isinstance-conflict.md)
- [Another way to make Python web app do concurrency](/post/2014/09/another-way-to-make-python-web-app-do-concurrency.md)
- [Thay thế firmware cho router wifi bằng OpenWrt](/post/2014/09/thay-the-firmware-cho-router-wifi-bang-openwrt.md)
- [Sự chia cắt của Việt Nam dưới thời Pháp](/post/2014/08/su-chia-cat-cua-viet-nam-duoi-thoi-phap.md)
- [Thiết bị mã hóa, smartcard và OpenSC (phần 1)](/post/2014/07/thiet-bi-ma-hoa-smartcard-va-opensc-phan-1.md)
- [Flask-SQLAlchemy consuming 100% CPU with multi-thread WSGI server.](/post/2014/06/flask-sqlalchemy-consuming-100-cpu-with-multi-thread-wsgi-server.md)
- [Tạo nhanh web/FTP server với Python](/post/2014/05/tao-nhanh-web-ftp-server-voi-python.md)
- [Thu thập log của Flask với Logentries](/post/2013/12/thu-thap-log-cua-flask-voi-logentries.md)
- [Hello world](/post/2013/12/hello-world.md)