#Automation

ผ่าน sandbox ไม่ได้แปลว่าใช้ได้จริง — สัญญาณหลอก 7 แบบ
ระบบสั่งซื้ออัตโนมัติที่ผมเขียนผ่าน sandbox ของผู้ให้บริการครบทุกคำสั่ง แต่เกือบทุกอย่างที่ sandbox บอกเป็นคนละเรื่องกับของจริง ทั้งเวลาตอบกลับ ยอดที่ถูกตัด ชื่อที่ใช้ได้ และรายการที่สร้างสำเร็จแต่ค้นไม่เจอ รวมสัญญาณหลอก 7 แบบพร้อมวิธีเขียนโค้ดให้ไม่หลงเชื่อ

กรอกฟอร์มราชการลง PDF ด้วยสคริปต์ และทำสำเนาบัตรให้ปลอดภัย
ฟอร์มราชการที่แจกมาเป็น PDF กรอกได้ มักกรอกภาษาไทยไม่ได้จริง ช่องแบบตารางย่อยทำให้ตัวเลขไหลทับเส้น และวรรณยุกต์ลอยไปชนสระบน บทความนี้คือวิธีไล่ชื่อช่องออกมาก่อน กรอกผ่านฟอร์มแล้วอบให้เป็นเนื้อเอกสารจริง วาดข้อความไทยเองด้วยฟอนต์ที่มีสระครบ และทำสำเนาบัตรขนาดเท่าของจริงพร้อมลายน้ำที่ระบุวัตถุประสงค์

ทำแอปคุมเพจผ่าน Graph API สามปลายทางที่ลืมแล้วไม่ผ่านรีวิว
งานที่ต้องให้ระบบหลังบ้านอ่านและตอบข้อความของเพจได้เอง ทางที่ถูกต้องมีทางเดียวคือทำแอปแล้วผ่านรีวิวของแพลตฟอร์ม บทความนี้คือสามปลายทางที่แพลตฟอร์มบังคับให้มีแต่คนลืมกันจนตกรีวิว การตรวจลายเซ็นคำขอที่ส่งมาให้ถูกวิธี และขั้นตอนแลกโทเคนสั้นเป็นโทเคนเพจที่เก็บนอกรากเว็บ

ตารางเกณฑ์ในสเปรดชีตที่ไม่ได้ผูกสูตร ถอดค่าคงที่กลับเป็นสูตร
ชีตที่มีตารางเกณฑ์วางอยู่ข้าง ๆ แต่ไม่ได้ผูก VLOOKUP คนอ่านตารางแล้วพิมพ์ค่าลงช่องเอง พลาดเมื่อไรไม่มีใครรู้ บทความนี้ว่าด้วยการแยกช่องสูตรกับช่องพิมพ์มือออกจากกัน แล้วถอดคอลัมน์ตัวคูณ 16 ค่ากลับมาเป็นสูตรเดียวที่ตรงทั้งตาราง

เร่งคลิปจอเป็นช่วง ๆ แต่ให้นาฬิกาบนภาพเดินตามเวลาต้นฉบับ
วิธีทำไทม์แลปส์จากคลิปอัดหน้าจอที่เร่งช่วงนิ่งแรงกว่าช่วงทำงาน ด้วย split กับ trim กับ setpts แล้ว concat กลับ พร้อมกับดักใหญ่คือ drawtext ต้องวางก่อน setpts นาฬิกาถึงจะเดินตามเวลาต้นฉบับ ไม่ใช่เวลาที่ถูกเร่งไปแล้ว

ยิง API สองหมื่นกว่าครั้ง ให้หยุดกลางทางแล้วต่อได้ และไม่ได้ไฟล์เสีย
งานยิง API สร้างไฟล์ 26,850 ไฟล์บนโควตาที่จำกัด 20 ครั้งต่อนาที สามชิ้นที่ขาดไม่ได้คือ ตัวหน่วงที่นับรวมกันทั้งระบบ การต่องานจากของที่มีอยู่บนดิสก์ และตัวตรวจไฟล์แยกต่างหาก เพราะไฟล์ที่หลุดตอนเน็ตสะดุดมีนามสกุลถูกและขนาดไม่เป็นศูนย์

ระบบเฝ้าระวังที่ยิงถี่เกิน จนล้มอุปกรณ์ทั้งฟาร์มเอง
ลูปเฝ้าระวังทุก 30 วินาทีที่สั่งกู้อุปกรณ์ทุกตัวที่ ping ไม่ผ่าน ฟังดูเหมือนของดี จนวันที่อุปกรณ์ตัวเดียวค้างแล้วโดนกระแทกซ้ำจนล้มทั้งบัส บทความนี้ไล่ตั้งแต่ตัดสมมติฐานฮาร์ดแวร์ ทำตัวจับว่าใครแตะอุปกรณ์บ้าง ไปจนถึงค่าที่แก้แล้วหาย

ลบใบหน้าในเครื่องสแกนไม่ได้ เพราะ API ตอบ notSupport
เครื่องสแกนใบหน้าที่ประตูโฆษณาว่ามีคำสั่งลบใบหน้าใน FDLib แต่ยิงคำสั่งจริงกลับตอบ notSupport ทุกรูปแบบ คนที่ออกไปแล้วเลยยังสแกนเข้าได้อยู่ บทความนี้เล่าทางที่ตัน ทางที่ใช้ได้จริงคือ UserInfo/Modify แบบ body สั้นที่สุด และวงจร sync ทะเบียนคนสองทางที่รันทุกคืน

