ข้ามไปที่เนื้อหาหลัก

บทความ

Barcamp Songkhla IV

หลังจากจบงานก็ควรเขียน blog เป็นที่ระลึกตามธรรมเนียม สำหรับงานครั้งนี้ก็เป็นคนร่วมงานเหมือนครั้งที่แล้ว น้องๆ ที่ภาควิชาและพี่เอ้จาก Tuber เป็นคนจัดงาน โดยรวมแล้วงานออกมาดี ปีนี้มีเบียร์แคมป์ด้วย ถือเป็นครั้งแรกของงานเลย แต่เสียดายหัวข้อน้อยไปหน่อย พูดอะไรในงาน Barcamp Songkhla IV ปีนี้เตรียมหัวข้อไปเรื่องเดียวคือ MQTT เป็น Message Passing ตัวนึงที่น่าสนใจมาก เหมาะแก่การนำมาขยายระบบ และประยุกต์ใช้กับ IoT โดยคร่าวๆ แล้วสรุปได้ประมาณนี้ พัฒนาโดย IBM และ Arcom เวอร์ชันปัจจุบันเป็นได้รับการรับรองมาตฐานจาก OASIS โปรโตคอลเล็กมากมี header ไม่เกิน 2 byte ทำงานอยู่บน TCP/IP มีลักษณะเป็น Publish/Subscribe จะมีส่วนที่ส่งข้อความออก และรับข้อความเข้าผ่านทาง Message Broker ใช้วิธีการ Topic Maching สำหรับการส่งข้อมูลจาก Publisher ไปยัง Subscriber เนื่องจากโปรโตคอลมีขนาดเล็กจึงสามารถใช้งานได้ดีบน node ที่มีขนาดเล็ก มีพลังในการประมวลผลน้อย จึงเหมาะกับอุปกรณ์ต่างๆ ใน IoT ด้วย นอกจากนี้ยังมีประเด็นปลีย่อยต่างๆ สามารถดูได้จาก slide หัวข้อที่น่าสนใจ TDD เปลี่ยนชีวิตคนนี้ยังไง By iBot.o...

ใช้ Watchdog ช่วยทำ TDD สำหรับ C++ ด้วย Gtest และ CMake

เห็นคนรู้จักหลายๆ คนทำ TDD กัน เลยอยากทำบาง โดยมากมักใช้ Watchr เพื่อช่วนในการรัน Test Case ทันทีที่บันทึกไฟล์ เห็นแล้วสะดวกดี แต่พอดีเขียน Ruby ไม่เป็นเลยมากหาไลบราลีภาษา Python แทน ก็ไปเจอ Watchdog  อาศัยแรงของตั้วเลยได้ Python script  อย่างง่ายมาเล่น TDD สำหรับ Python กัน วันนี้อยากเอามันมาใช้กับ C++ บ้างเล่นเอาเหนื่อยเหมือนกันกว่าจะเอา  Python script  ของตั้วมาใช้กับ C++ ซึ่งจากที่ดูๆ มา Google Test กับ CMake น่าจะตอบโจทย์ TDD ได้ระดับนึ่ง แต่ต้องอาศัยการจัดรูปแบบของไดเร็กทอรีเข้าร่วมด้วย ตอนนี้สคริปต์ยังมีการกำหนดหลายๆ อย่างตายตัวอยู่มาก อาจจะยังไม่เรียบร้อยดีเท่าที่ควร หน้าตาไดเร็กทอรีประมาณนี้ . ├── src │   └── xxx │   └── xxx.cpp ├── tests │   ├── CMakeLists.txt │   ├── external │   │   └── gtest │   │   └── CMakeLists.txt │   └── units │   └── xxx │   └── test_xxx.cpp ├── cpp-testrunner │ └── CMakeLists.txt สำหรับได...

Barcamp Songkhla III

