เก็บตกงาน Software Freedom Day Bangkok 2016

ผมได้มีโอกาสไปงาน Software Freedom Day 2016 ที่มหาวิทยาลัยเกษตรศาสตร์เมื่อวันเสาร์ที่ผ่านมาจัดโดยสมาคมศึกษาและพัฒนาโอเพนซอร์สและหน่วยงานพันธมิตร เนื่องจากมีเวลาอยู่ที่ประเทศไทยอีกเล็กน้อยก็เลยได้เข้าสัมนาและ Workshop บาง session ที่ได้เข้าไปดังนี้

PHP secure coding ปัญหาของการเขียนโค้ดไม่ปลอดภัยยังเป็นปัญหาเดิมๆ เช่น SQL Injection, Cross site scripting, Remote Execution เป็นต้น ซึ่งปัญหาเหล่านี้อยู่ใน OWASP Top 10 issues มาตลอด อาจมีกระแสเรื่องการเลิกเขียน PHP เถอะ หรือหันมาใช้ PHP Framework แต่ช่องโหว่ก็ยังมีอยู่ สรุปคร่าวๆ ที่จำได้

  • ให้ระวังเรื่อง register global อย่ามักง่าย!!
  • อย่าใช้ dynamic include!!
  • ต้องทำ error handling ดีๆ ไม่งั้นหลุด
  • php.ini ช่วยได้เยอะในกรณีที่ใช้เครื่องของตัวเอง
  • ทำ VA และ Pentest กันบ้าง – อันนี้ผมเพิ่มเอง

Data Science Essentials ใน session นี้ปูพื้นเรื่องความรู้ด้าน Big Data กันเลยทีเดียว จะไปจบที่เครื่องมือ OpenSource ที่สามารถหยิบเอามาใช้งานเพื่อให้เหมาะกับลักษณะของข้อมูลที่ต้องการเก็บ อ้อเดี๋ยวนี้เค้าเรียก Data Lake กัน ไม่ได้เรียก Data Warehouse กันแล้ว!!!

Log Manangement บน ELK D3.js จาก ม.เกษตร ทำให้เห็นภาพของเครือข่ายขนาดใหญ่ที่ต้องเก็บ Log ตาม พรบ. และเพื่อใช้วิเคราะห์ข้อมูล Log ที่เก็บมี 3 ส่วนคือ Log ของ Network, Login Log และ Web Log การจัดเก็บ เก็บเป็นไฟล์ raw Log แบ่งเป็นไดเรคทอรี่ย่อยเรียงตาม ปี เดือน วัน ไฟล์ Log จัดเก็บเป็นนาที อ. แนะนำเรื่องเครื่องมือเก็บ Log อย่างง่ายเช่น Graylog ด้วย ระบบของ ม.เกษตร เก็บ Log ลง Elastic Search และใช้ Kibana ในการค้นหาและดึงออกมาทำ Visualized เบื้องต้น แต่ที่ใช้งานจริงๆ จะเป็น Dashboard ที่พัฒนาด้วย D3.js มีรายงานที่น่าสนใจอยู่หลายตัว แถมดูข้อมูลได้ละเอียดมากกกกก เช่น Netflow ของแต่ละ session, การ Login เข้าใช้งานอินเตอร์เน็ตของนักศึกษาและอาจารย์ เป็นต้น

BI ใน session นี้พูดถึงความเป็นมาของ BI ซึ่งแนวทางการทำ Data Analytics มีมานานแล้ว เป้าหมายที่ classic ที่สุดคือเอาไว้ช่วยตัดสินใจ ถ้าพูดถึง BI มุมมองของแต่ละคนจะแตกต่างกันถ้าเป็นผู้บริหารจะนึกถึง Dashboard สวยๆ หรือ Decision Room เอาไว้ดูตัวเลขแดงๆ เพื่อถกปัญหาและตัดสินใจ สำหรับคนทำงานด้านข้อมูลกว่าจะได้ Dashboard ออกมาสวยๆ ต้องฝ่าฟัน silo ข้อมูลที่แยกกันอยู่ เอามารวมใน Data Warehouse แล้วถึงจะเอามาสร้าง Dashboard สวยๆ ให้ผู้ตัดสินใจดูได้ ปัญหาคือ คนเราใช้ data ในการตัดสินใจมากน้อยแค่ไหน วิทยากรได้เอาตัวเลขมาให้ดูก็พบว่าคนเราติดสินโดยใช้ข้อมูลกันน้อยมาก ดังนั้นการใช้ข้อมูลในองค์กรเพื่อการตัดสินใจจึงไม่ค่อยประสบความสำเร็จ