ไม่มีมิเตอร์ kWh แต่อยากรู้ค่าไฟรายวัน คิดจากกระแสที่วัดได้
บันทึกการแปลงค่ากระแสจากหัววัด CT ให้กลายเป็นหน่วยไฟและค่าไฟรายวันแบบแยกช่วงเวลา ตั้งแต่สูตรกำลังไฟสามเฟส จังหวะการอ่านที่เป็นส่วนหนึ่งของสูตร การข้ามช่วงไฟดับ ไปจนถึงการแยกช่วง peak กับ off-peak ด้วยเลขคณิตบน epoch และตารางสรุปรายวันที่ทำให้หน้าเว็บเร็วขึ้นเจ็ดเท่า

เขียนค่าลง DirectAdmin ตอนที่ API มีแต่ฝั่งอ่าน ต้องขับฟอร์มของแผงเอง
บันทึกการทำให้แอปหลังบ้านสร้างและแก้แพ็กเกจโฮสติ้งบน DirectAdmin ได้ ทั้งที่ CMD_API ตัวทางการมีแต่คำสั่งอ่าน ต้อง POST เข้าฟอร์มของแผงควบคุมเอง พร้อมกฎการยืนยันผลที่ห้ามใช้ regex และสวิตช์ตัดวงจรสองชั้นที่ปิดไว้เป็นค่าตั้งต้น

nameserver ที่ registrar ไม่ตรงกับระบบบิลลิ่ง ออดิตสามฝั่งก่อนแก้
บันทึกการไล่บั๊ก "Wrong response from the server" ตอนกดเปลี่ยน nameserver ในระบบบิลลิ่ง ที่พังเฉพาะโดเมนที่มีข้อมูล glue IP ตกค้าง แล้วทำออดิตเทียบสามฝั่งระหว่าง registrar ระบบบิลลิ่ง และโซน DNS จริง ก่อนจะกล้าแก้อะไรสักตัว

ดูดเมลเข้าระบบโดยไม่ทำลายกล่องจดหมายของคนอื่น
กล่องเมลที่แอปจะไปดึงของ เป็นกล่องที่คนใช้งานอยู่จริงทุกวัน — ดึงด้วย UNSEEN คือเมลหายเงียบเมื่อเจ้าของเปิดอ่านบนมือถือก่อน cron วิธีที่ถูกคือ UID SEARCH คู่กับ UIDVALIDITY และ BODY.PEEK พร้อมการกันซ้ำที่ต้องทำฝั่งเราเอง

บริการยังรันอยู่ แต่ตายไปแล้ว — systemd restart ช่วยไม่ได้
เน็ตหลุดยาว DNS ใช้ไม่ได้ เดมอนที่ถือ session กับ API ภายนอกวนล็อกอินไม่สำเร็จ 194 รอบ แล้วค้างกลางขั้นตอน ไม่ exit ระบบเลยไม่ restart ให้ — ว่าด้วยการเลิกวัดว่า process ยังอยู่ไหม แล้วหันมาวัดความสดของข้อมูลแทน

php -l ผ่าน แต่หน้าเว็บ 500 — ประตูตรวจก่อน commit ที่คอมไพล์จริง
เทมเพลตพังสองรอบในเดือนเดียวทั้งที่ php -l ผ่านหมด เพราะ php -l ไม่รู้จักไวยากรณ์ของ Blade บทความนี้คือประตูตรวจ 6 ด่านที่ผมวางไว้ก่อน commit — คอมไพล์ view จริงแล้ว lint ไฟล์ที่คอมไพล์ออกมาซ้ำอีกชั้น พร้อมสคริปต์กวาด GET ทุก route ผ่าน Kernel

แจ้งเตือนถี่เกินเท่ากับไม่ได้แจ้ง จูนบอทให้คนอ่านจริง
วันเดียว 28 เหตุการณ์กลายเป็น 56 ข้อความ และ 57 เปอร์เซ็นต์ของทั้งหมดเป็นการเตือนซ้ำทุก 30 นาที บทความนี้ว่าด้วยการแยกชั้นผู้รับ การรวมรอบที่ซ้อนกัน สถานะที่รอดจากการรีสตาร์ต และเหตุผลที่ห้ามใส่ keepalive กับ session ของแอปแชต

จากโมเดลเป็นผังตัดเหล็ก 6 เมตร แล้วออกชีทตัดให้ช่าง
อ่านความยาวชิ้นส่วนจากโมเดล รวมรายการซ้ำ แล้วจัดผังตัดแบบ first-fit decreasing บนเส้นมาตรฐาน 6 เมตร เผื่อร่องใบเลื่อย 3 มิลลิเมตร พร้อมทางเลือกบากคอหักฉากที่ลดรอยต่อจาก 12 เหลือ 6

ถอดปริมาณงานจากโมเดล SketchUp ด้วยสคริปต์ Ruby
โมเดลที่ปั้นไว้แล้วมีตัวเลขทุกตัวที่ใบถอดปริมาณต้องการ ขอแค่ตั้งชื่อกลุ่มให้อ่านได้ตั้งแต่แรก แล้วเขียนสคริปต์ไล่ grep พร้อมกับดักสองข้อที่ทำให้พื้นที่เพี้ยนเท่าตัว

ทำชุดแผ่นแบบจากโมเดล SketchUp วางเลขกับเส้นระยะอัตโนมัติ
โมเดลเสร็จแล้วยังส่งงานไม่ได้ ของที่ราชการรับคือแผ่นกระดาษที่มีเลขกำกับอาคาร เส้นบอกระยะ ทิศเหนือ และมาตราส่วน บทความนี้คือวิธีดึงรูปทรงออกจากโมเดลเป็นตัวเลข เรนเดอร์ top ortho ให้ได้เส้นดำบนพื้นขาว แล้วให้สคริปต์วางเลขกับเส้นระยะเองโดยไม่ทับกัน พร้อมช่องให้สั่งทับเป็นรายชิ้น

