ผมศึกษาภาษาปาสคาลตอนเรียนอยู่มหาวิทยาลัยปีสี่อายุตอนนั้น 24 ปี เรียนภาษาปาสคาลด้วยตัวเองต่อมาใช้เขียน Traverse Pro ในขณะเดียวกันก็ศึกษา C ควบคู่ไปด้วยแต่ไม่ชำนาญ มาศึกษาไพทอนตอนอายุ 44 ปี ใช้ไพทอนเขียนโปรแกรมสำหรับ desktop ไว้หลายตัวเช่น Surveyor Pocket Tools สิบปีให้หลังอายุ 54 ปี ศึกษาภาษาดาร์ดกับฟลัตเตอร์เขียนแอพลงบนมือถือแอนดรอยด์หลายตัว เนื่องจากในยุคนี้ภาษาที่มาแรงที่สุดคือภาษา Rust ถ้าตาม timeline ผมน่าจะต้องรออายุ 64 ปีก่อนถึงค่อยศึกษา 🙂 แต่คงไม่ต้องรอนานขนาดนั้นเพราะโลกนี้ไม่แน่นอน ชีวิตยิ่งไม่แน่นอน…
Tag: Programming
Pico W โครงการ #1 ทดลองประดิษฐ์ Pico Echo Sounder จากทรานสดิวเซอร์ Airmar DT800
ผมว่างเว้นจากไม่ได้จับบอร์ดไมโครคอนโทรลเลอร์ไปพักใหญ่หลายปี เมื่อสิบกว่าปีที่แล้วเคยจับ Arduino เขียนโค้ดด้วยภาษาซี ก็สนุกดีได้ความรู้พอสมควร มาในปัจจุบันเป็นยุคของไอโอที (iOT : Internet of Thing) เป็นยุคของอินเทอร์เน็ตของสิ่งของที่ไม่ใช่อินเทอร์เน็ตของมนุษย์ สร้าง Echo sounder จากทรานสดิวเซอร์ Airmar DT800 มีโอกาสมาจับบอร์ด Raspberry Pi Pico W เพราะต้องการเอาทรานสดิวเซอร์ Airmar DT800 ที่ผมซื้อมาเพื่อจะทำเรือรีโมทแต่โครงการล้มไปก่อน อาจจะมารื้อฟื้นอีกทีก็ได้ ในตัวทรานสดิวเซอร์ Airmar DT800 ข้างในฝังด้วยชิปวงจรที่แปลงค่าความลึกที่อ่านได้จากทรานสดิวเซอร์…
โปรแกรมมิ่ง: เขียนโค้ดไพทอนสร้างเส้นชั้นความสูง (contours) ด้วยไลบรารี matplotlib
เป็นความฝันของผมอันหนึ่งตั้งแต่สมัยจบใหม่ๆที่จะเขียนโปรแกรมสร้างชั้นความสูงจากข้อมูลจุดงานสำรวจ x, y, z แต่จนแล้วจนเล่าโครงการนี้ไม่เคยเกิดสักที เนื่องจากความรู้ความสามารถและทักษะไม่เพียงพอ ด้วยความยากในการคิดอัลกอริทึมที่จะสร้างสามเหลี่ยมด้านที่สั้นที่สุดจากจุด (point) งานสำรวจ จนกระทั่งเลยวัยแห่งความฝันอันนั้นมาไกลมากแล้ว ปัจจุบันในยุค open source มีไลบรารีด้านนี้ที่มีโมดูลส่วนหนึ่งที่มีความสามารถใกล้เคียงที่สามารถนำมาสร้างเส้นชั้นความสูงได้คือ matplotlib ไลบรารี matplotlib ตัว matplotlib เองถูกนำไปใช้ร่วมกับ numpy, pandas สุดยอดของไลบรารีไพทอนที่นำไปประมวลผลงานด้าน Data Science & Data Analysis ตลอดจน Machine Learning ทะลุไปถึง…
โปรแกรมมิ่ง: เขียนโค้ดไพทอนดึงข้อมูลออนไลน์ของโควิด-19 มาประมวลผลด้วย Pandas
ในขณะที่กำลังกักตัวอยู่ในสถานการณ์ไวรัสโคโรน่าระบาด ผมได้เข้าคอร์สเรียนออนไลน์ไปหลายวิชา เพื่อใช้เวลาว่างให้เป็นประโยชน์ ค่าหน่วยกิตแต่ละวิชาค่อนข้างจะกระเทือนไตพอสมควร ไม่มีคอร์สไหนต่ำกว่าพันห้าร้อยบาท จะลองคอร์ส AI/Big Data ก็ประมาณหมื่นกว่าบาทได้แต่ถอยกรูดๆ ผมได้ตระเวนไปดูบทความของท่านอื่นที่เกี่ยวข้องกับโปรแกรมมิ่งพบหลายๆเว็บนำเสนอการดึงข้อมูลของไวรัสโคโรน่าด้วยโค้ดไพทอน ผมเห็นว่าน่าสนใจสำหรับนักศึกษาที่กำลังศึกษาไพทอน ผมเลยประมวลผลคือจับโค้ดจากหลายๆเว็บมายำรวมมิตรกัน ผลลัพธ์ก็ได้อย่างที่กำลังจะติดตามกันต่อไป อาจจะไม่ลึกมากแต่ก็เป็นพื้นฐานโดยเฉพาะคนที่กำลังสนใจด้าน Data Science ตอนนี้แต่ละคนใจคงจดจ่ออยู่ที่ว่าพื้นที่หรือประเทศตัวเองอยู่นั้นมีการระบาดของไวรัสเป็นอย่างไร มาลองดูประมวลผลข้อมูลพื้นฐาน เราจะดึงข้อมูลจำนวนผู้ติดเชื้อ จำนวนคนที่รักษาหาย หรือจำนวนผู้ตายแบบออนไลน์จากฐานข้อมูลที่มีคนอัพโหลดไปไว้ตาม Github หรือเป็นเว็บไซต์ต่างๆ ที่มีการอัพเอทอยู่ตลอดเวลา ภาษาที่ใช้เขียนโค้ดจะใช้ไพทอน โดยใช้ไลบรารีที่ใช้คือ pandas สุดยอดแห่งไลบรารีในโลกของ Data Science & Data…
เริ่มต้น Python ด้วย PySide2 + Miniconda + PyCharm
ขอนำเสนอวิธีการติดตั้งในเบื้องต้นเพื่อใช้ PySide2 สำหรับผู้ที่เริ่มต้นศึกษาเขียนไพทอน บางครั้งไม่รู้จะเริ่มต้นตรงไหน ผมจะขอแนะนำสามสหายที่จะมาช่วยทำให้ชีวิตง่ายขึ้น PySide2 อยู่ระหว่างการพัฒนาจากเจ้าของ Qt framework เองจึงไม่ต้องห่วงว่าโครงการจะล้มลาเลิกร้างกันก่อน ฟรีและมีสัญญาอนุญาตแบบ LPGL v2 สามารถพัฒนาโปรแกรมเพื่อการค้าได้ รุ่นเสถียรอีกไม่นานนักน่าจะออกมาแล้ว Miniconda3 เป็นส่วนหนึ่งของ Anaconda ซึ่งเป็นเฟรมเวิร์คสำหรับการทำ data science สำหรับภาษาไพทอน ส่วน Miniconda เป็นตัวจัดสภาพแวดล้อมให้ไพทอน เช่นถ้าต้องการพัฒนาโปรแกรมให้สามารถรันได้ทั้ง 32 บิตและ 64 บิต ก็ต้องตัวนี้เลย สามารถเลือกรุ่นของ Python ได้ด้วย…
ปลดพันธนาการ PyQt5 ด้วย PySide2
ตอนนี้ถือว่ามาเล่าสู่กันฟังจากประสบการณ์ เป็นเรื่องโปรแกรมมิ่ง ถ้าไม่สนใจเรื่องโปรแกรมมิ่งก็ผ่านไปได้ครับ PyQt5 กับลิขสิทธิ์แบบ GPL v3 ผมเขียนไพทอนด้วยการใช้ PyQt5 มาได้สักระยะเวลาหนึ่ง น่าจะสองปีกว่าได้ ยอมรับว่าชอบมากๆ ก็ไม่ได้ระแวดระวังเรื่องกฎหมายลิขสิทธิ์เท่าไหร่นัก ลิขสิทธิ์ของ PyQt5 เป็นแบบ GPL v3 ซึ่งสาระโดยรวมๆสามารถเอาไปใช้ได้สองกรณีคือ พัฒนาโปรแกรมแบบเปิดโค๊ด (open source) และแจกจ่ายฟรีพร้อมโค๊ด กรณีนี้ไม่จำเป็นต้องเสียเงินค่าลิขสิทธิ์ แต่ถ้าเป็นกรณีที่สองคือการพัฒนาโปรแกรมเพื่อการค้าและปิดโค๊ด จะต้องเสียค่าลิขสิทธิ์ประมาณ 500US$ ต่อปี ซึ่งไม่น่าจะมากมายนัก ผมเองเอา PyQt5 มาใช้และแจกจ่ายโปรแกรมของผมให้ฟรีก็จริงแต่ปิดโค๊ด…
การเขียนโปรแกรมต่อ GPS ด้วยคอมโพเน็นต์ OpenGPSX (ภาค 4)
OpenGPSX component on SourceForge ผมได้นำ component ตัวนี้ไปใส่ใน SourceForge.net เป็นที่เรียบร้อยแล้ว ถ้าต้องการตัวที่ update ก็ไปดาวน์โหลดกันได้เลยครับ หน้าตาของ OpenGPSX บน sourceforge ก็ประมาณดังรูปด้านล่าง จากตอนที่แล้วเราทำการแปะคอมโพเน็นต์ลงบนฟอร์ม เพื่อทดสอบอย่างง่าย ต่อไปจะเปิด project ของ Lazarus ที่ผมเขียนขึ้นเพื่อนำคอมโพเน็นต์มาใช้งาน สามารถดาวน์โหลดตามลิงค์นี้ opengpsproject.zip ก่อนจะเปิด project นี้ต้องติดตั้งตัวคอมโพเน็นต์ ที่ผมกล่าวไปแล้วในภาคที่ 3 ก่อนนะครับ…
การเขียนโปรแกรมต่อ GPS ด้วยคอมโพเน็นต์ OpenGPSX (ภาค 2)
คอมโพเน็นต์ OpenGPSX Concept ของ component คือผู้พัฒนาโปรแกรมทั่วๆไปสามารถนำ component ของผมไปใช้งานได้ง่าย ใช้เวลาน้อย โดยไม่ต้องมีความรู้เรื่อง GPS มาก ผมเขียนคอมโพเน็นต์ตัวนี้ขึ้นมาเพราะผมใช้ GPS บ่อย ตั้งแต่เครื่องมือถือทั่วๆไปเช่น Garmin หรือบน Pocket PC ก็เคยใช้ จนกระทั่งเครื่อง GPS ระดับ Precise เช่น Trimble, Leica ที่มีสนนราคาเรือนล้านบาท ใช้งานใน mode เช่น…
การเขียนโปรแกรมคำนวณแปลงพิกัดระหว่าง Datum ด้วยไลบรารี GDAL/OGR (ตอนที่ 2)
รูปด้านล่างแสดงตัว object ที่วางลงบนฟอร์มประกอบด้วย 2 combobox เก็บ datum ซึ่งผมจำกัดไว้แค่เท่าที่ประเทศไทยใช้กัน ส่วนตัวอื่นๆ ก็ไม่มีอะไรมาก มี Textbox จำนวน 4 ตัวสำหรับให้ผู้ใช้โปรแกรมกรอกค่าพิกัดที่ต้องการแปลง และ Label จำนวน 4 ตัวเพื่อแสดงค่าพิกัดที่แปลงแล้ว และสุดท้ายคือมี Button จำนวน 2 ตัวเอาไว้แสดงระบบพิกัดที่ดูแล้วเข้าใจง่าย และเรียกรูปแบบการแสดงผลนี้ว่า Well Known Text (WKT) ระบบค่าพิกัดในรูปแบบ EPSG…
การเขียนโปรแกรมคำนวณแปลงพิกัดระหว่าง Datum ด้วยไลบรารี GDAL/OGR (ตอนที่ 1)
ตอนก่อนนี้ ผมเขียนโปรแกรมทดสอบไลบรารี GDAL/OGR ด้วยการเปิดไฟล์รูปแล้วอ่าน Metadata, ระบบพิกัด ตลอดจนแปลงฟอร์แม็ตของไฟล์รูป จะเห็นถึงความสามารถของไลบรารี ที่เตรียมฟังก์ชั่นทุกสิ่งทุกอย่างครอบคลุมด้าน Geospatial ไว้พร้อมสรรพ และไม่ต้องแปลกใจที่โปรแกรมดังๆ เช่น Google Earth, ArcGIS, Quantum GIS ต่างก็นำไปใช้ ดูชื่อโปรแกรมที่นำไลบรารีไปใช้ ที่นี่ และการดาวน์โหลดและการติดตั้งอ่านที่ blog ของผมได้ ที่นี่ ครั้งก่อนผมเขียนโปรแกรมสำหรับคำนวณแปลงค่าพิกัดระหว่าง UTM และ Geographic (Latitude/Longitude) ด้วยการดัดแปลงโค๊ดภาษา c++…