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

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

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

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

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

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

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

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

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