ถอดแบบจาก PDF ที่วาดไม่ตรงสเกล แล้ววาดกลับให้ตรงระยะ
แบบแปลนงานนำเสนอมักวาดทีละบล็อก สเกลแกน x กับ y ไม่เท่ากัน และแต่ละห้องยังไม่เท่ากันอีก คาลิเบรตครั้งเดียวทั้งหน้าแล้ววาดตามคือผิดทุกจุด บทความนี้เป็นวิธีถอดพิกัดจากกระดาษเป็นเมตรแบบคิดสเกลใหม่ทุกห้อง นับจำนวนชิ้นด้วย colour-blob BFS แทนการนับด้วยตา แล้ววาดกลับลงโมเดลให้ตรงระยะจริง

ทำเอกสารยื่นราชการหลายสิบแผ่นจาก HTML ให้กดพิมพ์เองแล้วตรงขอบ
ระบบเอกสารยื่นราชการที่ผู้ใช้กดปุ่มพิมพ์ในเบราว์เซอร์เองแล้วต้องได้ทุกแผ่นตรงขอบ ตั้งแต่การวัดพื้นที่พิมพ์จริงเป็นมิลลิเมตร หัวและท้ายที่ต้องซ้ำทุกหน้าโดยห้ามใช้ position fixed กรอบรูปสี่แบบตามชนิดของเอกสาร ไปจนถึงการตรวจหน้าล้นอัตโนมัติด้วย Playwright แทนการเปิดดูทีละแผ่น

ฟีดข่าวค้างสามวันทั้งที่งานรันครบ เพราะฟีดไม่ได้เรียงตามวันที่
หน้าแรกของเว็บข่าวค้างอยู่ที่ข่าววันเดิมสามวันติด ทั้งที่งานตามเวลารันครบ แปลครบ และรายงานผ่านทุกขั้น ต้นเหตุคือฟีด RSS เรียงตามความเกี่ยวข้องไม่ใช่วันที่ การเรียง pubDate แบบสตริงกลายเป็นเรียงตามชื่อวันในสัปดาห์ และการขอข่าวมาน้อยเกินไปจนด่านกรองตีตกหมดตั้งแต่ยังไม่ทันได้ดู

ส่งไฟล์จากงานอัตโนมัติเข้า Telegram กับเพดาน 50 MB ของ Bot API
วางบริการเล็ก ๆ ในเครื่องที่รับไฟล์จากสคริปต์แล้วส่งเข้า Telegram ให้ตัวเอง เป็นช่องทางออกทางเดียวล้วน ไม่มี polling ไม่รับคำสั่งกลับ พร้อมเพดานจริงของ Bot API ที่ต้องรู้ก่อนเขียน ทั้ง 50 MB ต่อไฟล์ รูปเกิน 10 MB ที่ต้องส่งเป็นเอกสาร และกับดักภาษาไทยใน curl บน Windows

พอร์ต CDP ยังตอบ แต่สั่งงานไม่ได้ เพราะ Chrome อัปเดตทับตัวเอง
เครื่องเดียวรันงานอัตโนมัติหลายตัวที่ต้องใช้เบราว์เซอร์จริง แล้วเจอสองเรื่องพร้อมกัน — งานแย่งแท็บกันเองจนได้ผลของคนอื่น และ Chrome อัปเดตไฟล์ทับตัวเองขณะโปรเซสยังรัน ทำให้พอร์ตยังตอบแต่สั่ง Runtime.evaluate ไม่ได้ บทความนี้คือวิธีแยกงาน วิธีตรวจให้เจอ และตัวซ่อมที่ทำงานเอง

ไฟดับ 25 ชั่วโมง แล้วงานตามเวลาที่พลาดไปหายไปเลย
เครื่องที่รันงานอัตโนมัติดับสามรอบในสามวัน รอบยาวสุด 25 ชั่วโมง พอกลับมาถึงรู้ว่างานที่ตั้งด้วย Task Scheduler ตรง ๆ หายไปทั้งรอบไม่รันชดเชย ส่วนงานที่ผ่านตัวสั่งงานซึ่งเทียบเวลาเองไล่ตามครบทุกตัว บทความนี้คือค่าที่ต้องเปิด สิ่งที่ห้ามทำตอนกู้ และกับดักที่ทำให้อ่านสถานะผิด

งานอัตโนมัติหยุดส่งรูป 4 วัน เพราะ subprocess เลือก ssh ตาม PATH
เขียน subprocess.run(["ssh", ...]) แล้วปล่อยให้ระบบเลือกไบนารีตาม PATH ของคนเรียก วันหนึ่งคนเรียกเปลี่ยน ไบนารีเปลี่ยนตาม งานส่งไฟล์ตายเงียบ 4 วันโดยรายงานว่าสำเร็จทุกครั้ง บทความนี้คือวิธีจับอาการ และตัวช่วยที่ probe ไบนารีจริงก่อนใช้ พร้อมด่านตรวจความครบก่อนบอกว่าเสร็จ

แยกลิงก์พังออกจาก ISP ล่ม ก่อนสั่งรีสตาร์ตอะไรบนเครื่อง
watchdog ที่เขียนกันทั่วไปคือ ping ไม่ผ่านแล้ว restart NetworkManager ซึ่งผิดครึ่งหนึ่งของเวลา เพราะเน็ตไม่ออกอาจแปลว่า ISP ล่ม ไม่ใช่การ์ดพัง บทความนี้แยกสามสถานะออกจากกันด้วย nmcli แล้วไต่บันไดจากเบาไปหนักถึงขั้น PCI remove และ rescan โดยไม่รีบูตเครื่อง

