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

#Python

47 บทความ
Workflow
ให้ AI คนละค่ายมาตรวจโค้ดที่ AI เขียน — กระบวนการ ไม่ใช่ความศรัทธา
AI

ให้ AI คนละค่ายมาตรวจโค้ดที่ AI เขียน — กระบวนการ ไม่ใช่ความศรัทธา

พอร์ตเครื่องคำนวณจากสเปรดชีตวิศวกรรม 35 ชีตด้วย AI แล้วจะรู้ได้ยังไงว่าถูก บทความนี้เล่ากระบวนการให้เอเจนต์อีกค่ายมาตรวจอิสระสามรอบ กติกาที่ต้องตั้งก่อนเริ่ม ชั้นความเชื่อมั่นที่กันการโม้เกินหลักฐาน และคลาสความผิดพลาดที่ AI พลาดซ้ำ ๆ ทุกรอบ

#ai#llm#ai-agent#claude-code
อ่าน 9 นาที·26 ต.ค.
ย้ายเว็บ .aspx เก่าทั้งเว็บ ทำเป็น catalog JSON แล้วคัดรูปขยะออกเอง
Web

ย้ายเว็บ .aspx เก่าทั้งเว็บ ทำเป็น catalog JSON แล้วคัดรูปขยะออกเอง

เจ้าของเว็บ .aspx เก่าขอให้ทำเว็บใหม่ แต่เนื้อหาสิบกว่าปีอยู่ในฐานข้อมูลที่เข้าไม่ถึงแล้ว ผมเลยไล่เก็บหน้าเว็บของเขาเองมาทำเป็น catalog JSON ที่คง legacy_id ไว้ทั้งหมด แล้วเขียนตัวคัดรูปสามชั้นกันไม่ให้ QR ของแถมกลายเป็นรูปปกบทความ

#python#web-scraping#crawler#migration
อ่าน 10 นาที·23 ต.ค.
กรอกฟอร์มราชการลง PDF ด้วยสคริปต์ และทำสำเนาบัตรให้ปลอดภัย
AI

กรอกฟอร์มราชการลง PDF ด้วยสคริปต์ และทำสำเนาบัตรให้ปลอดภัย

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

#pdf#python#document#printing
อ่าน 10 นาที·22 ต.ค.
ตารางเกณฑ์ในสเปรดชีตที่ไม่ได้ผูกสูตร ถอดค่าคงที่กลับเป็นสูตร
AI

ตารางเกณฑ์ในสเปรดชีตที่ไม่ได้ผูกสูตร ถอดค่าคงที่กลับเป็นสูตร

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

#spreadsheet#python#reverse-engineering#audit
อ่าน 10 นาที·20 ต.ค.
เร่งคลิปจอเป็นช่วง ๆ แต่ให้นาฬิกาบนภาพเดินตามเวลาต้นฉบับ
AI

เร่งคลิปจอเป็นช่วง ๆ แต่ให้นาฬิกาบนภาพเดินตามเวลาต้นฉบับ

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

#ffmpeg#video-editing#python#automation
อ่าน 9 นาที·20 ต.ค.
เว็บสองภาษา 26 หน้า ทำไมต้องกลายเป็น .php แล้วลิงก์พังทั้งเว็บ
Web

เว็บสองภาษา 26 หน้า ทำไมต้องกลายเป็น .php แล้วลิงก์พังทั้งเว็บ

หน้าโปรดักชันโชว์แท็ก PHP เป็นตัวหนังสือดิบ เพราะเว็บเซิร์ฟเวอร์เสิร์ฟ .html เป็นไฟล์ static พอเปลี่ยนทั้ง 26 หน้าเป็น .php ลิงก์ก็พังทั้งเว็บ แล้วพอทำ clean URL ต่อหน้าย่อยก็เด้งกลับเป็น .php เพราะ rewrite กับ 301 ทำครึ่งเดียว บทความนี้คือ .htaccess เต็ม กติกา $base แปดกรณี และสคริปต์ที่ทำทีเดียวทั้งเว็บ

#htaccess#apache#nginx#php
อ่าน 9 นาที·19 ต.ค.
ยิง API สองหมื่นกว่าครั้ง ให้หยุดกลางทางแล้วต่อได้ และไม่ได้ไฟล์เสีย
Linux

ยิง API สองหมื่นกว่าครั้ง ให้หยุดกลางทางแล้วต่อได้ และไม่ได้ไฟล์เสีย

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

