21/6/61

Decapitate

วันก่อนเห็นข่าวประหารชีวิต ธีรศักดิ์ หลงจิ ผมค่อนข้างตกใจเล็กๆ คือ คิดมาเสมอว่าโทษประหารในไทยคือหมดไปแล้ว การตัดสินโทษประหารทุกกรณีจะโดนลดลงมาเหลือจำคุกตลอดชีวิต ผมเข้าใจว่าแบบนี้มาโดยตลอด จนกระทั่งทราบข่าวดังกล่าวเลยทำให้ได้รู้ว่ามันไม่ได้เป็นอย่างที่เข้าใจ

ผมต่อต้านโทษประหารชีวิตอย่างที่สุด กรณีคลาสิคที่ผมชอบยกเป้นเคสว่าทำไมถึงไมควรมีโทษประหารคือ กรณีหมอแอร์จ้างฆ่าเอ็กซ์จักกฤษ คือ ถ้ามีการตัดสินประหาร แม่หมอแอร์ก็จะได้รับโทษ และหมอแอร์ก็จะลอยลำไป ซึ่งในทางเทคนิคแล้ว เราไม่ควรทำอะไรที่มัน undo ไม่ได้ เพราะถ้ามันผิดพลาด เราจะไม่สามารถไต่สวนย้อนหลัง หรือสืบข้อมูลเพิ่มเติมได้เลย

ในแง่มุมของการลงโทษ หรือการเข้าคุก ผมเห็นหลายคนจะรู้สึกว่า คุกหรือการลงโทษ เป็นการเอาคืนเพื่อให้สาสม เพื่อให้สะใจ เพื่อให้คนอื่นไม่กล้าทำตาม ซึ่งจริงๆ แล้วมันไม่ถูก คุกควรมีไว้เพื่อกักกัน (quarantine) เพื่อไม่ให้สร้างความเดือดร้อนกับผู้อื่นได้อีก ผู้อยู่ในคุกไม่จำเป็นต้องทรมาน เหมือนกับ virus computer เรา quarantine ไว้ เพื่อไม่ให้มันไปกินไฟล์อื่น จนกว่าจะหา anti-virus ได้ ก็เอามาแก้ แล้วไฟล์เดิมที่เสีย ก็จะกลับมาใช้ได้ใหม่ ในกรณีมนุษย์ก็ควรจะเป็นเช่นเดียวกัน

การลงโทษเพื่อตอบสนองต่อความสะใจ เป็นเครื่องบ่งชี้อันดีว่าเรายังอยู่ไกลจากความเป็นอารยะอีกมาก ผู้กระทำผิดทั้งหลายไม่ว่าจะโทษเบาหรือโทษร้ายแรง เกิดจากเหตุผลคือ โรค, ความเข้าใจผิด, ความประมาท เพียงสามประการนี้เท่านั้น ไม่มีใครที่เลว หรือชั่วมาโดยกำเนิด ดังนั้นเราควรปรับปรุงจิตใจเพื่อยกระดับตัวเองขึ้นให้มากกว่าการมองการลงโทษเป็นเครื่องมือเพื่อตอบสนองต่อความสะใจ

14/6/61

A next Mac

ว่าจะซื้อ mac อีกตัว เลยมาโน๊ตไว้ก่อน ปกติจะซื้อก่อน แล้วค่อยมา blog แต่ช่วงนี้หาเวลาไม่ค่อยได้เลย ไหนๆ กำลังว่าง โน๊ตไว้เสียก่อนเลยละกัน

เนื่องจาก mac ไม่ใช่คอมพิวเตอร์ราคาถูก การจะซื้อแต่ละครั้ง ต้องมีเหตุที่สมควรจริงๆ และผมเองก็ไม่ใช่จะพิจารณาได้อย่างรวดเร็ว เอาเข้าจริงก็คิดมาเป็นปี แต่ตัดสินใจได้ละว่า ต้องซื้อตอนนี้แหล่ะ