ตั้ง VLAN บนสวิตช์ Hikvision ด้วย API ชุดเดียวกับที่หน้าเว็บมันใช้
สวิตช์ smart managed ที่ ISAPI หมวด Switch ตอบ 403 ยังคุมด้วยสคริปต์ได้ ถ้าไปดูว่าหน้าเว็บของมันยิงอะไร บทความนี้ถอด API ชุดนั้นออกมาเขียนเป็นตัวตั้ง VLAN แบบ dry-run ก่อน apply พร้อมกับดักที่เจอจริงทั้งชื่อฟิลด์ที่อ่านกับเขียนไม่ตรงกัน โหมด CCTV ที่บังคับ 10 Mbps และงบ PoE ที่คำนวณแล้วเกินเครื่อง

ทุกชั้นรายงานสำเร็จพร้อมกัน ทั้งที่ผลลัพธ์เป็นขยะ
วันเดียวเจอสี่ชั้นในงานอัตโนมัติชุดเดียวกันพังพร้อมกัน แต่ทุกชั้นรายงานว่าสำเร็จ ไม่มี error สักบรรทัด และคนที่ตรวจเจอคือผู้ใช้ที่ทักว่าของไม่อัปเดต บทความนี้คือกฎที่ผมเขียนขึ้นหลังจากนั้น เพื่อให้ขาที่พังส่งเสียงเองได้

audit ระบบ prod ที่มีข้อมูลลูกค้าจริง โดยไม่ทิ้งขยะสักแถว
เจ้าของระบบสั่งให้ทดสอบทั้งระบบบนเครื่องจริงที่มีข้อมูลลูกค้าอยู่ แล้วห้ามเหลือแถวขยะไว้แม้แถวเดียว วิธีที่ผมใช้คือ bootstrap Laravel เองแล้วเรียก controller ตรง ๆ ใน transaction ที่ rollback ทิ้ง พร้อมนับ COUNT ทุกตารางก่อนและหลังเป็นหลักฐาน

backup รันสำเร็จทุกคืน แต่ของนอกเครื่องไม่มีเลย 3 สัปดาห์
cron รันครบทุกคืน ไฟล์ในเครื่องครบทุกวัน log เขียนว่าเสร็จ แต่ของบนที่เก็บนอกเครื่องไม่ขยับมา 3 สัปดาห์ และชุด 8 คืนแรกหายถาวรไปแล้วเพราะ rotate ในเครื่องกินไปก่อน บทความนี้คือการชำแหละว่ารูสองรูอะไรทำให้เงียบได้นานขนาดนั้น

ออกใบเสนอราคา PDF ภาษาไทยจาก HTML ด้วย Chromium และกับดักที่เจอ
ทำระบบออกใบเสนอราคาเป็น PDF จาก HTML ด้วย Chromium ให้รองรับหลายบริษัทในเครือและหลายเทมเพลต ตั้งแต่ error Executable doesn't exist ที่ไปหยิบ headless shell ผิดตัว การจัด A4 กับแบ่งหน้า การ sanitize ชื่อไฟล์ภาษาไทย จนถึงระบบเลขเอกสารแบบ token ที่เผลอใส่ slash แล้ว path พัง

ธรรมเนียมเขียนแบบโครงเหล็กไทย ให้ช่างหยิบไปสร้างได้จริง
โมเดลโครงเหล็กที่ดูสวยบนจอ แต่ช่างเปิดแบบแล้วส่ายหัว มักผิดที่ธรรมเนียมไม่กี่ข้อ ลำดับสมาชิก หน้าตัดที่หยิบจากกองได้ กฎซ้อนไม่ใช่สาน แปที่ต้องเป็นเหล็กตัว C เปิดปาก และการเลือกหน้ารับบนคานเอียงที่พลาดแล้วเหล็กกินกัน

นำเข้าขอบเขตแปลงที่ดินจากระบบแผนที่ราชการเข้า SketchUp
โมเดล SketchUp ที่ใส่ Add Location แล้วมีภาพถ่ายดาวเทียมอย่างเดียว ไม่มีเส้นแบ่งแปลง บทความนี้เล่าวิธีดึงขอบเขตแปลงผ่าน WFS มาตรฐาน OGC ที่ต้องส่ง viewparams ไม่งั้นได้ศูนย์ฟีเจอร์ แปลงพิกัด UTM47 เป็น WGS84 แล้ววางลงโมเดลด้วย latlong_to_point ให้ตรงกับภาพพอดี

ขับ AutoCAD จาก PowerShell ผ่าน COM — วาดแบบด้วยสคริปต์
AutoCAD เปิด COM ไว้ให้เขียนสคริปต์สั่งได้เหมือน Excel เกาะเข้าตัวที่เปิดอยู่ด้วย New-Object แล้ววาดเส้น วงกลม ข้อความ กล่องสามมิติ สร้างเลเยอร์ ใส่เส้นบอกระยะ และเซฟไฟล์ได้ครบจาก PowerShell พร้อมกับดักสี่ข้อที่เจอมาเองรอบเดียวจำไปตลอด

สั่งงานอัตโนมัติบนเครื่อง Windows ระยะไกลผ่าน SSH + Task Scheduler
ยก workload หนักไปรันบนเครื่องแรงอีกตัวผ่าน SSH แล้วตั้งให้วิ่งเองด้วย schtasks — พร้อมกับดักที่เสียเวลาจริง ตั้งแต่ ssh เข้าไปแล้วเจอ PowerShell 5 ไม่ใช่ bash, backslash โดนกินตอนเขียนไฟล์ .bat, จนถึงเคส push ไฟล์ออกแล้วค้างนิ่งที่แก้ด้วย plink

ออดิตกล้อง CCTV ในวงเองด้วย ISAPI กับ ffprobe RTSP ไม่ผ่าน NVR
หน้าจอ NVR บอกแค่ว่ากล้องออนไลน์ ไม่ได้บอกว่ารุ่นอะไร firmware ค้างปีไหน หรือสตรีมจริงเป็นความละเอียดเท่าไหร่ บทความนี้เขียนสคริปต์ยิง ISAPI deviceInfo ตรงเข้ากล้องทีละตัว แล้วใช้ ffprobe ดึงค่าจากสตรีม RTSP จริง เพื่อทำ inventory กับ health check ระบบกล้องที่เราดูแลอยู่