หลังจากจบงานก็ควรเขียน blog เป็นที่ระลึกตามธรรมเนียม สำหรับงานครั้งนี้เป็นคนร่วมงานปล่อยให้น้องที่ภาควิชาดำเนินงานกันไป :D สำหรับคนสนใจงานครั้งที่แล้วสามารถอ่านเพิ่มเติมได้ที่ มอง Barcamp Songkhla II พูดอะไรในงาน Barcamp Songkhla III สำหรับครั้งนี้ได้เตรียมหัวข้อแบบจัดเต็ม 3 session ดังนี้ Python for Scientific Computing โดยร่วมพูดกับ  @ibotdotout   @superizer  เนื้อหาเเป็นการแนะนำการใช้งาน Python สำหรับการประมวลผลทางวิทยาศาสตร์ โดยเน้นไปที่ NumPy SciPy SymPy OpenCV  เนื้อหาไม่ได้เจาะจงอะไรเป็นพิเศษเน้นไปที่แนะนำให้รู้จักเสียมากกว่า แล้วมีกรณีศึกษาให้ดูในตอนท้ายด้วยเล็กน้อย สำหรับเซสชันนี้ได้รับความสนใจอยู่พอสมควร C++11/14: a Review เซสชันนี้เป็นการบอกคร่าวๆ ว่า C++11/14 มีอะไรน่าสนใจบ้าง โดยร่วมพูดกับ  @superizer  เซสชันนี้มีคนสนใจมากเป็นพิเศษ 2 คน :D อาจเป็นเพราะว่าไม่ค่อยมีคนสนใจ C++ มากแล้วก็ได้ T__T  เรียน "ธรรมะ" จากชีวิตโปรแกรมเมอร์ เป็นการแนะนำธรรมะที่เคยเรียนรู้มาแล้วตอนมัธยมโดยอธิบายให้เข้ากับการเป็นโปรแกรมเมอร์ว่าเหตุใด ทำไ...

เด็กน้อยหลงทาง

เด็กน้อยนายหนึ่งได้กล่าวไว้ว่า ตอนนี้ผมหลงทาง ไม่รู้จะเดินไปทางไหนจิงๆ แค่ก้าวเท้าผมยังไม่รู้เลยว่าจะก้าวเท้าซ้ายหรือขวาก่อนดี อาจจะเปนเพราะผมเดินทางไม่เก่ง ไม่ชำนาญเส้น ที่สำคัญผมอ่านแผนที่ไม่ออก ผมมีผู้นำทางที่คอยบอกบริเวณที่หมายให้กับผม แต่ผมก็ยังเดินไปไม่ได้ แน่นอนว่าผมไม่ใช่คนตาบอด การที่จะให้ใครจูงผมไปยังเป้าหมายคงไม่ใช่เรื่องดีนัก ผมเริ่มเข้าใจกับคำว่ามืดแปดด้านมากขึ้นในตอนนี้ ผมคงให้สัณญาไม่ได้ว่าผมจะไปถึงเป้าหมาย แต่อย่างน้อยในตอนนี้ผมก็ได้รู้ว่าระหว่างทางมันยากลำบากแค่ไหนและก็หวังอยู่ลึกๆว่า... ผมคงไปถึงจุดหมาย แม้มันจะถึงโดยไม่สวัสดิภาพก็ตามTT  #ให้ตายเถอะ Project ที่มา  facebook ของเจ้าเด็กน้อย พี่จะบอกเจ้าเด็กน้อยว่า เจ้าเด็กน้อยหลงทางกลางแสงดาว แต่ละก้าวจะย่างยังหวั่นไหว ถึงดาราบอกทางยังหวั่นใจ หนทางใด คือมรรคา หายากจริง เจ้าเด็กน้อยเจ้าเคยหวนไปคิด ถึงชีวิตที่ผ่านพ้นทุกสรรพสิ่ง เจ้าเคยเตรียม ใจกาย ไว้พักพิง พร้อมแอบอิง ประสบการณ์ แล้วหรือยัง เจ้าเตรียมกาย เผชิญโลกมากเพียงใด เจ้าเตรียมใจ ทุกข์ยาก พร้อมพลาดพลั้ง เตรียมสมอง เตรียมปัญญา เตรียมพล...

ผ่านไปแล้วหนึ่งอาทิตย์ แก้โจทย์นี้ไม่ได้สักที

ให้โจทย์เขียนโปรแกรมไปกับเด็กคนนึง ให้เขียนด้วย Python 3 โจทย์ บางส่วนของโค้ด Python A = [random.randint(1, 150) for i in range(0,100)] หาค่าเฉลี่ยของสมาชิกของ A ที่ละ 10 ค่า ให้อยู่ในรูปของลิสท์ ผ่านไปแล้วหนึ่งอาทิตย์ แก้โจทย์นี้ไม่ได้สักที เลยแอบเอามาเฉลยไว้ :D import random A = [random.randint(1, 150) for i in range(0,100)] length = 10 average = [sum(A[a:a+length]) / len(A[a:a+length]) for a in range(0, len(A), length)] print(average) โจทย์นี้อาจจะยากสำหรับผู้เริ่มต้นเรียนโปรแกรมิ่ง แต่สำหรับนักศึกษาสายคอมพิวเตอร์ในระดับมหาวิทยาลัย โจทย์นี้น่าจะเป็นเรื่องง่ายมาก แทบจะไม่ต้องใช้ความรู้มากมายในการเขียนเลย เพียงแค่ลงมือทำเท่านั้น ไม่รู้ว่าป่านนี้จะเขียนได้ยัง !!_ _ ไม่ต้องการให้เขียนได้โค้ดแบบนี้ แค่คำตอบเหมือนก็ดีใจแล้ว เศร้าจริง.... เด็กไทย