ย้อนกลับไป mac เครื่องแรกที่ผมใช้ เป็น iBook G4 ตอนนั้นสาเหตุที่ตัดสินใจซื้อคือ ต้องการหักดิบจาก Windows กะว่าถ้าใช้ Linux ไม่สำเร็จ ก็จะไม่สามารถใช้ Windows ได้ ก็เลยตัดสินใจซื้อ Mac ซึ่งตอนนั้นราคาตั้ง 48,000 ซึ่งมันแพงมาก แต่ก็เป็นการลงทุนที่ึุ้มค่า เพราะผมสามารถปลดล๊อกตัวเองจาก Windows ได้สำเร็จจริงๆ หลายๆ ท่านที่เกิดมาพร้อมกับ Windows จะพอนึกออก ว่าการจะเลิกใช้ Windows ได้นั้น มันยากแค่ไหน และการลงทุนครั้งนั้นก็ทำให้ผมทำได้สำเร็จ

ตัวที่ 1.5 ก่อนซื้อตัวที่ 2 ผมมี mac ตัวที่ 1.5 ด้วย คือ ไอ้เจ้า iBook G4 มันอะแดปเตอร์ไหม้ ทีนี้จะซื้ออะแดปเตอร์ใหม่ก็แพง ก็เลยไปหา iBook G3 มือสองมาแทน เพราะอะแดปเตอร์ใช้เหมือนกัน :P

mac เครื่องที่ 2 ตอนนั้นเกิดจากการที่ ในบ้านมี Laptop ที่ใช้ Windows กับ Linux อยู่แล้ว และผมอยากให้ลูกใช้เครื่องตั้งโต๊ะสักตัวนึง เพราะมันดีต่อลํกษณะของการใช้งานมากกว่า พอตัดสินใจจะมีคอมอีกสักตัว ก็เลยอยากให้ลูกได้ลองใช้ OS อื่นบ้าง เพราะลูกคุ้นเคยกับ Ubuntu และ Windows อยู่แล้ว (พยายามให้ลูกใช้ Tools ในฐานะที่มันเป็น Tools คือ จับอะไรก็ใช้งานได้) เลยตัดสินใจที่จะซื้อ mac ในตอนนั้นก็เลยได้ mac mini ไป ด้วยเหตุที่งบประมาณจำกัด ซึ่งผลที่ได้ก็ออกมาดี คือ ลูกผมใช้ OS อะไรก็ได้ ซอฟต์แวร์อะไรก็ได้ เขาจะหาทางเรียนรู้และใช้งานได้ คือ ไม่ตั้งเงื่อนไขกับตัวเอง ว่าจะต้องเป็น Windows 7 เท่านั้น ต้อง Windows 10 เท่านั้น จะไม่เป็นแบบนั้น คือ มีเครื่องมืออะไรให้ใช้ เขาก็ใช้ ซึ่งก็เป็นอีกการลงทุนที่คุ้มค่า

why the next mac
เมื่อถึงรอบที่ตัดสินใจจะซื้ออีกครั้ล มันต้องมีเหตุที่เหมาะสมจริงๆ ถึงจะซื้อคอม 1 เครื่องในราคาเท่ากับคอม 2 เครื่อง อย่างที่เล่าไว้ในบล๊อกเก่าว่า พอดีกำลังหัดเรียนรู้ pi แต่หลังจากที่เห็นสิ่งที่พยายามลอง พยายามเล่นอยู่ 1-2 สัปดาห์ พบว่า การใช้ Windows มันมีอุปสรรคในการเรียนรู้มากกว่า mac คือ environment ที่จะเอื้อต่อการใช้งานของ mac มันพร้อมกว่า เช่น มี ssh, python ในตัว หรืออย่างการใช้งาน arduino พอเสียบก็ใช้ได้เลย ไม่ต้องเลือก port ซึ่งมันจะทำให้ผู้เรียนรู้สามารถไปโฟกัสกับสิ่งที่กำลังเรียนรู้อยู่ได้ทันที ไม่ต้องมาติดปัญหาที่เกิดขึ้นจากตัว Windows หรือความไม่เหมาะสมของสภาพแวดล้อม

แน่นอนว่า การใช้ของที่ไม่เหมือนคนอื่นก็จะสร้างอุปสรรคในแบบอื่นอีกอยู่ดี แต่ผมกลับคิดว่า ให้ไปติดปัญหาตรงอื่น ดีกว่ามาติดปัญหาที่สภาพแวดล้อมของระบบ

เลยเป็นเหตุให้ตัดสินใจได้ว่า ซื้อ mac ตัวที่ 3 ได้ละ

ปล. กดสั่งซื้อใน apple.com ไป เมื่อวันที่ 15 ด้วยสิทธิ์นักศึกษา ได้ MacBook Pro 13 inch without Touch Bar 2.3GHz dual-core Intel Core i5 512GB ในราคา 60,100 บาท

