EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC

บันทึกงานเซิร์ฟเวอร์จริง ที่ลงมือทำเอง แล้วเขียนให้คนอื่นใช้ต่อได้

187 บทความ
08 หมวดหมู่

สัปดาห์นี้

ดูทั้งหมด
★ บทความเด่นประจำเล่ม process ลูกค้างเพราะไม่มีใครอ่าน stderr และตายเพราะคนอ่านปิดไปแล้ว
Linux

process ลูกค้างเพราะไม่มีใครอ่าน stderr และตายเพราะคนอ่านปิดไปแล้ว

เซิร์ฟเวอร์แบบ stdio ที่เคยผ่าน smoke test 9/9 ค้างนิ่งหลังเพิ่ม debug log ลง stderr บรรทัดละ 4 KB เพราะตัวเรียกเปิดท่อไว้แต่ไม่เคยอ่าน อีกด้านหนึ่ง process ลูกที่ต้องรันต่อหลังหน้าจอปิดจะพังทุกครั้งที่พิมพ์ ถ้า stdout ของมันเป็น pipe ที่ปลายอ่านตายไปแล้ว พร้อมวิธีส่ง handle ของไฟล์ให้ลูกสืบทอดด้วย CreateProcess จาก C#

#ipc#csharp#dotnet#windows#debugging
อ่าน 12 นาที·3 พ.ย. 2026

เริ่มต้นที่นี่

ค่อย ๆ เรียนรู้จากงานจริง

บทความล่าสุด

ดูทั้งหมด →
XAMPP MySQL ดับเองเพราะ Aria log เสีย: ซ่อมโดยไม่ลบข้อมูล
Web

XAMPP MySQL ดับเองเพราะ Aria log เสีย: ซ่อมโดยไม่ลบข้อมูล

XAMPP MySQL สตาร์ตไม่ขึ้นหลังไฟดับและ panel ขึ้นแดง สาเหตุคือ Aria log ของตารางระบบเสีย ไม่ใช่ข้อมูล InnoDB บันทึกขั้นตอนอ่าน log จริง แยก Aria ออกจาก InnoDB สำรองก่อน แล้วซ่อมด้วย aria_chk โดยไม่ต้องลบฐานข้อมูล

#xampp#mariadb#mysql#windows
อ่าน 9 นาที·2 พ.ย.
ไฟล์ดาวน์โหลด 28 ไฟล์ชื่อเป็นเวลา จับคู่กลับงานด้วยเสียงและ Hungarian
Linux

ไฟล์ดาวน์โหลด 28 ไฟล์ชื่อเป็นเวลา จับคู่กลับงานด้วยเสียงและ Hungarian

ได้ไฟล์วิดีโอ 28 ไฟล์ที่ตั้งชื่อด้วยวันที่กับเวลา ไม่รู้ว่าไฟล์ไหนของงานไหน ผมกู้ความสัมพันธ์ด้วยเสียงร้องที่ฝังอยู่ในไฟล์ correlate กับแทร็กอ้างอิงเป็นเมทริกซ์ 28x28 แล้วใช้ linear_sum_assignment จับคู่หนึ่งต่อหนึ่ง รับเฉพาะคะแนนเกิน 0.90 และคัดลอกพร้อมตรวจ SHA-256

#scipy#python#ffmpeg#audit
อ่าน 10 นาที·2 พ.ย.
ผูก Claude CLI เข้าห้อง Telegram บน Windows บอทตอบใน 0 วินาที
AI

ผูก Claude CLI เข้าห้อง Telegram บน Windows บอทตอบใน 0 วินาที

ทำตัวห่อ Python รับข้อความจากห้อง Telegram แล้วป้อนเข้า Claude Code CLI แบบ headless บน Windows เจอกับดักสี่ข้อติดกันในคืนเดียว ตั้งแต่ cmd.exe ตัดข้อความหลายบรรทัด บอทตอบใน 0 วินาทีเพราะโปรเซสไม่ได้รัน ไปจนถึง agent รายงานว่าส่งไฟล์แล้วทั้งที่ไฟล์ไปเข้าแชทอื่น

#claude-code#claude#ai-agent#telegram
อ่าน 11 นาที·2 พ.ย.
เว็บเก่าขึ้น 500 เฉพาะเข้าครั้งที่สองของวัน หลังขึ้น PHP 8.1
Web

เว็บเก่าขึ้น 500 เฉพาะเข้าครั้งที่สองของวัน หลังขึ้น PHP 8.1

ตั้งแต่ PHP 8.1 mysqli โยน exception เป็นค่าเริ่มต้น โค้ดเก่าที่ INSERT ซ้ำแล้วเคยเงียบเลยทำให้หน้าตายเฉพาะครั้งที่สองของวันจาก IP เดิม เช็กหน้าเดียวครั้งเดียวไม่เจอ บันทึกวิธีพิสูจน์ วิธีแก้ด้วย INSERT IGNORE และกฎทดสอบสองรอบหลังขึ้น PHP ใหม่

