บันทึกงานเซิร์ฟเวอร์จริง ที่ลงมือทำเอง แล้วเขียนให้คนอื่นใช้ต่อได้
สัปดาห์นี้
ดูทั้งหมด
เว็บเก่าขึ้น 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 แรก และการย้อนกลับไปแก้ของที่ส่งมอบไปแล้ว

ใบ wildcard ของ DA หยุดต่ออายุเงียบ ๆ หลังย้าย NS ไป Cloudflare
ใบ wildcard ที่ DirectAdmin ออกให้ต้องใช้ DNS-01 ซึ่งเขียน TXT ลง DNS ของเครื่องเราเอง พอลูกค้าย้าย NS ไป Cloudflare การต่ออายุก็ล้มเงียบจนใบหมดอายุ ทั้งเว็บและเมลเตือน TLS บันทึกวิธีสแกนหา ออกใหม่แบบระบุชื่อ และตรวจพอร์ตจริงหลัง reload

โควตา CLI หมดกลางงานแปล: อ่าน Resets in แล้วหลับรอจนรีเซ็ต
ย้ายงานแปลเว็บก้อนใหญ่ไปรัน CLI ของ Google ด้วยสมาชิกของตัวเองเพื่อเก็บโควตา Claude ไว้ให้งานอื่น โควตาของมันมาเป็น error result ที่มีข้อความ Resets in ไม่ใช่ HTTP 429 รันเนอร์เลยต้อง parse เวลา หลับรอ แล้วทำต่อเอง พร้อมกับดัก headless สามข้อที่ต้องรู้ก่อน

สคริปต์ Windows มีภาษาไทยแล้วพังด้วย error หลอก ทั้งที่ syntax ถูก
ไฟล์ .ps1 ที่มีข้อความไทยฟ้อง Missing closing ในบรรทัดที่ไม่ผิด ไฟล์ .cmd เอา comment ไปรันเป็นคำสั่ง curl ส่งไทยแล้วปลายทางได้เครื่องหมายคำถาม ทั้งหมดไม่ใช่เรื่อง syntax แต่เป็นเรื่องตัวอ่านแต่ละตัวตีความไบต์คนละตาราง รวม 5 เคสพร้อมวิธีพิสูจน์และทางแก้

ย้ายเน็ตบ้านจากเราเตอร์ ISP ไปเป็น bridge โดยไม่ให้ DHCP สองตัวชนกัน
บันทึกลำดับ cutover จริงของบ้านที่ย้ายจากเราเตอร์ ISP ไปให้ gateway ของเราคุมทั้งวง ความพยายามแรกที่เสียบขนานกับ DHCP เดิมพัง ต้องสลับสายให้เหลือ DHCP ตัวเดียวทีละขั้น พร้อมกับดักเล็กอีกหลายอย่างและเรื่องที่ยังไม่จบ
อยากให้เราทำให้ไหม?
ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า