สำรวจสวิตช์และ AP ด้วย SNMP walk ดึงตาราง MAC ต่อพอร์ตมาทำ inventory
ไม่มี controller ไม่มี NMS ก็ทำ inventory ชั้น 2 เองได้ เขียน SNMP walk ด้วย pysnmp asyncio ดึง sysDescr, ifTable และตาราง bridge FDB แล้วแปลง OID index กลับเป็น MAC เพื่อรู้ว่าอุปกรณ์ตัวไหนเสียบพอร์ตไหนของสวิตช์ตัวไหน

เขียนแอปมอนิเตอร์ ping จอเดียวด้วย C++ ImGui กับ DirectX 11
แอปเล็กๆ ที่ ping อุปกรณ์ทั้งวงพร้อมกันแล้วสรุปลงจอเดียว ยิง ICMP ตรงผ่าน iphlpapi ไม่เรียก ping.exe แยกหนึ่ง thread ต่อหนึ่ง host คุยกับ UI ด้วย std::atomic วาดด้วย Dear ImGui บน DirectX 11 แล้ว build ด้วย CMake กับสคริปต์ PowerShell ตัวเดียวจบ

อ่าน uptime อุปกรณ์ที่ไม่มี SNMP/SSH/API ด้วย TCP timestamp
กล้อง IP เครื่องคุมประตู และอุปกรณ์ฝังตัวจำนวนมากไม่มีทั้ง SNMP SSH และ API ให้ถาม uptime แต่ถ้ามันตอบ TCP timestamp มาด้วย เราอ่านเวลาบูตของมันได้จากนอกบ้านโดยไม่ต้อง login เลยสักครั้ง

crontab ของ user เว็บ ไม่ใช่ crontab ที่ cron รันจริง
แก้ตารางเวลาผ่านหน้าเว็บแล้วงานยังยิงตามเวลาเก่า เพราะสคริปต์เขียน crontab ของ user ที่เว็บรันอยู่ ไม่ใช่ของ user ที่ cron อ่านจริง วิธีตรวจให้เจอใน 3 คำสั่ง sudoers drop-in ที่ใช้ และวิธีออกแบบไม่ให้มันหลุดอีก

Googlebot โดนไฟร์วอลล์ตัวเองแบนถาวร จนเว็บหายจากผลค้นหา
ไล่ตรวจว่าทำไมเว็บหายจากผลค้นหา แล้วเจอ Googlebot นอนอยู่ในรายการแบนถาวรของไฟร์วอลล์ตัวเอง 408 จาก 500 แถวมาจากตัวนับ false positive ของ WAF วิธีปลดแบน สคริปต์ดึงช่วงไอพีทางการของบอทมาใส่ ignore list ทุกวัน กับดัก grep และผลข้างเคียงของการบล็อกทั้งประเทศ

นำเข้าไฟล์ .xls จากระบบเก่าหลายร้อยไฟล์ลง Laravel ด้วย PhpSpreadsheet
ไฟล์ .xls จากระบบเก่าที่หัวตารางภาษาไทยเป็น tis-620 อ่านชื่อคอลัมน์ไม่ได้ ไฟล์ใหญ่ทำ PhpSpreadsheet กิน memory จนล้ม และไฟล์ที่ผู้ใช้รวมเองก็มีแถวซ้ำในตัวเอง — เลิกอ่านชื่อคอลัมน์แล้วนับตำแหน่งแทน ใส่ read filter และกันซ้ำด้วย natural key

เครื่องในโรงงานหลัง NAT ขึ้นคลาวด์ ด้วย push snapshot + คิวคำสั่ง
เครื่องงานจริงอยู่ใน LAN หลัง NAT ไม่มี public IP แต่เจ้าของอยากดูข้อมูลบนเว็บคลาวด์และแก้ข้อมูลจากมือถือให้ลงไปถึงเครื่องใน — ทำได้โดยไม่เปิดพอร์ตไม่ตั้ง VPN ด้วย push snapshot + คิวคำสั่งแก้ + ack แบบ idempotent

ซ่อมไฟล์ session .jsonl ของ Claude Code ที่บวม 38 MB จนเปิดไม่ขึ้น
session เดียวที่ลากยาว 8 วันโตเป็น 38.61 MB / 11,537 records จน UI เปิดประวัติไม่ขึ้น เลยเขียนสคริปต์ Python ไล่ทีละบรรทัด ตัดเฉพาะส่วนที่มนุษย์อ่านไม่ได้อยู่แล้ว เหลือ 17.41 MB โดยข้อความคนกับผู้ช่วยครบ 8,171 uuid ลำดับเดิม ไม่มี orphan

ตั้ง DirectAdmin Admin Backup cron จาก CLI ไม่ต้องกดผ่าน panel
หน้า CMD_ADMIN_BACKUP ให้คลิกตั้ง cron ทีละห้าขั้น แต่จริงๆ DirectAdmin แค่ต่อท้ายบรรทัดเดียวลงไฟล์ backup_crons.list แล้วปล่อยให้ dataskq เก็บไปทำ วิธีเขียนตรงเข้าไฟล์จาก CLI พร้อมกับดัก when=now, base64 และ append_to_path ที่คนมักพลาด

port สูตร Excel มาเว็บให้ตรงทุกตำแหน่งทศนิยม: กับดัก floating point
พอร์ตสูตรวิศวกรรมจากไฟล์ Excel มาเป็นเครื่องคำนวณเว็บ แล้วค่าไม่ตรงที่หลักทศนิยม 1e-13 — ไม่ใช่บั๊กคณิตศาสตร์ แต่เป็นลำดับการยกกำลังและการคูณของ floating point ที่ JS กับ Excel ประเมินไม่เหมือนกัน พร้อมวิธีอ่านสูตรสองชั้นด้วย openpyxl และทำ fixture ให้จับ regression ได้จริง