#php#mysql#mariadb#debugging
อ่าน 9 นาที·1 พ.ย.
แก้หน้าสิบครั้งยิง IndexNow สิบครั้ง: ใช้คิวกับ debounce ใน Laravel
Web

แก้หน้าสิบครั้งยิง IndexNow สิบครั้ง: ใช้คิวกับ debounce ใน Laravel

เว็บ Laravel สองฉบับ ไทยกับอังกฤษ ที่อยากให้ Bing รู้ทันทีเมื่อหน้าเพิ่ม แก้ หรือถูกถอด แต่ถ้ายิง IndexNow ทุกครั้งที่บันทึกจะโดนบล็อกและเปลืองโควตา ผมเลยเก็บ URL เข้าตารางคิวด้วย model event รอให้เงียบ 120 วินาทีแล้วส่งเป็นชุดจาก cron ทุก 5 นาที พร้อมกติกาถอยและตาข่ายรองจาก sitemap

#seo#laravel#php#queue
อ่าน 12 นาที·1 พ.ย.
บอทตอบลูกค้าด้วย Claude CLI ต้องไม่เห็นกติกาส่วนตัวของเจ้าของเครื่อง
AI

บอทตอบลูกค้าด้วย Claude CLI ต้องไม่เห็นกติกาส่วนตัวของเจ้าของเครื่อง

ทำแชทบอทลูกค้าโดยให้ทุกข้อความเรียก claude -p บนเครื่องพัฒนา เครื่องเดียวกับที่มี CLAUDE.md ส่วนตัว memory ของโปรเจกต์อื่น และ token ใน env วิธีแยก context กับเครื่องมือออกเป็นสี่ชั้น ข้อทดสอบการรั่วก่อนเปิดใช้ ตัวเลขเวลาและต้นทุนต่อข้อความ และของที่ผิดในรอบแรก

#claude-code#claude#mcp#ai-agent
อ่าน 12 นาที·1 พ.ย.
เสียงชุดใหม่ยาวไม่เท่าเดิม ย้ายแผนตัดต่อด้วย waveform correlation
Linux

เสียงชุดใหม่ยาวไม่เท่าเดิม ย้ายแผนตัดต่อด้วย waveform correlation

แผนตัดต่อ 33 ท่อนวางไว้บนเสียง 194.28 วินาที แต่เสียงชุดใหม่ยาว 192.80 วินาที ผมไม่ยืดตามอัตราส่วน แต่ทำ cross-correlation 8 หน้าต่างที่ 8 kHz แล้วฟิตเส้นตรง new = a*old + b ได้ a = 1.0000778 และ b = -2.006 วินาที แล้วแปลงทุกจุดตัดผ่านเส้นเดียวกัน

#scipy#python#ffmpeg#video-editing
อ่าน 10 นาที·31 ต.ค.
เน็ตบ้านหลัง CGNAT: ISP เปิดให้แค่ 10 พอร์ต ต้องเช็กอะไรบ้าง
Network

เน็ตบ้านหลัง CGNAT: ISP เปิดให้แค่ 10 พอร์ต ต้องเช็กอะไรบ้าง

เน็ตบ้านหลัง CGNAT ที่ ISP ให้ DDNS พร้อมส่งต่อพอร์ตเฉพาะช่วง 10 พอร์ต external ต้องอยู่ในช่วง internal ใช้อะไรก็ได้ บันทึกเช็กลิสต์ วิธีทดสอบ inbound ที่ไม่หลอกตัวเอง ทำไมปุ่ม port test ถึงแดงเสมอ และเรื่องที่หลัง bridge แล้วยังแก้ไม่จบ

#port-forward#nat#networking#tcp
อ่าน 11 นาที·31 ต.ค.
ลิงก์ยังไม่เคยมา แต่ PLC บอกว่าลิงก์ปกติ 3 วินาทีแรกหลังเปิดเครื่อง
Hardware

ลิงก์ยังไม่เคยมา แต่ PLC บอกว่าลิงก์ปกติ 3 วินาทีแรกหลังเปิดเครื่อง

watchdog ของลิงก์ระหว่าง PLC สองตัวที่เขียนแบบ PeerOK เท่ากับ NOT timeout ให้ค่า TRUE ตลอด 3 วินาทีแรกหลัง power-up ทั้งที่ยังไม่เคยเห็น heartbeat เลย ชุดทดสอบเดิมรอ 5 วินาทีก่อนตรวจครั้งแรกเลยไม่เคยมองช่วงนี้ บันทึกวิธีแก้ด้วยบิต HbRcvd ข้อทดสอบ T0 ที่ตรวจตั้งแต่ scan แรก และการย้อนกลับไปแก้ของที่ส่งมอบไปแล้ว

#plc#siemens#tia-portal#industrial
อ่าน 11 นาที·31 ต.ค.
ดูบทความทั้งหมด ↓

อยากให้เราทำให้ไหม?

ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า

คุยเรื่องงานกับเรา