Sticky Post

มาแก้ปัญหา “AFBF+CGHB+DAFG+AEAB=BCBC” กันเถอะ

“In programming, the hard part isn’t solving problems, but deciding what problems to solve.” – Paul Graham “ในการเขียนโปรแกรมนั้น การแก้ปัญหาไม่ใช่สิ่งที่ยากที่สุด แต่สิ่งที่ยากที่สุดคือการตัดสินว่าปัญหาใดบ้างที่ควรได้รับการแก้ไข” – พอล เกรแฮม Paul Graham ‘s quotes หากข้อความข้างต้นนั้นถูกต้อง ผมก็คิดว่าปัญหาของนักเรียนประถมอันโด่งดังอย่าง “AFBF+CGHB+DAFG+AEAB=BCBC” ก็ควรได้รับการแก้ไขอย่างเป็นรูปธรรมเสียที การจะส่งต่อปัญหานี้ไปสู่คนรุ่นถัดไปนั้น ดูจะเป็นการไร้ความรับผิดชอบต่อคนรุ่นหลังอย่างรุนแรง เกินกว่าที่จะยอมรับได้ ดังนั้นเราจึงเริ่มพัฒนาโค้ดขึ้นมา เพื่อให้มันไม่ใช่ปัญหาอีกต่อไป แม้ว่ามันจะสร้างปัญหาอื่นตามมาก็ตาม จุดเริ่มต้น ทันทีที่เห็นคำถาม “AFBF+CGHB+DAFG+AEAB=BCBC” ในเว็บบอร์ดพันทิป ก็ทราบได้ทันทีว่านี่คงเป็นปัญหาใหญ่มากทีเดียว ผมจึงเริ่มโดยการวิเคราะห์ว่าจะมีหนทางใดบ้างที่แก้ปัญหานี้ได้ สุดท้ายเพื่อให้ปัญหานี้ได้รับการแก้ไขอย่างแท้จริง ผมจึงเลือกที่จะเขียนโค้ดเพื่อหาคำตอบของสมการแบบนี้

Machine Learning in Action : เริ่มต้นด้วยเกมเล็กๆอย่าง Tic Tac Toe

มีไอเดียอยากลองทำเกมง่ายๆ ที่สามารถเรียนรู้ หรือพัฒนาตนเองได้ด้วยประสบการณ์ที่ตัวมันได้พบเจอมา ซึ่งมันก็มีหลายเทคนิคที่มีใช้กันอยู่ และที่เห็นว่าน่าสนใจก็เป็น Q-Learning และ Minimax ทั้งสองเทคนิคล้วนแล้วแต่เป็น State–Action–Reward–State คือ เริ่มต้นคิดจาก State ปัจจุบัน เพื่อหา Action และประเมินผลเป็น Reward จาก State อีกที ซึ่งเหมาะสมมากที่จะนำมาใช้ในระบบเกม ส่วนเกมที่สนใจจะนำมาทดลองนั้น ก็เป็นเกมง่ายๆ อย่างเกม Tic Tac Toe ที่มีรูปแบบไม่เยอะมากนัก กฎกติกาไม่ซับซ้อน และเป็นการแข่งขันกันของสองผู้เล่น ทำให้ระบบสามารถเรียนรู้ หรือเลียนแบบ วิธีการเล่นของฝั่งตรงข้ามได้โดยง่าย ผ่าน State ที่ได้บันทึกไว้ก่อนหน้านี้เท่านั้นเอง ข้อเสียของวิธีการใช้ State แบบนี้คือ รูปแบบในการเล่นมักจะถูกจำกัดอยู่เฉพาะจากประสบการณ์ที่ผ่านมาเท่านั้น แม้จะเป็นการเลือกวิธีการเล่นที่ดีที่สุด แต่ก็จะดีที่สุดเท่าที่รู้อยู่เท่านั้น ดังนั้นถ้าประสบการณ์ของมันเต็มไปด้วยวิธีการที่ไม่มีคุณภาพ หรือไร้ประสิทธิภาพแล้ว

True NB-IoT Arduino Sheild with Arduino Uno

True NB-IoT board ส่งข้อมูลไป InfluxDB ด้วย UDP