ทำ Android dev บน MIUI/HyperOS แล้ว adb ทำงานไม่ได้ — กับดักบน Windows
adb ไม่ได้พังหรอกครับ แต่ Git Bash แปลง path /sdcard ให้เพี้ยน, PowerShell ทำไฟล์ screenshot เป็น 0 ไบต์, MIUI/HyperOS บล็อกการติดตั้งครั้งแรก และ here-string กลืน backslash เวลาปั้นโค้ด PHP — รวมกับดักจริงตอนทำแอป Android บน Windows พร้อมคำสั่งที่ใช้ได้จริง

อนุมานจังหวะ defrost ห้องเย็นจากความชันอุณหภูมิ ไม่ง้อเซนเซอร์ความชื้น
ห้องเย็นรีดน้ำวุ้นเส้นไม่มีเซนเซอร์ความชื้นสักตัว แต่ frost ที่เกาะคอยล์ทำให้ความชันการลดอุณหภูมิ (dT/dt) ราบลงเสมอ บทความนี้ใช้สมการ lumped-capacitance กับ time-constant τ จับ frost แล้วสั่ง defrost แบบ demand ด้วย Python จริง พร้อมคำนวณ COP ของ R404A และน้ำที่รีดออกต่อรอบ

เกณฑ์ราคากลางคอมพิวเตอร์ ICT ภาครัฐ + จัดสเปก DIY ด้วยสคริปต์
เกณฑ์ราคากลาง ICT ภาครัฐ ฉบับ ธ.ค. 2568 กำหนดสเปกเครื่องสำนักงาน 20,000 บาท และเครื่องประมวลผล 24,000 บาทไว้ชัด บทความนี้อ่านเกณฑ์จริงทีละข้อ แล้วเขียนสคริปต์ Python ดึงราคา Advice มาจัดสเปก DIY เทียบว่าประกอบเองคุ้มกว่าซื้อสำเร็จรูปแค่ไหน

เล่นกล้อง AI reCamera + gimbal: cross-compile RISC-V + CAN + Node-RED
reCamera คือกล้อง AI บนชิป RISC-V ที่วางอยู่บนแกน brushless สองแกน สั่งหมุนผ่าน CAN bus ได้ละเอียดระดับ 0.01 องศา บทความนี้ไล่ตั้งแต่ cross-compile ภาษา C สำหรับ riscv64 musl, scp ขึ้น device, โครงสร้าง CAN frame ที่คุมมอเตอร์, อ่าน encoder 15-bit กลับมา, การหาศูนย์มอเตอร์ด้วยกระแส, ไปจนถึง Node-RED dashboard + PID + auto-track และไฟล์ STP พิมพ์เคส 3D

ต่อเครื่องชั่ง RS-232 Toledo ผ่าน Bluetooth อ่านด้วย PowerShell
ต่อเครื่องชั่งดิจิทัล TWT-01 ที่มีแต่พอร์ต RS-232 เข้าพีซีผ่านตัวแปลง Bluetooth BT578 แล้วอ่านน้ำหนักเรียลไทม์ด้วย PowerShell — ไล่ตั้งแต่จับคู่ Bluetooth หา COM port จาก MAC แกะ frame ของ Toledo Continuous 18 ไบต์ ไปจนถึงกับดัก null byte กับ scale auto-sleep ที่เจอจริงตอนใช้งาน

คุม TP-Link Omada OC200 ผ่าน REST API ด้วย Python
วิธี login เข้า OC200 controller ผ่าน REST API v2 ด้วย Python จริง — จัดการ CSRF token, self-signed cert, ดึง site/devices/SSID/DHCP/port-forward แล้วเขียนกลับด้วย PATCH พร้อมกับดัก read-only fields ที่ทำให้ errorCode ไม่เป็น 0

ทำ network-as-code บน MikroTik RouterOS
แนวคิด network-as-code สำหรับ MikroTik — ดึง /export ออกมาเก็บเป็นไฟล์, ล้าง secret ด้วยสคริปต์ sanitize ก่อนแชร์, แยกหมวด แล้ว generate config หลายไซต์จากเทมเพลต Jinja2 + ค่า variables ชุดเดียว

อ่านมิเตอร์ 3 เฟส DTSU666 ด้วย Raspberry Pi ผ่าน Modbus RS485
บันทึกการต่อ DTSU666 Smart Power Sensor เข้ากับ Raspberry Pi ผ่าน RS485 อ่านค่าไฟ 3 เฟสจากหลายมิเตอร์ด้วย Modbus RTU decode float 32-bit ให้ถูก แล้วเก็บลง SQLite/MySQL ก่อนส่งออก MQTT กับ REST API พร้อมบั๊กค่าติดลบที่ผมเจอเอง

แคปหน้าจอเว็บทีละหลายโดเมน + บังคับให้ชนเซิร์ฟเวอร์ต้นทาง ข้าม Cloudflare
ต้องแคปหน้าจอเว็บทีละหลายสิบโดเมนเพื่อตรวจ หรืออยากยืนยันว่าเซิร์ฟเวอร์ต้นทาง (ไม่ใช่ CDN cache) render ถูก — แต่ flag screenshot ของ Chrome พังตั้งแต่รุ่น 132 และแก้ hosts ก็โดน AV คืนค่า บทความนี้ใช้ Playwright override DNS ระดับโปรเซส จบทั้งสองปัญหา