ด้วยระลึกถึงคุณย่า บันทึกจากความทรงจำ

บันทึกนี้เขียนขึ้นเพื่อบันทึกความทรงจำของผมที่มีต่อคุณย่าที่ล่วงลับไปแล้วอย่างไม่มีวันหวนคืน คุณย่าเปรียบเหมือนฟางเส้นสุดท้ายที่ร้อยครอบครัวใหญ่ของเราเอาไว้ไม่ให้แตกแยก หลังจากที่เสียคุณปู่ไปเมื่อ 23 ปีก่อน เนื่องจากบริเวณจังหวัดกระบี่ ตรัง พังงา ภูเก็ต มีชาวจีนอาศัยอยู่มาก แต่มักจะเป็นชาวจีนที่อพยพมาไทยนานแล้ว จากการการสังเกตของผม ชาวจีนแถบนี้โดยมากน่าจะเป็นชาว เปอรานากัน หรือชาวจีนที่อพยพมาจากจีนแล้วตั้งถิ่นฐานอยู่ในแหลมลายูหรืออินโดนีเซีย แล้วหลังจากนั้นจึงอพยพมาอาศัยต่อที่ประเทศไทย จากการบอกเล่าของคุณแม่ ก๋งเคยเล่าให้ฟังว่าตอนยังเด็กเคยแจวเรือจ้างอยู่ที่ปีนัง คุณย่าเคยเล่าว่าเป็นชาวฮกเกี้ยน อีกทั้วจากรูปวาดคุณย่าทวดที่มีการเกล้ามวยผม สวมเสื้อคอลึก ส่วนทางบ้านมีการใช้คำเรียกจีนผสมไทยถิ่นใต้อยู่มาก ผู้หญิงทุกคนนิยมสวมผ้าปาเต๊ะ เสื้อลูกไม้ (เสื้อฉลุลายดอกไม้) อาหารการกินเป็นแบบชาวไทยถิ่นใต้ทุกประการ (กินน้ำพริก แกงส้มเก่งกันทุกคน ยกเว้นก๋ง :D) อีกทั้งก๋งเกิดที่ดินแดนแถบนี้ไม่ได้เดินทางมาจากเมืองจีน (บางทีเรียก เตี่ยต่อเตี่ย คือ ทวดมาจากจีน ส่วนสถานที่เกิดไม่แน่ใจว่าเป็นปีนังหรือไทย)...

ลง Debian ใน Macbook Air รุ่นกลางปี 2012 แบบ dual boot

พอดีมีโอกาสทดลองลง Debian ใน Macbook Air น่าจะเป็นรุ่นกลางปี 2012 ของ iErk hamham :D เลยบันทึกไว้สักหน่อยกันลืม ทำการติดตั้งโดยใช้อิมเมจ  debian-wheezy-DI-b4-amd64-netinst.iso  ซึ่งจะเป็น release ถัดไปของ Debian แต่การติดตั้งไม่ได้ง่ายอย่าง Macbook Air รุ่นก่อนหน้านัก เนื่องมาจากไดร์เวอร์ยังไม่รองรับอุปกรณ์บางอย่างนั้นเอง การติดตั้งเลยต้องหาข้อมูลพอสมควร ได้ข้อมูลจาก  MacBookAir - Debian Wiki  และ  How to install Debian wheezy on MacBook Air, Version 5.1. (Tutorial)  จึงติดตั้งได้ ในการติดตั้งต้องหาอุปกรณ์ต่อพ่วงจาก USB ไปเป็น Ethernet มาใช้งานด้วยเนื่องจาก linux kernel 3.2 ไม่สามารถใช้งาน Thuderbolt ไปเป็น Ethernet ได้ (เจ้าของซื้อตัวนี้มา) หรือต้องหา Driver WiFi มาติดตั้งพร้อมกันด้วย มิฉะนั้นจะติดตั้งได้แค่ base system ไม่สามารถติดตั้งเพกเกจอื่นๆ ได้ เมื่อเริ่มติดตั้งต้องเพิ่มออปชั่น noapic ด้วย โดยเมื่อเริ่มบูตแผ่นติดตั้งจะเข้าไปยังหน้า เมนูการติดตั้งของ Debian เลือกการติดตั้ง Debian แบบ text mode แล้วกด Tab เพื่อเพิ่มออปชั่น noapic จากนั้นก็เริ่ม boo...