ในการทำ IoT (Internet of Things) แน่นอนว่าสิ่งที่จะขาดไปไม่ได้ก็คือการสื่อสารกันระหว่างอุปกรณ์ต่างๆ ในระบบ ซึ่ง NB-IoT หรือ Narrowband IoT ก็เป็นเครื่อข่ายสื่อสารรูปแบบหนึ่งที่น่าสนใจ เพราะใช้พลังงานน้อยและใช้เครือข่ายเดียวกับเซลลูลาร์ทำให้สามารถสื่อสารได้ในระยะไกล ในไทยมีเปิดตัวมาสองเจ้าคือ AIS กับ True ซึ่งของ True เราเพิ่งได้บอร์ดมาถึงมือ มาลองดูกันว่ายังไง เปิดกล่องมาก็จะประกอบไปด้วย True NB-IoT Arduino Shield Antenna NB-IoT Sim (อยู่ใน socket sim ที่ติดมากับบอร์ด Shield แล้ว) บอร์ดใช้โมดูล Quectel BC95-B8   ความถี่ 900 Hz  ในระบบเครือข่าย LTE Cat.

เครื่องมือ ที่จะทำให้อนาคตประเทศอยู่ในกำมือคุณ ผ่านการเลือกตั้ง และพระประสงค์ของพระเจ้า

เช้านี้มีแฮชแท็กหนึ่งโผล่ขึ้นมา นั่นคือ #CambridgeAnalyticaUncovered แฮชแท็กนี่มีที่มาที่ไปที่น่าสนใจมาก มันมาจากวิดีโอที่ถูกเผยแพร่ผ่านช่องข่าวของ Channel 4 ของอังกฤษ โดยผู้ที่บันทึกได้ปกปิดตัวตน (Undercover) ขณะที่กำลังเจรจากับบุคคลจากบริษัทสัญชาติอังกฤษที่ชื่อ “Cambridge Analytica”

ติดตั้ง Platform IO IDE บน VSCode

***ในบทความนี้ติดตั้ง Platform IO  ใน Visual Studio Code บน Windows 10 นะคะ*** Platform IO เป็นระบบโอเพนซอร์สใช้สำหรับพัฒนา IoT รองรับการพัฒนาอุปกรณ์ Embeded ที่หลากหลาย ทั้ง Arduino, ESP, STM ฯลฯ เขาว่ารองรับ embedded boards ได้ 400 กว่าแบบแน่ะ สามารถติดตั้งใช้งานในแบบ CLI หรือจะใช้งานร่วมกับ IDE อย่าง Atom หรือ VS Code การติดตั้ง PIO IDE Python ***ต้องเป็น python 2.7.6

[Chip Hall of Fame] ก้าวที่ยิ่งใหญ่ของวงการถ่ายภาพ Image Sensor ตัวแรก KODAK : KAF-1300

ในประวัติศาสตร์ของนวัตกรรมและการประดิษฐ์มีงานพัฒนามากมายที่เปลี่ยนแปลงวิถีชีวิตของผู้คนทั่วโลก สิ่งประดิษฐ์ชิ้นสำคัญก่อกำเนิดจากมุมมองและแนวคิด ที่เปี่ยมไปด้วยคุณภาพจากนักประดิษฐ์ที่ทำงานให้กับองค์กรยักษ์ใหญ่ หากมองจากวันนี้องค์กรนั้นควรจะกลายเป็นเสือติดปีกได้ แต่มันก็ไม่ได้เป็นเช่นนั้นเสมอไป และนี่ก็เป็นอีกครั้งหนึ่งกับเรื่องราวของเซ็นเซอร์ภาพที่วางจำหน่ายตัวแรกของโลก โดยบริษัทผลิตกล้องยักษ์ใหญ่อย่าง KODAK เรากำลังจะเล่าถึง KAF-1300 Image Sensor ครับ เจ้าพ่อยักษ์ใหญ่แห่งวงการกล้องอย่าง KODAK ให้ความสนใจในการพัฒนาเซ็นเซอร์ดิจิตอลสำหรับถ่ายภาพมานานแล้ว โดยคงต้องย้อนไปถึงปี 1975 Steven Sasson  วิศวกรของ KODAK ได้พัฒนากล้องดิจิตอลตัวแรกออกมา โดยใช้เซ็นเซอร์ CCD 100×100 พิกเซลจาก Fairchild Semiconductor นั่นคือกล้องดิจิตอลตัวแรกของโลกและพัฒนาต่อมาจนในปี 1986 KODAK ก็สามารถพัฒนาเซ็นเซอร์ความละเอียด 1.4 ล้านพิกเซลได้สำเร็จ แต่กว่าจะกลายมาเป็นกล้องดิจิตอลตัวแรกได้ ก็ต้องรอไปถึงปี 1991 KODAK จึงสามารถปล่อย KODAK DCS ( KODAK DCS-100 )