<?xml version="1.0" encoding="UTF-8"?>
<!--generator='jetpack-16.5-a.1'-->
<!--Jetpack_Sitemap_Buffer_News_XMLWriter-->
<?xml-stylesheet type="text/xsl" href="//linhfish.dev/news-sitemap.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
 <url>
  <loc>https://linhfish.dev/2026/11/15/javascript-sao-chep-sau-object-bang-structuredclone-khoi-lo-mat-date-va-vong-lap-tham-chieu/</loc>
  <lastmod>2026-11-15T09:05:49Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>JavaScript: sao chép sâu object bằng structuredClone, khỏi lo mất Date và vòng lặp tham chiếu</news:title>
   <news:publication_date>2026-11-15T09:05:48Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/15/flask-hien-thong-bao-flash-sau-khi-submit-form-redirect-ma-khong-mat-thong-bao/</loc>
  <lastmod>2026-11-15T07:12:05Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: hiện thông báo flash sau khi submit form — redirect mà không mất thông báo</news:title>
   <news:publication_date>2026-11-15T07:12:03Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/15/wagtail-8-1-chon-django-ninja-thay-drf-cho-api-v3-schema-sinh-tu-type-hint-va-cai-gia-phai-tra/</loc>
  <lastmod>2026-11-15T05:11:55Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Wagtail 8.1 chọn Django Ninja thay DRF cho API v3: schema sinh từ type hint và cái giá phải trả</news:title>
   <news:publication_date>2026-11-15T05:11:55Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/15/fastapi-doc-header-va-cookie-dung-cach-bang-header-va-cookie-trong-5-phut/</loc>
  <lastmod>2026-11-15T03:07:25Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: đọc Header và Cookie đúng cách bằng Header() và Cookie() trong 5 phút</news:title>
   <news:publication_date>2026-11-15T03:07:24Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/15/fastapi-0-163-0-gioi-han-so-request-dung-chung-mot-dependency-bang-dependsmax_concurrency/</loc>
  <lastmod>2026-11-15T01:14:32Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI 0.163.0: giới hạn số request dùng chung một dependency bằng Depends(max_concurrency=...)</news:title>
   <news:publication_date>2026-11-15T01:14:30Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/15/django-viet-test-cho-view-bang-testcase-va-client-bat-loi-truoc-khi-deploy-trong-5-phut/</loc>
  <lastmod>2026-11-14T23:08:34Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: viết test cho view bằng TestCase và Client — bắt lỗi trước khi deploy trong 5 phút</news:title>
   <news:publication_date>2026-11-14T23:08:33Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/14/django-in-production-18-zero-downtime-deploys-blue-green-rolling-migration-order-and-restarts/</loc>
  <lastmod>2026-11-14T15:25:45Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django in Production #18: Zero-Downtime Deploys — Blue-Green/Rolling, Migration Order and Restarts</news:title>
   <news:publication_date>2026-11-14T15:24:41Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/node-js-va-16-lo-hong-bao-mat-trong-ban-26-13-1-24-22-3-va-22-23-5-nang-cap-ngay-neu-server-chay-https-hoac-http-2/</loc>
  <lastmod>2026-11-14T15:24:23Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Node.js vá 16 lỗ hổng bảo mật trong bản 26.13.1, 24.22.3 và 22.23.5: nâng cấp ngay nếu server chạy HTTPS hoặc HTTP/2</news:title>
   <news:publication_date>2026-11-14T15:24:21Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/14/django-use-auto_now-and-auto_now_add-correctly-when-to-switch-to-defaulttimezone-now/</loc>
  <lastmod>2026-11-14T15:11:46Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Use auto_now and auto_now_add Correctly — When to Switch to default=timezone.now</news:title>
   <news:publication_date>2026-11-14T15:10:42Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/14/flask-track-the-request-lifecycle-with-signals-catch-500-errors-and-time-requests-without-touching-your-views/</loc>
  <lastmod>2026-11-14T14:59:06Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: Track the Request Lifecycle with Signals — Catch 500 Errors and Time Requests Without Touching Your Views</news:title>
   <news:publication_date>2026-11-14T14:57:05Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/14/django-handle-file-uploads-with-filefield-and-imagefield-in-5-minutes/</loc>
  <lastmod>2026-11-14T14:46:37Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Handle File Uploads with FileField and ImageField in 5 Minutes</news:title>
   <news:publication_date>2026-11-14T14:45:41Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/14/fastapi-partial-updates-with-patch-and-exclude_unset-stop-clients-overwriting-data/</loc>
  <lastmod>2026-11-14T14:36:35Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: Partial Updates with PATCH and exclude_unset — Stop Clients Overwriting Data</news:title>
   <news:publication_date>2026-11-14T14:35:56Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/django-van-hanh-production-18-deploy-khong-downtime-blue-green-rolling-thu-tu-chay-migrations-va-restart/</loc>
  <lastmod>2026-11-14T13:21:41Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django vận hành production #18: Deploy không downtime — blue-green/rolling, thứ tự chạy migrations và restart</news:title>
   <news:publication_date>2026-11-14T13:21:40Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/linh-fish-dev-podcast-33-django-dung-auto_now-va-auto_now_add-dung-cach-khi-nao-nen-thay-bang-defaulttimezone-now/</loc>
  <lastmod>2026-11-14T12:50:46Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Linh Fish Dev Podcast #33: Django: dùng auto_now và auto_now_add đúng cách — khi nào nên thay bằng default=timezone.now</news:title>
   <news:publication_date>2026-11-14T12:50:44Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/django-dung-auto_now-va-auto_now_add-dung-cach-khi-nao-nen-thay-bang-defaulttimezone-now/</loc>
  <lastmod>2026-11-14T09:05:57Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: dùng auto_now và auto_now_add đúng cách — khi nào nên thay bằng default=timezone.now</news:title>
   <news:publication_date>2026-11-14T09:05:55Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/flask-theo-doi-vong-doi-request-bang-signals-bat-loi-500-va-do-thoi-gian-khong-can-sua-view/</loc>
  <lastmod>2026-11-14T07:13:24Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: theo dõi vòng đời request bằng signals — bắt lỗi 500 và đo thời gian không cần sửa view</news:title>
   <news:publication_date>2026-11-14T07:13:23Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/pep-852-python-sap-cho-code-c-viet-ham-async-await-cuoi-cung-cung-toi-duoc-c-api/</loc>
  <lastmod>2026-11-14T05:19:28Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>PEP 852: Python sắp cho code C viết hàm async — `await` cuối cùng cũng tới được C API</news:title>
   <news:publication_date>2026-11-14T05:19:27Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/django-xu-ly-upload-file-bang-filefield-va-imagefield-trong-5-phut/</loc>
  <lastmod>2026-11-14T03:21:35Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: xử lý upload file bằng FileField và ImageField trong 5 phút</news:title>
   <news:publication_date>2026-11-14T03:21:33Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/tim-peters-1952-2026-nguoi-viet-zen-of-python-va-cha-de-cua-timsort-da-ra-di/</loc>
  <lastmod>2026-11-14T01:24:16Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Tim Peters (1952–2026): người viết Zen of Python và cha đẻ của Timsort đã ra đi</news:title>
   <news:publication_date>2026-11-14T01:24:15Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/14/fastapi-cap-nhat-mot-phan-voi-patch-va-exclude_unset-dung-de-client-ghi-de-du-lieu/</loc>
  <lastmod>2026-11-13T23:07:49Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: cập nhật một phần với PATCH và exclude_unset — đừng để client ghi đè dữ liệu</news:title>
   <news:publication_date>2026-11-13T23:07:48Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/13/django-in-production-17-ci-cd-with-github-actions-automated-tests-then-deploy/</loc>
  <lastmod>2026-11-13T15:37:54Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django in Production #17: CI/CD with GitHub Actions — Automated Tests, Then Deploy</news:title>
   <news:publication_date>2026-11-13T15:36:33Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/fastapi-0-162-6-bo-ho-tro-python-3-10-da-den-luc-nang-cap/</loc>
  <lastmod>2026-11-13T15:30:22Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI 0.162.6 bỏ hỗ trợ Python 3.10: đã đến lúc nâng cấp</news:title>
   <news:publication_date>2026-11-13T15:30:20Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/13/fastapi-accept-multiple-body-parameters-with-body-when-you-need-embedtrue-in-5-minutes/</loc>
  <lastmod>2026-11-13T15:24:29Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: Accept Multiple Body Parameters with Body() — When You Need embed=True in 5 Minutes</news:title>
   <news:publication_date>2026-11-13T15:23:28Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/13/flask-stop-requests-the-standard-way-with-abort-404-403-with-custom-error-pages-in-5-minutes/</loc>
  <lastmod>2026-11-13T15:12:27Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: Stop Requests the Standard Way with abort() — 404/403 with Custom Error Pages in 5 Minutes</news:title>
   <news:publication_date>2026-11-13T15:10:44Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/13/django-get-the-first-last-and-newest-record-the-right-way-with-first-last-latest-and-earliest/</loc>
  <lastmod>2026-11-13T14:54:41Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Get the First, Last, and Newest Record the Right Way with first(), last(), latest(), and earliest()</news:title>
   <news:publication_date>2026-11-13T14:52:06Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/en/2026/11/13/django-use-raw-sql-safely-when-the-orm-isnt-enough-objects-raw-and-cursor-in-5-minutes/</loc>
  <lastmod>2026-11-13T14:39:42Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: Use Raw SQL Safely When the ORM Isn&amp;#039;t Enough — objects.raw() and cursor() in 5 Minutes</news:title>
   <news:publication_date>2026-11-13T14:38:07Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/django-van-hanh-production-17-ci-cd-voi-github-actions-test-tu-dong-roi-deploy/</loc>
  <lastmod>2026-11-13T13:08:59Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django vận hành production #17: CI/CD với GitHub Actions — test tự động rồi deploy</news:title>
   <news:publication_date>2026-11-13T13:08:57Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/linh-fish-dev-podcast-32-fastapi-nhan-nhieu-tham-so-body-bang-body-khi-nao-can-embedtrue-trong-5-phut/</loc>
  <lastmod>2026-11-13T12:37:14Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Linh Fish Dev Podcast #32: FastAPI: nhận nhiều tham số body bằng Body() — khi nào cần embed=True trong 5 phút</news:title>
   <news:publication_date>2026-11-13T12:37:12Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/pypi-them-tab-bao-mat-kiem-tra-package-co-xuat-xu-ro-rang-truoc-khi-pip-install/</loc>
  <lastmod>2026-11-13T11:10:11Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>PyPI thêm tab Bảo mật: kiểm tra package có &amp;quot;xuất xứ&amp;quot; rõ ràng trước khi pip install</news:title>
   <news:publication_date>2026-11-13T11:10:10Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/fastapi-nhan-nhieu-tham-so-body-bang-body-khi-nao-can-embedtrue-trong-5-phut/</loc>
  <lastmod>2026-11-13T09:03:43Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>FastAPI: nhận nhiều tham số body bằng Body() — khi nào cần embed=True trong 5 phút</news:title>
   <news:publication_date>2026-11-13T09:03:41Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/flask-dung-request-dung-chuan-bang-abort-404-403-kem-trang-loi-tuy-chinh-trong-5-phut/</loc>
  <lastmod>2026-11-13T07:10:39Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Flask: dừng request đúng chuẩn bằng abort() — 404/403 kèm trang lỗi tùy chỉnh trong 5 phút</news:title>
   <news:publication_date>2026-11-13T07:10:38Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/django-lay-ban-ghi-dau-tien-cuoi-cung-va-moi-nhat-dung-cach-bang-first-last-latest-va-earliest/</loc>
  <lastmod>2026-11-13T03:13:12Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: lấy bản ghi đầu tiên, cuối cùng và mới nhất đúng cách bằng first(), last(), latest() và earliest()</news:title>
   <news:publication_date>2026-11-13T03:13:10Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
 <url>
  <loc>https://linhfish.dev/2026/11/13/django-dung-raw-sql-an-toan-khi-orm-khong-du-objects-raw-va-cursor-trong-5-phut/</loc>
  <lastmod>2026-11-12T23:19:01Z</lastmod>
  <news:news>
   <news:publication>
    <news:name>Linh Fish Dev</news:name>
    <news:language>vi</news:language>
   </news:publication>
   <news:title>Django: dùng raw SQL an toàn khi ORM không đủ — objects.raw() và cursor() trong 5 phút</news:title>
   <news:publication_date>2026-11-12T23:18:59Z</news:publication_date>
   <news:genres>Blog</news:genres>
  </news:news>
 </url>
</urlset>