ขยับมาไม่กี่วัน วันที่ 20 Lazada ส่งเมลมาแจ้งว่าลดราคาคอมพิวเตอร์ ส่องไปเจอ MacBook Pro 13 inch with Touch Bar 2.9GHz dual-core Intel Core i5 512GB ที่ราคา 65,900 บาท

ก็เจ็บใจกันไป แต่ก็กะแล้วแหล่ะว่าต้องเจออะไรแบบนี้ ตอนแรกคิดว่า ซื้อเสร็จ Apple ประกาศเปลี่ยนไปใช้ CPU ตัวเอง (แต่มันก็ไม่แน่นะ)

13/6/61

Pordee's summer of code

ปกติช่วงปิดเทอมของพอดี มักจะได้ทำโปรเจคอะไรเล็กๆ ซึ่งหลายๆ ปีที่ผ่านมาจะเป็นทำหุ่นเพื่อแข่งในรายการ WRG หรือบางทีก็เป็นทำอะไรอย่างอื่น แล้วแต่เจ้าตัวจะชอบ

จริงๆ แล้วช่วงปิดเทอม ผมอยากให้ลูกชายได้ลองเป็น Back packer มากกว่า ได้พบเจอผู้คน ได้เห็นโลกกว้าง แต่ด้วยความที่เขาเป็นคนไม่ชอบไปไหน ก็ช่างเขาไป

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

ส่วนงานที่ได้ไปทำที่ปัญญาภิวัฒน์คือ ได้ไปช่วยสร้างชิ้นงานหนึ่งชิ้น ด้วยโจทย์ที่ได้ เลยทำให้ต้องมาหัดใช้งาน Raspberry Pi + Image recognition สักตัวหนึ่ง

ด้วยโจทย์ที่ได้ และความพยายามของเจ้าตัว เห็นแล้วบอกได้เลยว่า ตัดสินใจถูกจริงๆ ที่ส่งให้ไปทำอย่างอื่นบ้าง (ต้องขอบคุณ อ. ปัญาภิวัฒน์ท่านั้นด้วยครับ ไม่แน่ใจว่าลงชื่อไว้ดีมั้ย เพราะงั้น สงวนนามไว้ก่อนดีกว่า) เพราะไม่อย่างนั้นก็จะได้แค่เขียน Arduino ต่อมอเตอร์ include library เหมือนอย่างเคย แต่รอบนี้ทำให้ถูกบังคับว่าต้องใช้ Linux ให้เป็น (โชคดีที่ที่บ้านเน็ตช้า เลยโดนบังคับว่าต้องโหลด Raspbian ที่ไม่มี GUI มาใช้)

แม้ว่าเกิน 50% ของโปรเจคจะเป็นว่า ผมเป็นคนช่วยก็ตาม แต่สิ่งที่พอดีได้คือ ได้คุ้นเคยกับ CLI ได้หัดใช้ Linux Command ได้รู้ว่า Image recognition เป็นยังไง

ถือว่าเป็นปิดเทอมที่คุ้มค่ามาก และเมื่อพอดีได้โจทย์ที่จะต้องทำอย่างอื่น ก็จะไม่ติดกรอบการคิดที่ Arduino อีก (แต่จะมาติดกรอบที่ Raspberry แทน :P คือ ติดกรอบอยู่ดี แต่กรอบกว้างขึ้น)

5/4/61

Big Data

ได้รับโอกาสอันดีจาก สนง. ให้ส่งไปอบรม Big Data ก็เลยต้องมีเขียนสรุปส่งสักหน่อย ให้คุ้มค่ากับภาษีประชาชน ไหนๆ เขียนส่งแล้ว หาที่เก็บไว้หน่อย เผื่อต้องใช้วันหลัง

Big Data เป็นสิ่งที่มีความสำคัญมากในโลกยุคปัจจุบัน โดยเราสามารถเปรียบ Data ได้กับ น้ำมันในสมัยก่อน ที่ประเทศไหนมีน้ำมันก็จะเป็นประเทศมหาเศรษฐี ในยุคนี้ ใครถือครองข้อมูล หรือใช้ประโยชน์จากข้อมูลได้มากที่สุดก็จะกลายเป็นเศรษฐีของยุคนี้เช่นกัน ดังจะเห็นได้ว่า บริษัท ระดับต้นๆ ของโลกในยุคนี้ล้วนทำธุรกิจเกี่ยวกับข้อมูลทั้งสิ้น เช่น Google, Facebook เป็นต้น

