<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blogs on nuteo.info</title><link>https://nuteo.info/blog/</link><description>Recent content in Blogs on nuteo.info</description><generator>Hugo</generator><language>th</language><copyright>© 2026 Nuteo</copyright><lastBuildDate>Mon, 03 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://nuteo.info/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Postmortem: วันที่ Postgres ทำเว็บล่ม</title><link>https://nuteo.info/blog/postmortem-postgres-outage/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://nuteo.info/blog/postmortem-postgres-outage/</guid><description>&lt;h1 id="postmortem-วนท-postgres-ทำเวบลม"&gt;Postmortem: วันที่ Postgres ทำเว็บล่ม&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;สรุปสั้น&lt;/strong&gt;: Index ที่หายไปใน foreign key column รวมกับ cron job ที่รัน
ตอน peak hours ทำให้ billing API ล่ม 47 นาที&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="timeline-เวลา-utc-ทงหมด"&gt;Timeline (เวลา UTC ทั้งหมด)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;14:00&lt;/strong&gt; — Cron job เริ่ม: &lt;code&gt;cleanup_old_invoices.sh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:02&lt;/strong&gt; — ลูกค้าแจ้ง checkout ช้า&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:05&lt;/strong&gt; — PagerDuty alert: API latency p99 &amp;gt; 5s&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:08&lt;/strong&gt; — On-call engineer (ผม) เปิด laptop&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:14&lt;/strong&gt; — ระบุได้: Postgres CPU 100% มี &lt;code&gt;DELETE&lt;/code&gt; queries รอหลายร้อยตัว&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:22&lt;/strong&gt; — Kill cron job แบบ manual → queries drain ใน ~30s&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:25&lt;/strong&gt; — Service เริ่มฟื้น&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:47&lt;/strong&gt; — ฟื้นเต็มที่ replication catch up แล้ว&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ผลกระทบ&lt;/strong&gt;: 47 นาทีที่ service ช้า ~120 transactions fail&lt;/p&gt;</description></item><item><title>ยินดีต้อนรับสู่ nuteo.info</title><link>https://nuteo.info/blog/welcome/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://nuteo.info/blog/welcome/</guid><description>&lt;h1 id="-ยนดตอนรบ"&gt;👋 ยินดีต้อนรับ&lt;/h1&gt;
&lt;p&gt;เว็บใช้งานได้แล้ว ดีไซน์ทำงาน content pipeline ใช้ AI ช่วย ถึงเวลาเล่า
ว่านี่คืออะไรและทำไม&lt;/p&gt;
&lt;h2 id="ตอนนใชงานได"&gt;ตอนนี้ใช้งานได้&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;✅ Hugo + custom theme (dark เป็นค่า default, gradient hero)&lt;/li&gt;
&lt;li&gt;✅ สองภาษา: TH + EN สลับได้จาก header&lt;/li&gt;
&lt;li&gt;✅ Sections: &lt;a href="https://nuteo.info/th/work/"&gt;Work&lt;/a&gt;, &lt;a href="https://nuteo.info/th/guides/"&gt;Guides&lt;/a&gt;, &lt;a href="https://nuteo.info/th/tools/"&gt;Tools&lt;/a&gt;, &lt;a href="https://nuteo.info/th/blog/"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;✅ RSS, sitemap, OpenGraph&lt;/li&gt;
&lt;li&gt;✅ Git-tracked&lt;/li&gt;
&lt;li&gt;✅ Deploy ผ่าน Docker + Caddy zero-downtime&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ตอไปจะม"&gt;ต่อไปจะมี&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;🔍 Full-text search (Pagefind)&lt;/li&gt;
&lt;li&gt;💬 Comments ผ่าน Giscus (GitHub Discussions)&lt;/li&gt;
&lt;li&gt;📊 Analytics (Plausible — privacy-friendly)&lt;/li&gt;
&lt;li&gt;📝 คู่มือ + postmortems เพิ่มเติม&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="การทดลอง-ai-ในหนงยอหนา"&gt;การทดลอง AI ในหนึ่งย่อหน้า&lt;/h2&gt;
&lt;p&gt;ทุกชิ้นของ content ในเว็บนี้ร่างโดย AI
ทุกบรรทัดของ theme CSS เขียนโดย AI ทุก Docker config ทุก Caddyfile
ทุก deploy script ผมตรวจทานและแก้ ผมตัดสินใจ แต่การพิมพ์? AI&lt;/p&gt;</description></item></channel></rss>