เขียนสคริปต์บน Windows ไปรันบน Linux — สองกับดักที่ทำไฟล์ค้างเซิร์ฟเวอร์
เขียน helper script บน Windows แล้ว scp ขึ้นไปรันบน Linux เป็นงานประจำ แต่มีสองอย่างที่กัดซ้ำ ๆ — path แบบ d:\ ที่ฝังในสคริปต์กลายเป็นชื่อไฟล์ประหลาดใน /tmp จนโดน file monitor จับ และไฟล์ token/payload ที่ลืมลบทิ้งไว้บนเซิร์ฟเวอร์ บทความนี้สรุปกฎกันพลาด

อ่าน Modbus RTU ผ่าน gateway RS485 ให้ไม่ได้ค่าผี — บทเรียนจากงานจริง
ต่อมิเตอร์/เซนเซอร์ Modbus RTU หลายตัวบนบัส RS485 ผ่าน serial-to-Ethernet gateway แล้วเจอค่าผี ค่าเพี้ยน หรืออุปกรณ์ที่ไม่มีอยู่จริงโผล่มา — เพราะ transparent gateway คือ RTU-over-TCP ที่ต้องประกอบเฟรม+CRC เอง และต้อง validate ทุก reply บทความนี้สรุปกฎที่ได้จากการทำจริง

สร้าง .ppk ให้ plink/pscp บน Windows โดยไม่ต้องเปิด puttygen
puttygen.exe บน Windows เป็น GUI ล้วน สั่งแปลง OpenSSH เป็น .ppk แบบ batch ไม่ได้ (เด้ง unrecognised option) — บทความนี้เขียนไฟล์ PPK v3 ตรง ๆ ด้วย Python พร้อมสูตร MAC HMAC-SHA-256 ที่หาอ่านยาก ใช้กับ plink/pscp/WinSCP ได้ทันที

สร้าง QR พร้อมเพย์ (EMVCo) ด้วย Python ล้วน — ไม่ต้องพึ่งไลบรารีนอก
อยากออก QR รับเงินพร้อมเพย์ในระบบ POS/เว็บของตัวเอง โดยไม่ต้องเรียก API ธนาคาร — บทความนี้ประกอบสตริง EMVCo TLV + CRC16 เองด้วย Python ล้วน ได้ payload ตรงสเปกไทยคิวอาร์ สแกนจากแอปธนาคารไหนก็จ่ายได้ พร้อมกับดักที่ทำให้แอปสแกนไม่ติด

ส่ง USB เข้า WSL2 ด้วย usbipd-win — ให้ Linux บน Windows จับฮาร์ดแวร์จริง
WSL2 มองไม่เห็นอุปกรณ์ USB เพราะเป็น VM ที่ไม่มี USB controller — usbipd-win ส่งอุปกรณ์จาก Windows ข้ามไปให้ kernel ของ WSL ตรงๆ ด้วย 3 คำสั่ง list/bind/attach พร้อมข้อควรรู้จากงานจริง: attach หลุดตอนถอดสาย, กับดัก CRLF และ USB modem แย่ง default route

ลูกค้าเช็คเมลแล้วโดน firewall แบนยกออฟฟิศ — แก้ด้วย auto-whitelist จาก login
พฤติกรรมลูกค้าเมลจริงหน้าตาเหมือน bot เป๊ะ — เครื่องในออฟฟิศยิงรหัสเก่ารัวๆ จนโดน CSF แบนทั้งวง บทความนี้เล่าระบบ auto-whitelist ที่เกาะเหตุการณ์ login สำเร็จ + GeoIP ไทย แล้ว temp allow 24 ชั่วโมง พร้อมกับดัก 5 ข้อที่เจ็บมาแล้ว

Redis แยกต่อ user บน shared hosting — และบั๊ก maxmemory ที่ทำเว็บค้าง
ออกแบบ Redis หนึ่ง instance ต่อหนึ่ง user บน shared hosting ด้วย systemd template + cgroup — และบทเรียนบั๊ก maxmemory ที่ตั้งเกินเพดาน cgroup แล้วทำเว็บ WooCommerce ค้างเป็นพักๆ พร้อมกฎ 80% และ guard script กันเกิดซ้ำ

ให้ทีม 7 คน remote เข้า LAN โดยไม่เปิด port — Cloudflare Zero Trust ฉบับทำจริง
ทีมงาน 7 คนต้อง RDP เข้าเครื่องใน LAN โดยห้ามเปิด port ออก internet — สรุปสถาปัตยกรรม Cloudflare Zero Trust (WARP + cloudflared) พร้อม 3 บทเรียนจากการทำจริง: IdP ที่ลืมตั้ง, Gateway default ที่ผ่านหมด และ default-deny ที่คนลืมบ่อยสุด

กู้รูปเว็บเก่าที่หายไป ด้วย Wayback Machine CDX API + Python
เว็บเก่าอายุสิบกว่าปีรูปแตกทั้งเว็บเพราะ hotlink จาก CDN ที่ตายแล้ว — เขียนสคริปต์ Python ดึงรายการรูปจาก Wayback Machine CDX API แล้วกู้กลับมาวางที่ path เดิมโดยไม่แตะ HTML สักตัวอักษร พร้อมสคริปต์เต็มที่ใช้จริง

โดเมน .com โดนยึด — ย้ายทั้งเว็บไป .net บน DirectAdmin แบบข้อมูลไม่หาย
โดเมน .com หมดอายุหลุดไปอยู่กับ domain squatter — เล่าวิธีย้ายทั้งเว็บ (ไฟล์/เมล/DNS/SSL) ไปโดเมน .net ใหม่บน DirectAdmin ด้วย CMD_CHANGE_DOMAIN คำสั่งเดียว พร้อมงานหลังบ้าน 4 อย่างที่ไม่ตามมาอัตโนมัติ

