คลังเก็บรายเดือน: มิถุนายน 2016

Node.js กับ ARM device และ ubuntu 12.04

zigbee-meshลองเอา z-stack linux gateway ขึ้นมา ด้วยความที่ ไม่มีบอร์ด beaglebone มองซ้ายขวา มี pandaboard เก่าอยู่ cpu พี่น้องกันน่าจะใช้แทนกันได้ ก็ปรากฏว่า ได้จริงๆ แต่ดันมาเจอปัญหาใหม่

พยายามลง node.js เพื่อใช้งานทำ web server app สำหรับ IoT อย่างที่เค้านิยมทำกัน เลยลองลงจาก repository ปกติ แต่ไม่สามารถทำงานได้ cpu 100% ตลอดเวลา พยายามลง ppa ที่เค้าแนะนำกัน ก็ไม่ได้อีก หาจนเจอว่า เวอร์ชั่นใหม่ๆนั้น ไม่สามารถทำงานได้กับ ubuntu version เก่าๆ สืบเนื่องจาก javascript V8

ก็ต้องเอา version เก่าที่ support ARMV7 มาลงถึงจะใช้งานได้ ต่อมาก็มาติดปัญหาเรื่อง cyclic dependencies อีก (ด้วยความที่ลองแก้ปัญหาหลายวิธีมาก เลยสรุปไม่ได้ว่า สุดท้ายแล้วแก้ได้อย่างไร ทำทั้ง clear cache ลบ module ออกไปทั้ง folder เองเลยก็ทำ) แต่เรียกได้ว่า ลองใช้งาน node.js ครั้งแรก ก็เจอสารพัดปัญหา

นี่ก็เป็นอย่างนึง ที่คิดว่า ถ้าเราเอาสารพัดเทคนิคมายำรวมๆกัน ให้เป็น solution ขึ้นมา ก็จะสร้าง dependency problem ขึ้นมาเยอะมาก ไม่สนุกที่ต้องมานั่งหา root cause และจัดการกับผลกระทบที่เกิดกับส่วนอื่นๆ

C++ อย่างเดียวจบเลยดีกว่ามั้ย อย่างที่นำเสนอในตอนที่ผ่านๆมา

Qt Web framework

สมัยนี้จะเขียนโปรแกรมอะไรก็ต้องเชื่อมต่อเข้ากับเว็บและฐานข้อมูลได้ ไม่เว้นแม้แต่ hardware จึงเป็นที่มาของคำว่า IoT ใช่มั้ยครับ อย่างตอนนี้ผมกำลังดูเรื่อง ZigbBee ซึ่งมันก็จะมี linux gateway ก็เลยจะอยากจะทำ web app ที่สามารถเข้าถึงและจัดการ device พวกนี้ได้บ้าง ดังนั้นจึงได้เวลาที่จะมานั่งหากันดูว่า คนที่ยังนั่งเขียน C++/Qt จะมี framework อะไรมั่งมั้ยนะ ที่มาช่วยทำเรื่องพวกนี้

ดูไปดูมา ก็เจอ 2 ตัวที่น่าลองคือ TreeFrog กับ Cutelyst (จริงๆ search google ขึ้นมามันก็เจอสองตัวนี้ก่อนเพื่อนน่ะแหละ อิอิ) เคยเลือกที่จะดู TreeFrog มาก่อนหน้านี้ ซึ่งดูแล้วใช้งานง่ายกว่า Cutelyst แต่เอาเข้าจริง สำหรับคนที่ไม่รู้คอนเซ็ปต์อะไรเลย แนะนำให้ลองเล่นกับ Cutelyst ก่อน เพราะมี tutorial เจาะไปทีละขั้น ทำให้เราเข้าใจได้ว่า web framework พวกนี้นั้น มีองค์ประกอบอะไรบ้าง เช่น เรื่องของ protocol parser, template engine, REST, การเขียนแบบ MVC และเรื่องของ ORM ซึ่งถ้าเป็น Cutelyst จะใช้หรือไม่ก็ได้ ซึ่งถ้าไม่ใช้ก็เขียนติดต่อฐานข้อมูลด้วย QtSql เอาเองก็ได้

ถ้าเข้าใจคอนเซ็ปต์แล้ว กลับไปเล่นกับ TreeFrog จะเข้าใจมันง่ายมากขึ้นเลย ส่วนใครชอบอันไหนมากกว่าก็เอาตามที่ท่านสบายใจเลยครับ