วันพฤหัสบดีที่ 26 พฤศจิกายน พ.ศ. 2558

Qt 5 Programming X : Call C++ Method

Standard
     สวัสดีครับ มิตรรักแฟนเพลงทุกท่าน ต้อนรับตัวเองในการกลับมาเขียน Blog เกี่ยวกับ Qt QML อีกครั้งหลังจากห่างหายไปนานถึง 2 ป๊ 555+ พอดีมีเหตุต้องใช้งานกัน เขียนล่าสุดตอนนั้น Qt ยัง version 5.0 อยู่เลย ตอนนี้ไป 5.5 แล้วเอาเฮย์ย์ย์ย์ย์ย์ พอดีต้องไปสอนพี่ๆ น้องๆ เขียน Qt ก็เลยต้องมานั่งอ่านนั่งทำ อันที่จริงวิธีการเเรียก Method ของ Class ใน C++ อันนี้ผมเคยเขียนโค๊ดไว้และตั้งใจจะจดไว้ใน blog แต่ว่าด้วยอะไรหลายๆ อย่างทำให้ไม่ได้ทำ วันนี้ได้ฤกษ์ดี จัดซะหน่อย มาเริ่มกันเลยครับ โดยครั้งนี้จะอธิบายจากตัวอย่างโปรแกรมที่เขียนขึ้นนะครับ เพราะว่าดูแล้วมันซับซ้อน อันที่จริงผมเขียนเอง ผมก็ยัง งง งง กับมันอยู่เลย เอาเป็นว่า มือใหม่ แนะนำมือใหม่กว่าแล้วกันครับ โปรแกรมที่ทำขึ้นเป็นตัวอย่างจะแสดงตัวอย่างการ get, set ผ่าน method และการ call method อย่างเดียว



Install opencv on OSX

Standard

  1. Download macport
  2. Install cmake
  3. Download opencv source
  4. cmake opencv source file
  5. cmake -G "Unix Makefiles"
  6. make opencv
  7. make -j8
  8. Install opencv
  9. sudo make install




Ref

วันอังคารที่ 2 มิถุนายน พ.ศ. 2558

ซ่อน Version ของ Nginx

Standard
          ปกติ HTTP Header ของเวลาที่เรา request ไป Web Server จะส่ง ชื่อและ Version ตามมาด้วย แต่การบอก เลข Version และ Web Server ที่เราใช้งานอยู่นั่นย่อมเป็นสิ่งที่ไม่ดี มันเสี่ยงต่อความปลอดภัย ยกตัวอย่างเช่น ถ้าถ้าเราใช้ NGINX Version 1.5.2 อยู่แล้วมีวันนึง ทาง NGINX ประกาศ exploit ของ Version 1.5.2 ออกมา สบาย Hacker เลย ฉะนั้นเราจึงควรซ่อน ชื่อและ Version ของ Web Server ที่เราใช้งานอยู่ แต่เนื่องจากการซ่อนชื่อของ NGINX จะต้อง Compile Code ใหม่ แต่การซ่อนเลขเวอร์ชั่นนั้นทำได้ง่ายกว่า คือ
แก้ไขไฟล์ /etc/nginx/nginx.conf ในส่วนของ Server เพิ่ม server_tokens off; เข้าไป 

ลองตรวจสอบดูครับ

Header Server ก่อนปิด Version 

Header Sever หลังปิด Version

วันอาทิตย์ที่ 10 พฤษภาคม พ.ศ. 2558

Arduino : ทำไมเราควรใช้งาน #define

Standard
       
      ก็ตอนแรกตั้งใจจะเขียน แต่คิดอีกที ลองพูดดูดีกว่า ลองดูตามคลิปเลยครับ



Code ตัวอย่าง 

วันพฤหัสบดีที่ 7 พฤษภาคม พ.ศ. 2558

Arduino : จัดการข้อมูลจาก Serial Port ด้วย State Machine

Standard
     State Machine แปลตรงๆ ก็คือสถานะเครื่องจักร ถ้าใครเคยออกแบบวงจร Digital ด้วย Logic gate ที่มีสถานะ อาจจะพอนึกภาพออกมันคือรูปวาดกลมๆ แล้วมีเส้นลากไปลากมา
     State Machine เหมาะกับเอามาใช้กับข้อมูลแบบ Stream ที่เรารู้รูปแบบของข้อมูลที่แน่นอนครับ ซึ่ง Serial Port ก็เป็นข้อมูลแบบ Stream ด้วย
     โจทย์คือ เราจะรับข้อมูลแบบ stream ในรูปแบบ <XXXXXX>  โดยที่
< คือไบต์เริ่มต้น หรือ Header
> คือไบต์สิ้นสุด หรือ Footer
XXXXX คือข้อความ

     การเริ่มตอนออกแบบ State Machine เพื่อให้เห็นภาพง่ายๆ ควรเริ่มจากการวาดรูปแผนภาพ