วันที่สองไม่ได้ไปเพราะต้องเดินทางไปมาเลเซีย อดเรียน Firebase เลย

รื้อ 3D Printer ตัวเก่าทำเครื่องใหม่

วางแผนไว้ว่าในปีนี้จะทำเครื่อง 3D Printer ซึ่งก็ทำเครื่อง CoreXY เสร็จไปแล้วตัวนึง ช่วงนี้ก็เลยวางแผนจะรื้อเครื่องเก่าซึ่งเป็นเครื่อง Prusa i3 เอามาทำเป็นเครื่อง Delta เอ้อ… ปกติเค้าจะรื้อเครื่อง Prusa i3 เอามาทำ Core XY แต่เนื่องจากมีเครื่อง CoreXY แล้วก็เลยอยากทำเครื่อง Delta บ้าง หลังจากศึกษาเครื่อง Delta มาระยะหนึ่งก็พบว่าการออกแบบมันดูยุ่งเหมือนกัน

ยุ่งตั้งแต่ตอนออกแบบกันเลยล่ะ พยายามหาเครื่องมือมาช่วยในการคำนวณค่าต่างๆ ซึ่งถ้าทำเครื่องแบบไม่อิงจากแบบต่างๆ ที่มีขายอยู่แล้ว เช่น ปรับขนาดของฐานให้ใหญ่ขึ้น จะต้องคำนวณความยาวของแขนในแต่ละแกนใหม่ทั้งหมด อันนี้แค่ออกแบบนะ ยังไม่รวมการตั้งค่าที่จะตามมาให้ปวดหัว วิธีการแก้ปัญหาแบบง่ายที่สุดคือซื้อชุด Kit สำเสร็จรูปเอามาประกอบ แต่เดี๋ยวก่อน!!! มันต้อง Reprap สิ ก็เลยจัดการพิมพ์ชิ้นส่วนมารอเรียบร้อย

ปัญหาถัดมาคือการคำนวณ จากการศึกษาพบว่ามีเครื่องมือการคำนวณหลายตัวมาก ทั้งแบบผ่านเว็บอย่าง DeltaBot Calculator และผ่านการออกแบบโดยใช้ OpenSCAD ซึ่งสะดวกมาก แก้ไข parameter ต่างๆ เช่น ความกว้าง ความสูง เป็นต้น กด build โปรแกรมก็จะคำนวณมาให้เลย หากต้องการแก้ไข parameter ต่างๆ ก็สามารถแก้ไขได้เลยซึ่งง่ายมากๆ

สำหรับท่านที่สนใจ ลองดูโค้ดจาก Git Repository ของเครื่อง Kossel 2020 ได้ครับ

มาเล่น Wekan กัน

วันนี้ประชุมกับผู้ประกอบการเลยถามเล่นๆ ว่าใช้ Trello กันป่าวได้รับคำตอบหลากหลาย แต่โดยส่วนใหญ่ไม่ได้ใช้ ไม่ใช้ Kanban Board จากบริการภายนอก อยากได้โปรแกรมไปติดตั้งที่เครื่องตัวเองมากกว่า ใช้ Redmine อยู่ ฯลฯ ครั้งนี้ก็เลยมาแนะนำ Wekan เป็น Kanban Board ที่มี feature คล้ายๆ กับ Trello ซึ่งผมลองเล่นแล้วก็สนุกดี

การติดตั้งก็ง่ายมาก ใช้ Docker Compose ได้เลยดังนี้

wget https://raw.githubusercontent.com/wekan/wekan/devel/docker-compose.yml

แก้ไข ROOT_URL ในไฟล์ แล้วสั่ง compose up ได้เลย

docker-compose up -d

เท่านี้ก็ได้ใช้งานแล้ว

ลองเล่นกันดูครับ

มาลองเล่น OpenShift 3 Developer Preview

OpenShift 3 หรือ OpenShift Next Gen ใกล้ออกรุ่นออนไลน์ให้ได้ใช้งานกันแล้ว ทาง RedHat ได้เปิดให้นักพัฒนาได้ใช้รุ่น Developer Preview มาระยะหนึ่ง เพื่อให้นักพัฒนาได้ทดลองใช้งานและวางแผนเตรียมย้ายจาก OpenShift เดิมมาเป็น OpenShift 3 ความแตกต่างระหว่างของใหม่กับของเก่า แต่เดิมการทำ partitioning application ใช้ความสามารถของ cgroup จาก Kernel ในรุ่นใหม่เปลี่ยนมาใช้ Docker และ Kubernetes เรียกว่าเปลี่ยนจากหน้ามือเป็นหลังมือเลยทีเดียว

