บั๊กหลุมดำ Build 780
ถ้าใครใช้ Surveyor Pocket Tools รุ่นก่อนหน้านี้คือ V 1.41 build 780 จะพบว่าเมื่อเปิดโปรแกรมมาแล้ว หน้าต่างเมนูหลักจะปรากฎออกมา พร้อมกับมีทูลส์ต่างๆให้เลือกใช้ เมื่อมีการเปิดใช้ทูลส์เช่น UTM-Geo Converter, Transform Coordinates เป็นต้น เวลาผู้ใช้ขยับหน้าต่างของเมนูหลัก จะทำให้ทูลส์ต่างๆที่เปิดไว้โดนดูดหายไปที่สร้างความหงุดหงิดให้พอสมควรในกรณีที่มีการป้อนข้อมูลไว้ ปัญหาการใช้งานดูได้จากคลิปด้านบน
แก้ไขด้วย Build 796
ความจริงผมเจอนานพอสมควรแต่หาเวลาว่างมาแก้ไขไม่ได้ จนกระทั่งในช่วงปีใหม่ 2025 พอมีเวลาว่างเลยมาแก้ไข ปัญหาบั๊กนี้เกิดจาก Pyside6 รุ่นก่อนที่เพี้ยน เมื่อผมติดตั้ง Pyside6 รุ่นใหม่ (6.8.0) อาการก็หายไป พร้อมกันนี้ได้อัพเดลไลบรารีตัวอื่นๆด้วยเช่น pyproj, openpyxl, lxml เป็นต้น ที่แก้ปัญหาแล้วดูได้ตามคลิปด้านล่าง
เมื่อผู้สร้างโปรแกรมโดนวินโดส์ยัดข้อหาให้ว่าเป็นผู้สร้างไวรัส
เนื่องจากไม่ได้อัพเดทแอพนาน พออัพเดทแล้วสิ่งที่ต้องทำต่อคือเอาโค้ดของไพทอน มาสร้างไฟล์ exe ด้วย Pyinstaller เรียกกระบวนการนี้ว่าการฟรีส (Freeze) แต่มาเจอปัญหาของ Pyinstaller ที่วินโดส์คิดว่าไฟล์ที่สร้างจาก Pyinstaller นั้นเป็นไวรัสหรือโทรจัน
ปัญหา Pyinstaller
เมื่อตามไปอ่านในฟอรั่มพบว่าปัญหานี้ได้เกินขึ้นมาปี สองปีกว่าแล้ว ปัญหาจริงๆเท่าๆที่อ่านพอจับใจความได้ว่า ไฟล์ exe ที่ Pyinstaller สร้างจากโค้ดไพทอนจะมีพฤติกรรมคล้ายๆกับของไวรัส ตรงนี้ผมก็สงสัยว่าทำไม Pyinstaller สร้าง exe ด้วยกระบวนการนี้มาเป็นสิบๆปีแล้ว ทำไมแอนตี้ไวรัสต่างๆไม่เคยมีปัญหา ในตอนนี้แอนตี้ไวรัสต่างๆรวมทั้งของวินโดส์ด้วยถึงพร้อมใจกันมาจับตายกัน ส่วนนี้ทางผู้พัฒนา Pyinstaller บอกว่าแก้ไขอะไรไม่ได้
โบกมือลา Pyinstaller
ในฟอรั่มต่างๆก็มีการแนะนำตัวอื่นได้แก่ cx_Freeze, Nuitka และ Py2exe ผมเคยลอง Nuitka อยู่พักหนึ่งเมื่อห้าปีที่แล้ว จึงเลือกตัวนี้ ส่วน cxFreeze ไม่เคยใช้ เคยใช้ Py2exe แต่นานมากแล้วไม่ค่อยประทับใจในตอนนั้น แต่จากการลอง Nuitka แล้วใช้เวลาเกือบทั้งวัน เพราะ Surveyor Pocket Tools ใช้ไลบรารีหลายตัว และต้องมีการขนข้อมูลไปด้วย ทำให้การแกะ Nuitka ใช้เวลาพอสมควร
ใช้ Nuitka แต่หวุดหวิดโดนข้อกล่าวหาว่าสร้างไวรัส
การฟรีสไฟล์ exe ด้วย Nuitka มีหลายออปชั่นให้เลือก เช่นฟรีสให้เหลือไฟล์เดียว (onefile) หรือฟรีสแบบยืนเดียวดาย (standalone) ที่นอกจากจะได้ไฟล์ exe แล้วยังพ่วงโฟลเดอร์ของไลบรารีอื่นมาเป็นกระบุง ผมลองดูไฟล์เดี่ยว (onefile) ปรากฎว่าตอนฟรีสไม่มีปัญหา แต่ตอนใช้งานจะมีการคลี่ไฟล์บีบอัดที่อยู่ใน exe ไปไว้ที่โฟลเดอร์ temp ของวินโดส์ ก็ได้เรื่องทันที วินโดส์ฟ้องว่าเป็นไวรัสหรือโทรจัน ต้องอุทานกันเลย อิหยังวะ…. วิธีการนี้ก็เลยหยุดไปโดยปริยาย กลับมาใช้การฟรีสแบบยืนเดียวดาย (standalone) ที่ไม่มีปัญหา
สร้างไฟล์ติดตั้งด้วย Inno Setup
สุดท้ายเมื่อได้ไฟล์ exe มาแล้วพร้อมโฟลเดอร์ไฟล์ไลบรารีสามกระบุง ผมก็พร้อมจะสร้างไฟล์ติดตั้ง ผมเลือกเพื่อนเก่า Inno Setup ของคุณ Jordan Russel เหมือนเดิม สุดท้ายจะได้ไฟล์ setup หรือ installer สำหรับวินโดส์ สำหรับ Surveyor Pocket Tools รุ่น 1.42 build 796 สามารถดาวน์โหลดได้ที่หน้าดาวน์โหลด (Downloads) โปรดติตตามกันตอนต่อไปครับ