#python#api#rate-limiting#automation
อ่าน 9 นาที·19 ต.ค.
ระบบเฝ้าระวังที่ยิงถี่เกิน จนล้มอุปกรณ์ทั้งฟาร์มเอง
Linux

ระบบเฝ้าระวังที่ยิงถี่เกิน จนล้มอุปกรณ์ทั้งฟาร์มเอง

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

#monitoring#linux#python#systemd
อ่าน 10 นาที·17 ต.ค.
ลบใบหน้าในเครื่องสแกนไม่ได้ เพราะ API ตอบ notSupport
Hardware

ลบใบหน้าในเครื่องสแกนไม่ได้ เพราะ API ตอบ notSupport

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

#hikvision#isapi#hardware#python
อ่าน 10 นาที·15 ต.ค.
ไม่มีมิเตอร์ kWh แต่อยากรู้ค่าไฟรายวัน คิดจากกระแสที่วัดได้
Hardware

ไม่มีมิเตอร์ kWh แต่อยากรู้ค่าไฟรายวัน คิดจากกระแสที่วัดได้

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

#energy#power-meter#electrical#modbus
อ่าน 10 นาที·15 ต.ค.
อ่านค่าจากอุปกรณ์ Modbus ที่ไม่รู้ว่าเป็นตัวอะไร พิสูจน์ก่อนตีความ
Hardware

อ่านค่าจากอุปกรณ์ Modbus ที่ไม่รู้ว่าเป็นตัวอะไร พิสูจน์ก่อนตีความ

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

#modbus#rs485#serial#iot
อ่าน 11 นาที·14 ต.ค.
nameserver ที่ registrar ไม่ตรงกับระบบบิลลิ่ง ออดิตสามฝั่งก่อนแก้
Network

nameserver ที่ registrar ไม่ตรงกับระบบบิลลิ่ง ออดิตสามฝั่งก่อนแก้

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

#dns#cloudflare#networking#rest-api
อ่าน 9 นาที·13 ต.ค.
time-series เป็น JSON โตวันละ 50 MB ย้ายลงคอลัมน์โดยไม่แก้ dashboard
Linux

time-series เป็น JSON โตวันละ 50 MB ย้ายลงคอลัมน์โดยไม่แก้ dashboard

เก็บค่าที่อ่านจากอุปกรณ์ทั้งเฟรมเป็น JSON array วินาทีละแถว ผ่านไปสองสัปดาห์ตารางโต 183 MB ที่ปลายทางและ 625 MB บนเซิร์ฟเวอร์ พร้อมกับ JSON_EXTRACT ที่ทำ index ไม่ได้ — วิธีย้ายไปเก็บเป็นคอลัมน์ int แล้วให้ API ประกอบ array คืนแบบ sparse เพื่อไม่ให้ dashboard รู้ตัวสักบรรทัด

#mariadb#mysql#migration#performance
อ่าน 10 นาที·11 ต.ค.
แจ้งเตือนถี่เกินเท่ากับไม่ได้แจ้ง จูนบอทให้คนอ่านจริง
Linux

แจ้งเตือนถี่เกินเท่ากับไม่ได้แจ้ง จูนบอทให้คนอ่านจริง

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

#monitoring#alerting#bot#logging
อ่าน 9 นาที·5 ต.ค.
ทำชุดแผ่นแบบจากโมเดล SketchUp วางเลขกับเส้นระยะอัตโนมัติ
AI

ทำชุดแผ่นแบบจากโมเดล SketchUp วางเลขกับเส้นระยะอัตโนมัติ

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

#3d-modeling#sketchup#ruby#python
อ่าน 10 นาที·2 ต.ค.
วัดผังอาคารด้วยมือถือ แล้วหาทิศเหนือจริงด้วย GNSS
AI

วัดผังอาคารด้วยมือถือ แล้วหาทิศเหนือจริงด้วย GNSS

ARCore ให้พิกัดมุมห้องเป็นเมตรได้แม่นพอใช้งาน แต่ world frame ของมันหันไปทางไหนก็ไม่รู้ ผังที่ได้เลยหมุนอยู่มุมหนึ่งเสมอ วิธีแก้คือเดินเก็บคู่ (ตำแหน่ง AR, ค่า GNSS) ระหว่างทำงาน แล้ว fit rotation แบบ Kabsch สองมิติถ่วงน้ำหนักด้วยความแม่นของแต่ละ fix ได้ทั้งทิศเหนือและพิกัดของจุดกำเนิด

#gis#geospatial#mapping#android
อ่าน 10 นาที·2 ต.ค.
ถอดแบบจาก PDF ที่วาดไม่ตรงสเกล แล้ววาดกลับให้ตรงระยะ
AI