สำหรับการใช้งาน OpenShift ก็คล้ายๆ เดิมแต่มีเครื่องมือแบบ cli ใหม่ใช้งานง่ายกว่าเดิม สามารถเชื่อมโยงกับ Git repository ได้ สั่ง auto build จาก repository ได้ นักพัฒนามีหน้าที่เขียน App และทดสอบ App เท่านั้นที่เหลือ OpenShift จะจัดการให้ ไม่ต้องปวดหัวกับ Kubernetes Cluster, Storage มาดูวิธีการใช้งานกัน
Continue reading

ประสบการณ์ Android One

โทรศัพท์มือถือที่ผมใช้ประจำ LG G3 มีอาการแบตเตอร์รี่หมดเร็วผิดปกติและจอมืดเป็นบางเวลาก็เลยจำเป็นต้องหามือถือสำรองมาใช้งานแทน พอดีทางผู้จัด Google HackFair Bangkok 2015 ส่งของที่ระลึกและใบประกาศมาให้สำหรับผู้ที่ไม่ได้อยู่ร่วมงานตอนเย็น แกะกล่องพัสดุออกมามี Android One จากค่าย I-Mobile รุ่น IQ II อยู่ด้วยก็เลยเอามาใช้งานชั่วคราว

หลังจากแกะกล่องได้ลองอัพเดท Android พบว่าการอัพเดทมีทุกเดือนตั้งแต่ปีที่แล้ว T_T ได้ reboot เครื่องกันไม่ต่ำกว่า 10 รอบ รุ่นล่าสุดที่ได้รับอัพเดทคือ 6.0.1 สำหรับหน้าตาของ Android ในเครื่อง Android One ก็เหมือนกับเครื่อง Nexus มี App แถมเพิ่มเข้ามานิดหน่อย เช่น Instagram, Facebook เป็นต้น การทำงานของเครื่องดีมากๆ สมกับเป็น Android One ไม่ช้าไม่หน่วง ใช้งานง่าย เหมาะกับการใช้งานทั่วไปและที่สำคัญได้รับอัพเดท Android จาก Google โดยตรง งาน Mobile Expo เดือนหน้าถ้ายังไม่ได้ซื้อมือถือเครื่องใหม่ อาจจะใช้ Android One ต่อไปเรื่อยๆ ครับ :)

เก็บตก International Big Data Conference 2016

ผมได้มีโอกาสไปงาน International Big Data Conference จัดโดย EGA งานนี้มีวิทยากรจากต่างประเทศมาหลายท่าน ทั้งจากฮ่องกง, เกาหลี, ญี่ปุ่น และวิทยากรจากประเทศไทย ทั้งจากภาครัฐและภาคเอกชน งานนี้มีออกบูธจาก IMC Institute, BXperience และ NECTEC ด้วย สิ่งที่น่าสนใจของงานนี้คงเป็นแนวทางการทำ Big Data ที่วิทยากรในแต่ละประเทศมาเล่าให้ฟัง ซึ่งเป้าหมายการใช้งานข้อมูลเน้นผู้ที่ได้รับประโยชน์คือประชาชนนั่นเอง ไม่ว่าจะเป็นระบบเตือนภัยและการเผ้าระวังภัยของรัฐบาลเกาหลี ระบบเตือนอุทกภัยและวาตภัยของญี่ปุ่น หรือแม้กระทั่งระบบแนะนำการปลูกพืชทดแทนสำหรับเกษตรของไทย ทั้งหมดนี้คือการบูรณาการข้อมูลเพื่อสร้างบริการใหม่ให้ประชาชน

มีข้อแนะนำจากวิทยากรที่น่าสนใจดังนี้

  • การเก็บข้อมูลเพื่อเอามาวิเคราะห์แนะนำว่าต้องทราบปัญหาและตั้งคำถามก่อนแล้วดูว่าข้อมูลที่มีอยู่ตรงไหนสามารถนำเอามาใช้ได้ ไม่ต้องกังวลเรื่องความสมบูรณ์ของข้อมูล ให้วิเคราะห์แล้วเอาผลที่ได้กลับไปถามกับเจ้าของข้อมูลว่าใช่หรือไม่อย่างนี้ไปเรื่อยๆ ก็จะมีการปรับปรุงกระบวนการเก็บและหาข้อมูลมาเพิ่มเติมได้
  • การทำ Big Data Analysis ในองค์กรต้องเริ่มจาก Prototype เล็กๆ ให้เห็นภาพว่าได้อะไร การขอความร่วมมือเพื่อให้ได้ข้อมูลมาสำคัญมากๆ พอได้ Prototype แล้วการคุยกับผู้บริหารเพื่อขยายผลก็ทำได้ง่าย