ใช้ Claude อัป Proxmox 8 ขึ้น 9 แล้วสร้าง Windows VM ใหม่ทั้งคลัสเตอร์
เคสจริง ใช้ VS Code + Claude อัป Proxmox 8 ขึ้น 9 ทั้ง cluster แล้วล้างสร้าง Windows VM ใหม่ทั้งหมดแบบ VDI โดยไม่ได้ ssh เข้าเครื่องเองเลยสักครั้ง ถอดคำสั่งและสคริปต์ที่ Claude สร้างระหว่างทำงานจริงออกมาเป็นขั้นตอน ให้คนหรือ AI อ่านแล้วเอาไปสั่งทำซ้ำได้จริง

ใช้ Claude ตัดวิดีโอด้วยการพิมพ์สั่งเป็นภาษาไทย ไม่ต้องเปิดโปรแกรมตัดต่อ
วิธีที่ผมใช้จริง เอา Claude ใน VS Code มาสั่งตัด ย่อ รวม ใส่เพลงประกอบวิดีโอด้วยการพิมพ์ภาษาไทย ไม่ต้องจำคำสั่ง ffmpeg ไม่ต้องเปิดโปรแกรมตัดต่อ พร้อมวิธีให้ AI แต่งเพลงเอง เร่งด้วยการ์ดจอ NVIDIA และฝั่ง Mac กับ Linux สำหรับคนไม่เคยใช้ Claude มาก่อน

คุม Linux server ด้วย AI ผ่าน SSH ให้ปลอดภัย ไม่เผลอพังระบบ
วิธีที่ผมใช้จริงในการเอา Claude มาช่วย audit และแก้ security ของ Linux server ผ่าน SSH ตั้งแต่เตรียมเครื่อง เก็บความลับ ไปจนกฎเหล็กก่อนแตะ production

ขับ SketchUp ด้วย Claude Code ตอน 2 — ติดตั้งปลั๊กอิน MCP กันบั๊ก
ทำให้ Claude Code "เห็น" และ "ขับ" SketchUp ได้จริง ด้วยปลั๊กอิน MCP ของชุมชน พร้อมวิธีกัน 2 บั๊กที่ทำเสียเวลา — PyPI wheel พัง และ UI freeze จาก socket แบบ blocking

ขับ SketchUp ด้วย Claude Code ตอนที่ 1 — เตรียมเครื่องมือ uv กับ PyNite
เริ่มซีรีส์ขับ SketchUp ให้เขียนแบบ 3D โครงเหล็กแล้วคำนวณ FEA ด้วย Claude Code ตอนแรกว่าด้วยการเตรียมเครื่องล้วน ตั้งสิทธิ์ Claude ลง uv และสร้าง conda env ใส่ PyNite

ปลด CSF อัตโนมัติให้ออฟฟิศจริง แต่ไม่ปลดให้ attacker ด้วย geo+account gate
เคสจริง ออฟฟิศลูกค้า IP หมุนทุกวัน มี ghost device รหัสเก่าค้างทำให้ทั้งออฟฟิศโดน CSF บล็อกเป็นรอบ ๆ วิธีปลดอัตโนมัติด้วย gate แคบ account+geo ที่ปลดให้ออฟฟิศจริงแต่กันต่างชาติที่ brute creds.

วาง Telegram Bot เฝ้า DA Server แบบ blast radius เล็ก
คู่มือวาง Telegram bot เป็น control surface เบาๆ สำหรับเฝ้า DirectAdmin server — read-only commands บวก block/unblock IP เท่านั้น ไม่เปิด port ไม่เพิ่ม service และจำกัด blast radius ด้วย least-privilege ทุกชั้น

ดึง Backup ออกนอกห้อง Server ด้วย Pull Architecture + rclone/rsync
สร้าง Layer 3 off-site ให้ครบ 3-2-1 ด้วยสถาปัตยกรรมแบบ pull (host ปลายทางดึงเอง) บวก rclone + rsync และบทเรียนจาก trip จริงทั้ง NAT, RSA host key, cwRsync, และ PID recycle.

ทำ Redis แบบ per-user บน DirectAdmin โดยไม่ต้องซื้อ pro_pack
วิธีติดตั้ง Redis object cache แยกต่อ user บน DirectAdmin shared hosting ด้วย systemd template + unix socket + cgroup limit โดยเขียน provisioning script เองแทน DA panel ที่ต้องใช้ pro_pack license พร้อมสูตรเชื่อม WordPress, Flarum และ Laravel

ปลด CSF block อัตโนมัติ คัด ghost device ออกจาก botnet brute force
เคสจริงบนเซิร์ฟเวอร์ DA shared host ที่ ghost device ในออฟฟิศทำให้ทั้งออฟฟิศโดน CSF block ทุกเช้า ผมเล่าวิธีทำ auto-unblock 4 ชั้น ที่แยกเครื่องในออฟฟิศออกจาก botnet ได้โดยไม่เผลอปลด attacker

OpenClaw กับ VSCode + AI Agent ต่างกันยังไง แล้วใครควรใช้อะไร
เทียบ AI Agent สองสายที่ยกระดับ AI จากแชทบอทมาเป็นผู้ช่วยที่ลงมือทำงานจริง — สายเกตเวย์บนแชทแอปอย่าง OpenClaw กับสายฝังใน editor อย่าง VSCode + AI Agent ทั้งวิธีทำงาน ค่าใช้จ่าย token และความปลอดภัยที่มือใหม่ต้องรู้

สร้างเซิร์ฟเวอร์ AI จากเครื่องเดสก์ท็อป WSL2 + Ollama + OpenClaw
บันทึกการประกอบเซิร์ฟเวอร์ AI ในบ้านจากศูนย์ เริ่มจาก Windows 11 IoT ลง WSL2 + Ubuntu วาง Ollama รัน LLM บนการ์ดจอสองใบ แล้วต่อด้วย OpenClaw หลาย instance ผ่าน systemd ครบทั้ง driver, custom Modelfile, การแยก user และ benchmark