ถอดแบบจาก PDF ที่วาดไม่ตรงสเกล แล้ววาดกลับให้ตรงระยะ

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

#3d-modeling#sketchup#python#pdf
อ่าน 10 นาที·1 ต.ค.
ฟีดข่าวค้างสามวันทั้งที่งานรันครบ เพราะฟีดไม่ได้เรียงตามวันที่
Linux

ฟีดข่าวค้างสามวันทั้งที่งานรันครบ เพราะฟีดไม่ได้เรียงตามวันที่

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

#python#javascript#rss#automation
อ่าน 10 นาที·25 ก.ย.
ส่งไฟล์จากงานอัตโนมัติเข้า Telegram กับเพดาน 50 MB ของ Bot API
Linux

ส่งไฟล์จากงานอัตโนมัติเข้า Telegram กับเพดาน 50 MB ของ Bot API

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

#telegram#bot#automation#python
อ่าน 8 นาที·24 ก.ย.
พอร์ต CDP ยังตอบ แต่สั่งงานไม่ได้ เพราะ Chrome อัปเดตทับตัวเอง
Linux

พอร์ต CDP ยังตอบ แต่สั่งงานไม่ได้ เพราะ Chrome อัปเดตทับตัวเอง

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

#cdp#chromium#automation#windows
อ่าน 9 นาที·23 ก.ย.
ไฟดับ 25 ชั่วโมง แล้วงานตามเวลาที่พลาดไปหายไปเลย
Linux

ไฟดับ 25 ชั่วโมง แล้วงานตามเวลาที่พลาดไปหายไปเลย

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

#windows#scheduler#automation#powershell
อ่าน 9 นาที·22 ก.ย.
งานอัตโนมัติหยุดส่งรูป 4 วัน เพราะ subprocess เลือก ssh ตาม PATH
Linux

งานอัตโนมัติหยุดส่งรูป 4 วัน เพราะ subprocess เลือก ssh ตาม PATH

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

#ssh#python#automation#scp
อ่าน 9 นาที·21 ก.ย.
คุมสวิตช์ทั้งไซต์จากนอกวง ด้วย cloud connector proxy ของ UniFi
Network

คุมสวิตช์ทั้งไซต์จากนอกวง ด้วย cloud connector proxy ของ UniFi

เครื่องทำงานอยู่คนละที่กับไซต์ ไม่มี VPN ไม่เปิดพอร์ตเข้ามา แต่ยังต้องแก้ VLAN รายพอร์ต จอง fixed IP และไล่หาสายเสื่อมได้ บทความนี้เล่าว่า connector proxy ของ Site Manager ยิงต่อไปถึง API ตัวเก่าได้ทั้งอ่านและเขียน โดยไม่ต้องขอ CSRF และวินัยที่ต้องมีเวลาถือคีย์ที่ทำได้ขนาดนี้

#networking#unifi#rest-api#api
อ่าน 10 นาที·18 ก.ย.
ตั้ง VLAN บนสวิตช์ Hikvision ด้วย API ชุดเดียวกับที่หน้าเว็บมันใช้
Network

ตั้ง VLAN บนสวิตช์ Hikvision ด้วย API ชุดเดียวกับที่หน้าเว็บมันใช้

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

#networking#vlan#switch#poe
อ่าน 9 นาที·17 ก.ย.
ใช้ NVR เป็นประตูเข้าหากล้องที่ยิงตรงไม่ถึง ด้วย ISAPI และ SDK
Network

ใช้ NVR เป็นประตูเข้าหากล้องที่ยิงตรงไม่ถึง ด้วย ISAPI และ SDK

กล้องอยู่หลังขาที่สองของ NVR ยิงตรงไม่ถึงเลยสักตัว บทความนี้ไล่ว่า ISAPI ของ NVR ทำอะไรได้จริงบ้าง ใช้ได้ 26 จาก 38 endpoint ที่ลอง ดึงภาพนิ่งกับ RTSP ของกล้องวงปิดผ่าน NVR ค้นว่าช่องไหนบันทึกล่าสุดเมื่อไหร่ และตอนที่ ISAPI จนแต้มก็ลงไปเรียก HCNetSDK ผ่าน ctypes เพื่ออ่าน log ของเครื่อง

#cctv#hikvision#nvr#isapi
อ่าน 11 นาที·16 ก.ย.
ทุกชั้นรายงานสำเร็จพร้อมกัน ทั้งที่ผลลัพธ์เป็นขยะ
Linux