เครื่องเจียรกับแท่นจับ

วันนี้ตัดสินใจซื้อเครื่องเจียรกับแท่นจับมาใช้งาน เพราะสั่งตัดอลูมิเนียมตอนทำเครื่อง CoreXY ราคาแพงมากแถมได้มาไม่เต็มเส้น ก็เลยคิดว่าซื้อเครื่องเจียรมาตัดเองดีกว่า อย่างน้อยก็ตัดเหล็กสตัดได้ด้วย ที่ทำงานมีงานลดราคาสินค้าของ Powerbuy และ Homework เลยแวะเดินดูอยู่หลายวันแต่ยังไม่ตัดสินใจซื้อสักที วันนี้ก็เลยตัดสินใจซื้อเพราะงานใกล้วันสุดท้ายแล้ว เดินไปเจอของ Zinsano มีเครื่องเจียรกับแท่นขายด้วย ก็เลยซื้อมาคู่กันซะเลย แปะวิดีโอแนะนำสินค้าสักหน่อย

เครื่องเจียร

แท่นจับเครื่องเจียร

ตัดเหล็กสตั๊ดเอาไว้ทำเครื่อง Cyclone PCB Factory ได้เนียนมาก

เพิ่มเมนูใหม่ใน Marlin Firmware

ช่วงที่ทำเครื่อง 3D Printer CoreXY ชอบรื้อเครื่องบ่อย กดปุ่มเลื่อนแกน Z จนเมื่อย พอใช้หัว Chimera มี Extruder Drive 2 อัน คราวนี้เมื่อยกว่าเดิม ก็เลยตัดสินใจแกะ Marlin เพิ่มฟังก์ชั่นที่อยากได้เพิ่มเติม

  • สั่ง feed เส้นเข้าท่อเทฟลอน
  • สั่งเลื่อนแกน Z กรณีซ่อมเครื่อง เปลี่ยนหัว ฯลฯ

เพิ่มเมนูเข้าไปแบบนี้

สำหรับท่านใดที่สนใจสามารถเพิ่มเมนูได้เอง แก้ไขได้ที่ไฟล์ ultralcd.cpp และไฟล์ locale สำหรับภาษาอังกฤษที่ไฟล์ language_en.h ครับ

อัพเกรดเพิ่ม Auto Level ให้เครื่อง 3D Printer CoreXY

มา blog เรื่องเครื่อง 3D Printer CoreXY กันอีกรอบ ครั้งนี้อัพเกรดใส่ Auto Level ช่วยปรับค่า bed ในแกน Z แบบอัตโนมัติจะได้ไม่ต้องกังวลเรื่อง bed เอียงไม่เท่ากัน วิธีการทำ Auto Level ทำได้หลายวิธี เช่น

  • มีแขนต่อกับ Servo สำหรับยก Micro Switch ขึ้นลง
  • Micro Switch ติดกับชุดหัวพิมพ์ แบบเครื่อง Delta ของ Micromake
  • ติด Inductive Proximity Sensors ไว้ที่หัวพิมพ์

ผมเลือกใช้ Inductive Proximity Sensor เพราะซื้อมาดองไว้ตัว Sensor ใช้ไฟ 12V ส่วน output ต้องใช้ R มาแบ่งแรงดัน ซึ่งแรงดันของขา output ที่จะไปต่อกับ z min stop มีแรงดันไม่เกิน 5V ไม่งั้น ic regulator บนบอร์ด Arduino Mega พัง แนะนำให้ดูวิดีโอของ Thomas Sanladerer อธิบายได้ดีเลยทีเดียว

หามุมใส่ sensor ดีๆ ของผมพื้นที่ไม่พอเบียดกับพัดลมไปก่อน

จากนั้นแก้ไข firmware ให้ใช้งาน Auto Level เท่านั้นก็ใช้งานได้แล้ว

สิ่งที่ต้องระวังในการต่อสายกับบอร์ด RAMPS 1.4

เนื่องจากได้ประสบการณ์ การต่อสาย End Stop ผิดและทำให้บอร์ด Arduino Mega พัง ก็เลยมาสรุปสิ่งที่ต้องระวังในการต่อสายกับบอร์ด RAMPS 1.4

  • Stepper Motor Driver หันให้ถูกทาง เพราะแต่ละรุ่นไม่เหมือนกัน
  • สาย Enstop Switch แบบสายไฟ 3 เส้นต้องดูให้ดีอย่าสลับด้าน
  • การจูน Vref ต้องระวังเรื่องการใช้ meter

ปิดด้วยวิดีโอนิดหน่อย เป็นประโยชน์จริงๆ ครับ