Tuesday, April 12, 2011

gnupot โปรแกรมเอนกประสงค์ และ ฟรี

ผับที่แวะเวียนเข้าไป ยามว่าง
เขียนผ่านไปนานแล้ว จึงมาพบว่า สะกดคำผิดไป gnuplot ดันเขียนเป็น gnupot เออหนอ คนเราก็ยังงี้แหละ บอกแล้วไงว่า เขียนเอง อ่านเอง ตรวจเอง ยากที่จะหาที่ผิดพลาดเจอได้ง่ายๆ

ไม่เปลี่ยนมันหรอก ชื่อเรื่องน่ะ มาบอกกันในนี้เลยดีกว่า  บางที imperfect มันก็ make beauty ได้น่ะ

ไม่แก้ แต่ ขออภัยในความผิดพลาดครั้งนี้ด้วย แม้จะช้าไป ก็ ขออภัยด้วยครับ

๔ สิงหาคม ๒๕๕๔
๑๘.๐๐ นาฬิกาโดยประมาณ 

freshports เป็นหน้าเว้ป ที่ มะไฟ แวะเวียนเข้าไปดูอย่างสม่ำเสมอ เวลาว่างที่ ไม่มีอะไรทำ หรือ ยามมีปัญหา freshports ก็เป็นหนึ่งในที่ที่หาทางแก้ได้

เมื่อวานนี้ แวะเข้าไปเจอ maxima ให้สงสัยว่ามันคืออะไร
เพราะเห็นว่า FreeBSD ports เขายังมีระบบพีชคณิตให้อยู่ ซึ่งพีชคณิตนี้ เป้นการเรียนการสอนในระดับมัธยมศึกษาเท่านั้นเอง แม้ในระดับอุดมศึกษาจะมี ก็แต่ชั้นสูงเท่านั้นหรอก และมีไม่กี่แห่งด้วย จึงให้สงสัย

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

moebius curve ด้วย maxima
นอกเหนือไปจากนี้ ตัวที่ดำเนินงานของงาน ก็คือ clisp ซึ่งถ้าท่าน อืมม พี่พี่ซิ ยังงงงๆอยู่ว่ามันคืออะไร ก็ลองตัดตัว c ที่หมายถึง common หน้าคำ clisp ออก มันยิ่งทำให้มึนงงงไปกันใหญ่ เพราะเหลือเพียง LISP

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

อีกที อีกตัวอย่าง ถ้าเรามองลำดับเหตุการณ์ที่เกิดขึ้นกับตัวเราเอง แต่ละคน แต่ละคนไป (อันนี้ถ้าจะเขียนแบบมี ไม้ยมก คงต้องเขียนเป็น (แต่ละคน)ๆไป เน้าะ เพราะถ้าเขียน แต่ละคนๆไป ก็จะกลายเป็น แต่ละคนคนไป ซึ่งไม่ใช่สิ่งที่อยากเขียนออกมา) ก็พอมองออก เพราะง่ายดี ก็เรื่องของเรานี่หว่า แต่นั่นแหละ นั่นคือ ลำดับเหตุการณ์ list of events

อีกสักหนึ่งตัวอย่างของ LISP ถ้าไม่รู้จะเอาอะไรมาดี ก็ให้นึกถึงตัวเลขสองตัวท้ายรางวัลที่ออกทุกงวด สัก ๕ งวดสุดท้าย ของแต่ละปี ไล่ย้อนหลังไป ๗ ปีท้ายสุด แล้วเลือกมาสัก ปีหนึ่งก็แล้วกัน มันไม่มีอะไรเลย นอกจาก ลำดับของตัวเลข list of two digits

lists ทั้งหลายเหล่านี้ ถ้าเรานำมันมาประมวลผลเข้า หรือนำมา process เข้า ด้วยกฏเกณฑ์ที่ตั้งขึ้นมา ก็ทำให้ได้ผลลัพธ์ของการประมวลผล lists ต่างๆเหล่านั้น

แก่นของเรื่องราว gnuplot และ lisp
การประมวลผล lists ต่างๆเหล่านี้แหละ เรียกรวมๆว่า lists processing ที่คนเมื่อหลายปีก่อนเขียนย่อๆว่า LISP ซึ่งก็คือ LISt Processing หรือ LISP ในภาษา คอมพิวเตอร์ อีก ๑ ภาษา ที่ท่านต้องปวดหัวกับวงเล็บ ที่ยกตัวอย่างมาในนี้นั่นแหล อิอิ เอ้ย คริคริ

แบบจำลอง การเดินเครื่องปฏิกรณ์นิวเคลียร์  ที่ยกตัวอย่างมา รวมทั้งระบบผู้เชี่ยวชาญ ก็เขียนด้วย LISP นี่แหละน่อ

เรากลับมาที่ gnuplot กันอีกที ในคราวที่ได้รับคำสั่งให้เขียนโปรแกรมเคลื่อนที่ ๑ มิติ และแสดงผลออกมานั้น การแสดงผลด้วยกราฟ หากจะเขียนขึ่นมาเองอีกต่างหากเป็นกรณีจำเพาะ ก็ย่อมได้ แต่ข้อดีของ UNIX คือมี tools มากมายให้ใช้ เมื่อเป้นเช่นนี้ การทำซ้ำ จึงเป็นการสิ้นเปลืองอย่างยิ่ง  ในคราวนั้น ก็เลือกวิธีนี้มาแก้ปัญหา แม้จะดูไม่ถูกอก ไม่ถูกใจใครบางคน แต่ แก้ปัญหาได้ และ ประหยัดตังด้วย  โดยเลือกใช้ gnuplot มาเขียนกราฟของผลลัพธ์ แทนที่จะเขียนโปรแกรมขึ้นมา plot กราฟผลลัพธ์ อย่างที่เห่อๆทำกัน

เอกสารชิ้นนี้ ต้องการ เน้น ให้ทราบถึงการเลือกใช้วิธีแก้ปัญหา หากมีวิธีอยู่แล้ว ไม่ต้องสร้างขึ้นมาใหม่ gnuplot  สามารถเขียนกราฟได้ทุกรูปแบบ และโปรแกรมนี้เป็นฟรีโปรแกรม ฟรีขนาดว่า ยักษ์ใหญ่อย่าง IBM ยังนำมาเขียนถึง และใช้ด้วย แล้วทำไมเราๆท่านๆที่ เคยจน และยังจนอยู่ จะไม่ใช้

โดยเฉพาะอย่างยิ่ง หน่วยงานราชการที่ต้องการประหยัดงบประมาณ นักเรียน นักศึกษา นิสิตปริญญาตรี โท เอก ทั้งหลาย อิอิ เอ้ย คริคริ แหม เขียนไม่ถูกสมัยนิยมอยู่เรื่อย สมควรที่จะใช้น่ะ
 โดยเฉพาะอาจารย์ทั้งหลาย ที่ชอบใช้ software ราคาแพงนั่นแหละ คุณแม่ คุณพ่อ ของลูกศิษย์ท่าน จะเอาตังจากไหนมาซื้อ software ที่ใช้งานแค่สามเดือนก็โยนทิ้งไป

No comments:


View My Stats