ทุกชั้นรายงานสำเร็จพร้อมกัน ทั้งที่ผลลัพธ์เป็นขยะ

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

#automation#python#monitoring#debugging
อ่าน 10 นาที·15 ก.ย.
ออกใบเสนอราคา PDF ภาษาไทยจาก HTML ด้วย Chromium และกับดักที่เจอ
Linux

ออกใบเสนอราคา PDF ภาษาไทยจาก HTML ด้วย Chromium และกับดักที่เจอ

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

#pdf#chromium#playwright#python
อ่าน 9 นาที·31 ส.ค.
ดักโปรโตคอลเครื่องพิมพ์ฉลากบลูทูธจาก btsnoop แล้วสั่งพิมพ์เอง
Linux

ดักโปรโตคอลเครื่องพิมพ์ฉลากบลูทูธจาก btsnoop แล้วสั่งพิมพ์เอง

เครื่องพิมพ์ฉลากบลูทูธที่มีแต่แอปบนมือถือ ต่อเข้าระบบตัวเองไม่ได้ ผมเลยเปิด HCI snoop log บนมือถือของตัวเอง ลอก HCI/ACL/L2CAP/RFCOMM ออกทีละชั้นด้วย parser Python สั้นๆ แล้วเทียบกับไลบรารีโอเพนซอร์สจนอ่านคำสั่งออก และสั่งพิมพ์เองได้จากสคริปต์

#bluetooth#ble#python#reverse-engineering
อ่าน 9 นาที·25 ส.ค.
ออดิตกล้อง CCTV ในวงเองด้วย ISAPI กับ ffprobe RTSP ไม่ผ่าน NVR
Network

ออดิตกล้อง CCTV ในวงเองด้วย ISAPI กับ ffprobe RTSP ไม่ผ่าน NVR

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

#cctv#hikvision#python#networking
อ่าน 9 นาที·24 ส.ค.
วางแผนช่อง WiFi 2.4GHz ไม่ให้ทับกัน 1/6/11 พร้อมทำ heatmap หลายชั้น
Network

วางแผนช่อง WiFi 2.4GHz ไม่ให้ทับกัน 1/6/11 พร้อมทำ heatmap หลายชั้น

อาคารห้าชั้น ชั้นละเจ็ดจุด ต้องวางช่อง 2.4GHz ให้ไม่ทับกันทั้งแนวราบและแนวตั้ง บทความนี้ลงรายละเอียดหลัก 1/6/11 ตารางแผนช่องต่อชั้น ค่า Tx power กับ RSSI threshold ที่ตั้งจริง แล้วเขียนสคริปต์ Python วางป้ายช่องลงผังชั้นด้วย PIL ก่อนเดินวัดทำ heatmap

#wifi#networking#rf#python
อ่าน 9 นาที·23 ส.ค.
สำรวจสวิตช์และ AP ด้วย SNMP walk ดึงตาราง MAC ต่อพอร์ตมาทำ inventory
Network

สำรวจสวิตช์และ AP ด้วย SNMP walk ดึงตาราง MAC ต่อพอร์ตมาทำ inventory

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

#snmp#networking#python#monitoring
อ่าน 9 นาที·22 ส.ค.
อ่าน uptime อุปกรณ์ที่ไม่มี SNMP/SSH/API ด้วย TCP timestamp
Network

อ่าน uptime อุปกรณ์ที่ไม่มี SNMP/SSH/API ด้วย TCP timestamp

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

#networking#monitoring#linux#python
อ่าน 7 นาที·20 ส.ค.
Googlebot โดนไฟร์วอลล์ตัวเองแบนถาวร จนเว็บหายจากผลค้นหา
Security

Googlebot โดนไฟร์วอลล์ตัวเองแบนถาวร จนเว็บหายจากผลค้นหา

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

#csf#firewall#seo#googlebot
อ่าน 10 นาที·14 ส.ค.
ซ่อมไฟล์ session .jsonl ของ Claude Code ที่บวม 38 MB จนเปิดไม่ขึ้น
AI

ซ่อมไฟล์ session .jsonl ของ Claude Code ที่บวม 38 MB จนเปิดไม่ขึ้น

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

#claude-code#ai#python#automation
อ่าน 8 นาที·8 ส.ค.
นำเข้า/ย้ายข้อมูลไทยให้ไม่พัง: กับดัก VARCHAR, idempotency, สระ OCR
Linux

นำเข้า/ย้ายข้อมูลไทยให้ไม่พัง: กับดัก VARCHAR, idempotency, สระ OCR