แบบไหนถึงเรียกว่า Big Data

เรารู้จักกับ Data อยู่แล้ว แต่ในนิยามของคำว่า Big Data ที่เราพูดถึงกัน ไม่ได้หมายถึงข้อมูลที่มีขนาดใหญ่เท่านั้น แต่ Big Data ที่พูดถึงกันในยุคนี้ จะต้องประกอบด้วยองค์ประกอบดังนี้

  • Volume: มีขนาดใหญ่ มีปริมาณมาก เป็นได้ทั้ง offline หรือ online
  • Variety: มีความหลากหลาย ทั้งที่มีโครงสร้างและไม่มี
  • Velocity: เปลี่ยนแปลงตลอดเวลา มีการส่งผ่านข้อมูลต่อเนื่องในลักษณะ streaming
  • Veracity: ข้อมูลไม่ชัดเจน

รูปแบบของข้อมูล

นอกจากข้อมูลจะมีความหลากหลาย และไม่มีโครงสร้างได้แล้ว ข้อมูลอาจมีได้หลายรูปแบบอีกด้วย เช่น

  • Behavioral: ข้อมูลการใช้งาน เช่น server log, การคลิกดูข้อมูล
  • Image, sounds: ภาพถ่าย, วีดีโอ, ข้อมูลเสียง
  • Text: ข้อความ tweeter facebook, เนื้อหาในเว็บไซต์
  • Records: ข้อมูลทางการแพทย์, ข้อมูลผลสำรวจที่มีขนาดใหญ่, ข้อมูลทางภาษี เป็นต้น
  • Sensors: ข้อมูลอุณหภูมิ, accelerometer, ข้อมูลทางภูมิศาสตร์ เป็นต้น

Big Data Analytics

เป็นขั้นที่สูงกว่าของ Data Analytics คือ เป็นการวิเคราะห์ข้อมูลจาก Big Data ซึ่งเป็นข้อมูลที่วิเคราะห์ได้ยากกว่า (ข้อมูลมีลักษณะ 4V) โดยการวิเคราะห์จะวิเคราะห์เพื่อตอบสองคำถามคือ เพื่อตอบอดีต และทำนายอนาคต
  • Descriptive analytics: เป็นการวิเคราะห์โดยสรุปผลรวมจากอดีต คล้ายๆ การทำข้อมูลเชิงสถิตินั่นเอง โดยการวิเคราะห์แบบนี้จะได้คำตอบในลักษณะดังนี้
    • Standard report: “เกิดอะไรขึ้น”
    • Ad hoc report: “จำนวนเท่าไหร่ บ่อยแค่ไหน ที่ไหน”
    • Query: “อะไรคือปัญหาที่แท้จริง”
    • Alerts: “ต้องเกิด action อะไร”
  • Predictive analytics: เป็นการวิเคราะห์โดยทำนายถึงสิ่งที่จะเกิดขึ้นในอนาคตด้วย โดยการวิเคราะห์แบบนี้จะได้คำตอบในลักษณะดังนี้
    • Statistical analysis: “ทำไมถึงเกิดเหตุการณ์นี้”
    • Randomized testing: “จะเกิดอะไรขึ้นถ้าเราทดลองทำวิธีการนี้”
    • Predictive modeling: “จะเกิดอะไรขึ้นต่อไป”
    • Optimization: “อะไรคือสถานการณ์ที่ดีที่สุดที่จะเกิดขึ้น”
  • Prescriptive analytics: เป็นการสังเคราะห์ข้อมูลเพื่อวิเคราะห์แนวโน้มและเสนอทางเลือกในการตัดสินใจที่เหมาะสมกับการคาดการณ์บนฐานของข้อมูล

Big Data จะมาจากไหนได้

