กำเนิดคำว่า “COGO” คำว่า “COGO” เป็นคำย่อรัสพจน์ที่เกิดจากการนำเอาอักษรย่อของชื่อเฉพาะหรือวลีมารวมกัน โดยคำว่า CO คำแรกย่อมาจาก Coordinate คำที่สอง GO ย่อมาจาก Geometry ย้อนไปในราวปี 1950 – 1960 ศาสตราจารย์ชารล์ แอล มิลเลอร์ (Charles L. Miller) แห่ง MIT ได้พัฒนาโปรแกรมที่คำนวณพิกัดเรขาคณิต เรียกว่า COGO (Coordinate Geometry) เมื่อ 60…
Category: Programming
เปิดตัวแอพ “Ezy Geo Pro” บนไอโอเอส
คล้อยหลังการปล่อยแอพ Ezy Geo Pro บนแอนดรอยด์ได้หนึ่งเดือนกว่าๆ และแล้วผมก็พบกับความวิบากเลย สำหรับการเข็นแอพให้ผ่านการรีวิวจากแอปเปิ้ลสโตร์ มีทั้งหยุมหยิมและเรื่องใหญ่ เรื่องใหญ่ๆเช่นจะต้องมี Priavy policy จะต้องมี Term of use ให้ผู้ใช้อ่านได้สะดวก ต้องมีข้อความเตือนผู้ใช้ก่อนจะกด subscribe ผมส่งไปประมาณ 8 ครั้งถึงจะผ่าน ด่านที่โหดที่สุดคือ “Restore purchases” จะช่วยผู้ใช้ที่กรณีเปลี่ยนเครื่องใหม่ หรือติดตั้งแอพใหม่ แล้วต้องการใช้แอพที่เคยซื้อ subscribe คือต้องสามารถคืนสิทธิ์ได้โดยไม่ต้องมีการซื้อเพิ่มแต่อย่างใด เรื่องหยุมหยิมคือห้ามมีคำว่า “Test” อยู่ในแอพเด็ดขาด…
เปิดตัวแอพแรก “Ezy Geo Pro” บนแอนดรอยด์
เปลี่ยนชื่อแอพ ในที่สุดผมก็เข็นครกดันเอาแอพรุ่นแรกสำหรับแอนดรอยด์ออกมาได้สำเร็จ “Ezy Geo Pro” เมื่อวันที่ 9 มกราคม 2023 ที่ผ่านมาก ตัวแอพผ่านการเปลี่ยนชื่อมาแล้วหลายครั้งจาก “Thai Easy Geo” เป็น “A Ezy Geo” สุดท้ายเป็น “Ezy Geo Pro” ครั้งแรกตั้งใจจะทำแอพใช้กันเองในประเทศไทยของเรา แต่ก็มีแฟนเพจเป็นอาจารย์สอนวิชาสำรวจที่สปป.ลาว ที่อยากใช้แอพด้วย ผมก็เลยคิดว่าไหนๆจะทำใช้ที่สปป.ลาวด้วย ก็ทำให้มันใช้ได้ทั้งอาเซียนเลยจะดีกว่า ก็เลยกลายเป็นที่มาของการเปลี่ยนชื่อแอพ เปลี่ยนภาษาและเครื่องมือพัฒนา นอกจากเปลี่ยนชื่อแอพแล้ว ยังมีการเปลี่ยนเครื่องมือการพัฒนา ตอนแรกโครงการนี้เริ่มต้นจาก…
Dart&Flutter: ตกหลุมขวากกับไลบรารี PROJ แบบเนทีฟบน iOS
จะถือว่าเป็นตอนที่สองต่อจาก Dart & Flutter : เส้นทางขวากหนามกับไลบรารี PROJ แบบเนทีฟ ก็ได้ครับ หลังที่ผมปล้ำไลบรารี PROJ แบบเนทีฟตั้งแต่เขาซอร์สโค้ดภาษา C/C++ มาคอมไพล์ให้เป็นสถาปัตยกรรม Arm บนแอนดรอยด์ ไม่ง่ายครับประมาณเดินผ่านขวากหนามพอได้เลือดซิบๆ ตอนนี้มาถึงความโหดของการนำซอร์สโค้ดชุดเดียวกันมาคอมไพล์ให้เป็นสถาปัตยกรรม Arm เช่นเดียวกันแต่ไปรันบน iOS (เคอร์เนลของระบบปฏิบัติการของแอนดรอยด์และ iOS แตกต่างกัน) ถึงตอนนี้ตกไปในหลุมขวากเจ็บกว่าเดินผ่านขวากหนามที่แล้วมา คอมไพล์และบิวท์ไลบรารี Sqlite3 และ PROJ สคริปต์ที่สามารถคอมไพล์ไลบรารีบน iOS มีคนทำให้เสร็จสรรพแยกหมวดหมู่ไว้ดีมาก…
Dart & Flutter : เส้นทางขวากหนามกับไลบรารี PROJ แบบเนทีฟบนแอนดรอยด์
เริ่มต้นจากศูนย์ที่ต้นซอยด้วยการพัฒนาแอพด้วยดาร์ทและฟลัตเตอร์ จากที่ยืนหันรีหันขวางแบบยืนงงว่าจะไปทางไหน ตอนนี้ภาษาดาร์ทได้เริ่มซึมซับเข้าสมองมาบ้างแล้ว เริ่มจากคลานตอนนี้พอจะเดินได้แบบเตาะแตะ เคยบอกไปว่าบนฟลัตเตอร์มีไลบรารี Proj4 ชื่อ Proj4Dart แต่มีปัญหาแปลงพิกัดได้คลาดเคลื่อนโดยเฉพาะระบบพิกัดรถไฟความเร็วสูงไทยจีนประมาณ 27 ซม. จนต้องถอยไปตั้งหลักว่าจะเอาไงดีสำหรับการจะใช้ไลบรารี PROJ บนแฟล็ตฟอร์มแอนดรอยด์และไอโอเอส ทางเลือกแรกใช้ปลั๊กอิน “Chaquopy” ทางแรกเท่าที่ลองคือเอาไลบรารีของไพทอนมารันบนฟลัตเตอร์ด้วย plug-in ชื่อ Chaquopy (Python for Android) ผมชอบผู้พัฒนาปลั๊กอินนี้ที่สามารถเอาภาษาไพทอนขึ้นมารันได้บนแอนดรอยด์ใช้ Android Studio คือโค้ดจาวาหรือ kotlin แต่ยังใช้ไม่ได้ iOS นะครับ ผู้พัฒนาชื่อมัลคอร์ม…
ไปกันให้สุดซอยกับ Dart & Flutter
ภาษาดาร์ท (Dart) ดาร์ท (Dart) เป็นภาษาที่อายุอานามประมาณบวกลบ 10 ปีได้ถือว่าเป็นภาษาโปรแกรมมิ่งที่ใหม่มาก ที่ประมวลเอาข้อดีของโปรแกรมรุ่นเก่าทั้งหลายทั้งมวล ส่วนฟลัตเตอร์ (Flutter) คือเฟรมเวิร์คสำหรับพัฒนาโปรแกรมแบบ cross platform ของกูเกิ้ลที่เขียนโค้ดครั้งเดียวสามารถนำไปรันได้ทั้ง วินโดส์ แมคโอเอส ลีนุกซ์ รวมทั้ง iOS และแอนดรอยด์ด้วย กีวีเฟรมเวิร์คถึงคราวต้องจากกัน หลังจากที่ลาจาก beeware ได้ไม่นาน สองสามเดือนก่อนหน้านี้ผมใช้เวลาพัฒนาแอพด้วยกีวีเฟรมเวิร์ค (Kivy framework) แต่อนิจจาอายุสั้นเหลือเกินสำหรับผมที่ต้องเท เพราะว่ามีบั๊กมากบางอย่างแก้ไม่ตก เครื่องมือบางอย่างเช่น mapview สำหรับแสดงแผนที่ก็ยังไปไม่สุดซอย…
เมื่อลมพัดหวน : Kivy framework เครื่องมือพัฒนาแอพสำหรับโทรศัพท์มือถือ
จากที่ผมรอคอยโครงการ Beeware มาจะร่วมๆสามปีแล้ว แต่พบว่าความก้าวหน้าของโครงการมีการเคลื่อนไหวน้อยมากเหมือนจะหยุดนิ่งสนิท สำหรับโครงการ Beeware คือโครงการทำเครื่องมือพัฒนาโปรแกรมข้ามแพล็ตฟอร์มเพื่อให้ผู้ใช้งานพัฒนาซอฟท์แวร์ด้วยภาษาไพธอน ให้สามารถใช้งานได้ทุกแพล็ตฟอร์มอย่างหลากหลายโดยเฉพาะบนโทรศัพท์มือถือแอนดรอยด์และ iOS เป็นโครงการเปิดโค้ด (open-source) ที่อาศัยการระดมทุนเพื่อหาเงินให้โครงการสามารถเดินหน้าต่อไปได้ สำหรับ Kivy framework (ภาษาไทยออกเสียงกีวี เป็นคำพ้องเสียง Kiwi ที่เป็นชื่อผลไม้ชนิดหนึ่ง) ผมได้ศึกษาเบื้องต้นเมื่อเกือบจะสิบปีที่แล้ว เป็นโครงการเปิดโค้ดคล้ายกับ Beeware แต่ตอนนั้นยังไม่ได้สนใจนักเพราะโครงการเพิ่งจะเริ่มต้นช่วงนั้นยังขลุกขลักอยู่มาก เคยเอาโครงการตัวอย่างประมาณ แสดงผลว่า “Hello world!” มา build เป็นไฟล์ APK เพื่อติดตั้งบนโทรศัพท์มือถือแอนดรอยด์แต่พบว่ากระบวนการยุ่งยากมาก…
ภาษาไพทอนสู่เครื่องคิดเลข HP Prime
ปกติเครื่องคิดเลข HP Prime G2 ที่ผมยกให้เป็นเทพของเครื่องคิดเลขด้านวิทยาศาสตร์ทั้งหลาย ผมเขียนโปรแกรมด้วยภาษา HP PPL หรือ Prime Programming Language คล้ายๆปาสคาลแต่บางอย่างคล้ายไพทอน จากทิศทางที่เครื่องคิดเลขระดับไฮเอ็นต์ของ Casio และ TI ได้นำร่องโดยเอาภาษาไพทอนลงเครื่องคิดเลขไปก่อนหน้านี้ โดยจริงๆแล้วไพทอนในเวอร์ชั่นของเครื่องคิดเลขจะถูกออปติไมซ์ให้ใช้กับเครื่องที่มีความเร็วซีพียูที่ช้าและแรมไม่มากนัก ที่ดังที่สุดได้แก่ ไมโครไพทอน (Micropython) ที่พอร์ตภาษาไพทอนลงไมโครคอนโทรลเลอร์ ทำให้มีไลบรารีจำนวนมากที่ถูกพอร์ตลงมาใช้งานเช่นเดียวกัน อานิสงค์เลยได้มาลงที่เครื่องคิดเลขเช่นเดียวกัน ผมเห็นว่าทีมงานผู้พัฒนาเครื่องคิดเลข Prime ของ HP คงเล็งเห็นแล้วว่าการพัฒนาลากภาษา PPL ให้ใช้ในกลุ่มแคบๆ…
มหาเทพ HP Prime G2 ตอนโปรแกรมคำนวณโค้งดิ่ง (Vertical Curve)
บทความเครื่องคิดเลข HP Prime G2 นับเป็นบทความที่ 3 จากโค้งราบ (Horizontal Curve) มาสู่โค้งสไปรัล (Spiral Curve) และในบทความนี้จะมาปิดที่โค้งดิ่ง (Vertical Curve) สำหรับโค้งทั้งหลายเหล่านี้นำมาประยุกต์ใช้กับงานถนน, รถไฟ และรถไฟฟ้า โค้งดิ่ง (Vertical curve) ที่ผมจะนำเสนอในบทความนี้มี 2 แบบคือแบบโค้งพาราโบลา (Parabola vertical curve) และโค้งแบบวงกลม (Circular vertical curve) ส่วนใหญ่ที่เป็นนิยมมากที่สุดคือโค้งแบบพาราโบลา…
ไขความลับดำมืดโค้งสไปรัล ตอนที่ 1
จากที่ผมได้เขียนโปรแกรมลงเครื่องคิดเลข HP Prime G2 คำนวณโค้งสไปรัล ทำให้เห็นว่าจะต้องใช้สูตรตัวไหน เริ่มต้นคำนวณอย่างไร เป็นลำดับขั้นตอนไปอย่างไร ช่างสำรวจหรือวิศวกรสำรวจน้อยคนนักที่จะได้คำนวณโค้งสไปรัล ปัจจุบันโปรแกรมออกแบบงานถนน งานรถไฟอย่าง Civil 3D สามารถออกแบบงานได้ตั้งแต่เริ่มต้นจนจบ การไปเลเอ้าท์หน้างานก็อาศัยโปรแกรมจากแคด จึงทำให้โอกาสน้อยคนที่จะสามารถคำนวณเองด้วยมือได้ ความลับดำมืดจึงยังคงอยู่กับโค้งสไปรัลต่อไป แต่ถ้าตั้งใจทำความเข้าใจลำดับการคำนวณโค้งสไปรัลก็ไม่ได้ยากเลย เพียงแต่ต้องหาสูตรให้ถูกที่ถูกทางก่อน หลายๆสูตรไปผูกกับหน่วยฟุตแนบแน่น จนทำให้คนใช้หน่วยเมตริกแบบพวกเรามาตั้งแต่เรียนจบ ออกอาการงงๆเบลอๆ ยุคนี้เป็นยุคงานก่อสร้างรถไฟความเร็วสูง (High Speed Rail) โค้งที่นำมาประยุกต์ใช้เป็นโค้งสไปรัล ดังนั้นช่างสำรวจและวิศวกรสำรวจควรจะทำความเข้าใจให้กระจ่าง ที่ผ่านมาผมก็เช่นกันเห็นตำราคำนวณโค้งสไปรัลแล้ว จับต้นชนปลายไม่ถูก เนื่องจากสูตรดูเหมือนเยอะทำให้เข้าใจไม่ทะลุปรุโปร่งสักที บทความนี้จะนำเสนอสูตร…