บทเรียนจริงจากงานนำเข้า/ย้ายข้อมูลไทยหลายแสนแถว — VARCHAR สั้นไปตัด synthetic key จนชนกันเงียบๆ, idempotency ที่ต้อง DELETE ก่อน INSERT ไม่งั้นยอดพุ่ง 200%, collation ที่มอง su001 กับ SU001 เท่ากันแต่เก็บทั้งคู่, และสระไทยเพี้ยนจาก OCR ที่ต้องมี normalization map ก่อน insert

#migration#mariadb#mysql#debugging
อ่าน 9 นาที·24 ก.ค.
port สูตร Excel มาเว็บให้ตรงทุกตำแหน่งทศนิยม: กับดัก floating point
Linux

port สูตร Excel มาเว็บให้ตรงทุกตำแหน่งทศนิยม: กับดัก floating point

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

#automation#python#debugging#structural
อ่าน 8 นาที·23 ก.ค.
อนุมานจังหวะ defrost ห้องเย็นจากความชันอุณหภูมิ ไม่ง้อเซนเซอร์ความชื้น
Linux

อนุมานจังหวะ defrost ห้องเย็นจากความชันอุณหภูมิ ไม่ง้อเซนเซอร์ความชื้น

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

#refrigeration#iot#monitoring#python
อ่าน 10 นาที·22 ก.ค.
เกณฑ์ราคากลางคอมพิวเตอร์ ICT ภาครัฐ + จัดสเปก DIY ด้วยสคริปต์
Linux

เกณฑ์ราคากลางคอมพิวเตอร์ ICT ภาครัฐ + จัดสเปก DIY ด้วยสคริปต์

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

#sysadmin#python#automation#hardware
อ่าน 9 นาที·22 ก.ค.
เล่นกล้อง AI reCamera + gimbal: cross-compile RISC-V + CAN + Node-RED
Linux

เล่นกล้อง 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

#recamera#iot#automation#python
อ่าน 10 นาที·21 ก.ค.
คุม TP-Link Omada OC200 ผ่าน REST API ด้วย Python
Network

คุม 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

#omada#networking#api#python
อ่าน 8 นาที·20 ก.ค.
ทำ network-as-code บน MikroTik RouterOS
Network

ทำ network-as-code บน MikroTik RouterOS

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

#mikrotik#routeros#networking#automation
อ่าน 9 นาที·19 ก.ค.
อ่านมิเตอร์ 3 เฟส DTSU666 ด้วย Raspberry Pi ผ่าน Modbus RS485
Linux

อ่านมิเตอร์ 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 พร้อมบั๊กค่าติดลบที่ผมเจอเอง

#modbus#rs485#iot#dtsu666
อ่าน 11 นาที·19 ก.ค.
แคปหน้าจอเว็บทีละหลายโดเมน + บังคับให้ชนเซิร์ฟเวอร์ต้นทาง ข้าม Cloudflare
Network

แคปหน้าจอเว็บทีละหลายโดเมน + บังคับให้ชนเซิร์ฟเวอร์ต้นทาง ข้าม Cloudflare

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

#debugging#cloudflare#python#automation
อ่าน 7 นาที·18 ก.ค.
อ่าน Modbus RTU ผ่าน gateway RS485 ให้ไม่ได้ค่าผี — บทเรียนจากงานจริง
Linux

อ่าน Modbus RTU ผ่าน gateway RS485 ให้ไม่ได้ค่าผี — บทเรียนจากงานจริง

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

#modbus#rs485#iot#python
อ่าน 9 นาที·15 ก.ค.
สร้าง .ppk ให้ plink/pscp บน Windows โดยไม่ต้องเปิด puttygen
Linux

สร้าง .ppk ให้ plink/pscp บน Windows โดยไม่ต้องเปิด puttygen

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

#ssh#putty#windows#python
อ่าน 7 นาที·15 ก.ค.
สร้าง QR พร้อมเพย์ (EMVCo) ด้วย Python ล้วน — ไม่ต้องพึ่งไลบรารีนอก
Linux

สร้าง QR พร้อมเพย์ (EMVCo) ด้วย Python ล้วน — ไม่ต้องพึ่งไลบรารีนอก

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

#python#promptpay#api#automation
อ่าน 8 นาที·15 ก.ค.
กู้รูปเว็บเก่าที่หายไป ด้วย Wayback Machine CDX API + Python
Backup

กู้รูปเว็บเก่าที่หายไป ด้วย Wayback Machine CDX API + Python

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

#wayback#python#backup#disaster-recovery
อ่าน 9 นาที·7 ก.ค.