โดยปกติในองค์กรจะมีข้อมูลอยู่แล้ว ซึ่งข้อมูลที่เห็นอยู่ตามปกติ จะเป็นเพียงแค่ส่วนหนึ่งของข้อมูลทั้งหมดเท่านั้น โดยข้อมูลทั้งหมดที่มีอยู่จะแบ่งออกได้ดังนี้

  • Data you analyze today: เป็นข้อมูลที่ได้มีการวิเคราะห์อยู่แล้ว เป็นปกติ เป็นข้อมูลที่ใช้กันเป็นประจำ เช่น รายงานผลการดำเนินงาน, สรุปยอดการเบิกจ่ายรายไตรมาส
  • Data you collect but don't analyze: ข้อมูลที่จัดเก็บ แต่ไม่ได้นำมาวิเคราะห์
  • Data you could collect but don't: ข้อมูลที่สามารถจัดเก็บได้ แต่ไม่ได้ทำ
  • Data from partners and third party: ข้อมูลจากภายนอก

สิ่งสำคัญในการทำ Big Data platform

พื้นฐานที่สำคัญในการที่จะสร้าง Platform สำหรับรองรับการใช้งาน Big Data คือ การสร้างโกดังจัดเก็บข้อมูล ในยุคสมัยเดิมเราจะรู้จักกับคำว่า Data Warehouse ที่เป็นแหล่งรวมข้อมูล จากข้อมูลหลายๆ แหล่ง รวมเข้ามาไว้ด้วยกัน แล้วจัดกลุ่มออกมาเป็น Data Mart จากนั้นจึงทำไปสร้างเป็น Cube เพื่อทำ Analys ก็เป็นการจบกระบวนการ

แต่สำหรับโลกของ Big Data นั้น ไม่สามารถใช้ Data Warehouse เพื่อเป็นฐานในการจัดเก็บข้อมูลได้ เนื่องจาก Data Warehouse จะรองรับข้อมูลที่เป็น Srtucture ในขณะที่ Big Data นั้น ข้อมูล Unstructure และยังไม่หยุดนิ่งอีกด้วย ดังนั้นแหล่งที่จะใช้ในการจัดเก็บจึงต้องขยับไปอีกขั้น ซึ่งจะรองรับข้อมูลที่หลากหลายได้มากกว่า

ดูภาพจะเข้าใจง่ายกว่า

เครื่องมือสำหรับทำ Big Data

เครื่องมือสำหรับทำ Big Data ไปจนถึงปลายทาง คือ Data Analytic สามารถใช้ได้หลายเครื่องมือ ขึ้นอยู่กับว่าตัวไหนจะตอบโจทย์ของเรามากกว่ากัน โดยจะขอยกตัวอย่างเครื่องมือคร่าวๆ ดังนี้

  • Data Ingestion/Collection: Kafka, Sqoop, Flume
  • Data Storage: Hadoop HDFS, S3, Google, Azure
  • Data Analyze/Processing: Hadoop Mapreduce, Pig, HIVE, Spark, Cassandra
  • Data Visualization: MS Power BI, Oracle Data virtualization, Tableau, Google Data Studio

สรุป

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

การเริ่มต้น

  1. ควรเริ่มจากการวางโครงสร้างการจัดเก็บข้อมูลให้เป็นระเบียนเสียก่อน เพราะจะช่วยลดความยุ่งยากในการจัดเตรียมข้อมูล (อย่าลืมว่า ยังมีข้อมูล Unstructure จากภายนอกให้ต้องรับมืออีก ดังนั้นเตรียมข้อมูลภายในให้พร้อมไว้ จะได้ไม่เหนื่อยมาก) พร้อมกับหาพื้นที่จัดเก็บที่รองรับการขยายตัว และรองรับการเก็บไฟล์ขนาดใหญ่ (ในแต่ละไฟล์อาจใหญ่ได้เกินกว่าฮาร์ดดิสก์ที่เรามีก็เป็นได้)
  2. จัดเตรียมโครงสร้างข้อมูล Data Lake และ API ที่จะต้องเชื่อมต่อข้อมูลต่างๆ เข้ามาจัดเก็บ
  3. หา Data scientist ไว้ในองค์กร เนื่องจากการตั้งคำถามที่ถูกต้อง เป็นสิ่งสำคัญมาก ไม่อย่างนั้นแล้ว เราจะใช้ประโยชน์จากข้อมูลได้อย่างไม่เต็มที่
  4. ทำระบบวิเคราะห์ข้อมูล จากข้อมูลที่มีอยู่ให้เสร็จเสียก่อน เพื่อเป็นจุดเริ่ม และเป็นกำลังใจในการที่จะไปทำของที่ยากกว่า (คือ การวิเคราะห์ข้อมูลจากภายนอก)