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” ในเว็บบอร์ดพันทิป ก็ทราบได้ทันทีว่านี่คงเป็นปัญหาใหญ่มากทีเดียว ผมจึงเริ่มโดยการวิเคราะห์ว่าจะมีหนทางใดบ้างที่แก้ปัญหานี้ได้ สุดท้ายเพื่อให้ปัญหานี้ได้รับการแก้ไขอย่างแท้จริง ผมจึงเลือกที่จะเขียนโค้ดเพื่อหาคำตอบของสมการแบบนี้

เขียน OS ลง SD card ด้วย Raspberry Pi Imager

ตอนนี้ Raspberry Pi มีโปรแกรมสำหรับเขียน image ลง SD Card ของตัวเองชื่อ Raspberry Pi Imager มีให้ติดตั้งใช้งานได้ทั้ง Windows, Mac OS, Ubuntu 18.04 ใช้งานค่อนข้างง่าย ติดตั้ง Raspberry Pi Imager ดาวน์โหลด Raspberry Pi Imager https://www.raspberrypi.org/downloads/ มาติดตั้งในคอมพิวเตอร์ เปิดมาดูกันว่าทำอะไรได้บ้าง มี 3 ปุ่มหลัก คือ CHOOSE OS (เลือก OS), CHOOSE SD CARD (เลือก SD card), WRITE

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