แสดงบทความที่มีป้ายกำกับ Geany แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Geany แสดงบทความทั้งหมด

วันเสาร์ที่ 2 พฤษภาคม พ.ศ. 2563

ทำไมถึงเขียน ภาษา C และ Gtk+ 2.0

หลังจากที่เริ่มเขียนโปรแกรมภาษา C และ Gtk+ 2.0 มาได้ประมาณ 2 สัปดาห์ ก็มีหยุดบ้างทำบ้าง มีหายไปประมาณ 3-4 วัน และบางทีก็ทำสลับกับงานอื่นๆ ไป แต่บางครั้งก็นั่งหน้าจอมากกว่า 12 ชั่วโมง เพื่อค้นหาข้อมูล คิดหาวิธีการเขียนโปรแกรม บางทีเมื่อคิดไม่ออกก็เปลี่ยนไปนั่งทำอย่างอื่นบ้าง ไปหาข้อมูลเกี่ยวกับ Micro-controller หรือไม่ก็ไปไสไม้ทำกล่อง ทำชั้นเรื่อยเปื่อย

เดิมทีจะเขียนระบบ Digital Designage

ถึงตอนนี้การเขียนภาษา C โดยใช้ Gtk+ ก็ถือว่าก้าวหน้าไประดับหนึ่ง สามารถเขียนได้เป็นเรื่องเป็นราว แต่ก็ยังติดขัดปัญหาอยู่บ้าง บางทีก็ติดเรื่องหาตัวอย่างและข้อมูลไม่ได้ทันที กว่าจะเจอก็ใช้เวลานานพอควร

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

ใน Gtk+ ก็มีสิ่งเหล่านี้รองรับหมดแล้ว และเหนือกว่าบางโปรแกรมด้วยซ้ำไป แต่ปัญหา คือ ตัวอย่างและเอกสารต่างๆ บางทีก็ยากที่จะเรียนรู้ หากเมื่อเทียบกับการเรียนรู้ FoxPro ในอดีต สิ่งหนึ่งที่ผู้เขียนชอบมาก คือ กดปุ่ม F1 เพื่ออ่าน Help ของโปรแกรม และแต่ละส่วนก็จะมีตัวอย่างให้เราพิมพ์ตาม จนแทบไม่ต้องหาจากหนังสือเลย (สมัยนั้นไม่มีแหล่งเรียนรู้ใน www ต้องหาจากหนังสือหรือ Help นี่แหละ และสมัยนั้นลงทุนซื้อหนังสือต่างประเทศราคา 2-3 พันบาทก็มี)

วันเสาร์ที่ 11 เมษายน พ.ศ. 2563

เริ่มต้นใช้ gtk ด้วยภาษา C ตอนที่ 1

พูดถึงภาษา C เชื่อว่าหลายคนในบ้านเราร้องยี้กันมาก เพราะคิดว่ามันยาก เอาเข้าจริง ภาษา C ไม่ได้ยากแต่การเอาภาษา C มาใช้งานเพื่อให้เป็นระบบนั่นแหละยาก กล่าวอย่างนี้ไม่ใช่การเล่นคำอะไรทั้งสิ้น หากแต่เทียบง่ายๆ ภาษา C ก็เหมือนภาษาอังกฤษ ที่มีหลักการมีไวยากรณ์ที่เป็นพื้นฐาน เราสามารถเลือกเรียนรู้ได้ตามที่ต้องการ แต่เมื่อต้องการนำไปใช้งานในระดับกว้างแล้วภาษา C กลับถูกเลือกใช้น้อยกว่าภาษาอื่นๆ อย่างเช่น C# เป็นต้น

แม้กระทั่งการเขียนโปรแกรมสำหรับ Arduino ก็นิยมใช้ C++ เช่นกัน แต่สำหรับบนลีนุกซ์แล้วภาษาที่ผู้คิดค้นเขาเลือกใช้ ภาษา C จึงเป็นเรื่องที่น่าสนใจเป็นอย่างยิ่งในการเรียนรู้ ดังนั้นผู้เขียนจึงได้พยายามค้นหาข้อมูลเพื่อเรียนรู้ว่าจะเขียนโปรแกรมบน Linux ได้อย่างไร แต่เดิมก็เรียบๆ เคียงๆ กับ C++ และ Python ก็มองผ่านภาษา C ไปอีก

จนกระทั่งล่าสุดช่วงที่หยุดอยู่กับบ้านเพราะภัยไวรัสโควิด-19 ก็มีเวลาว่างมากเสียจนไม่รู้จะทำอะไรก่อนหลังดี เพราะไม่มีสมาธิ และรู้สึกสับสนว้าวุ่นเป็นอย่างมาก สุดท้ายก็กลับมาที่ภาษาซี โดยคิดว่าจะเขียนโปรแกรมเล่นๆ แก้เซ็งสักหน่อย พลันก็คิดขึ้นได้ว่า ทำไมเราไม่ลองเขียน GUI ด้วยภาษา C ซะเลยล่ะ


เหตุผลสำคัญหลังจากที่ติดตั้ง Raspberry Pi เรียบร้อยแล้วก็พยายามจะลง Qt แต่ก็ติดปัญหาเรื่องความเร็ว และ Qt กลับทำงานอืดอาดมาก พอเปลี่ยนไปหยิบเอา NanoPi M1 มาลงเพื่อใช้งานดูก็พบว่าทรัพยากรมันจำกัดจำเขี่ยมาก บังเอิญเหลือบตาไปเห็นโปรแกรม Geany เลยลองเปิดดูพบว่าเป็น Editor สำหรับภาษา C ได้เป็นอย่างดีก็เลยลองเขียนเพื่อติดต่อกับ gtk เวอร์ชัน 2.0 ดูก็ใช้งานได้ดีเลยตั้งใจว่าช่วงหยุดงานนี้น่าจะเรียนรู้ภาษา C และ GUI ด้วย gtk ได้ให้จนได้

Gtk4 ตอนที่ 6 Defining a Child object

Defining a Child object A Very Simple Editor ในบทความที่ผ่านมาเราสร้างโปรแกรมอ่านไฟล์ชนิดข้อความ และในบทความนี้ก็จะมาปรับแต่งโปรแกรมกันสักหน...