สรุปงาน Big Data Conference 2016

เมื่อวาน ผมได้ไปหางาน Big Data Conference ไปหา Idea ใหม่ และหาคำตอบให้กับตัวเอง ด้วยว่าเราเรียน ป โท Computer Science ที่จุฬา ดีไหม ? มาเข้าเรื่องกันเลยดีกว่าครับ Section 1: Going Intersteller?: The Truth Behind the Cloud โดยคุณ Rawitat Pulum อะไร คือ big data เราสนใจอะไร ทาง อ มองต่างจาก 3V มาเป็น 4S ย้อนกลับไปในยุคแรกๆ ของ digital ปี 1980 เรามองพ Structure ก่อน พวก ER-Diagram นั้นแหละ แล้วเอา Data ยัดเข้าไป เพื่อจัดเก็บและค้นหาแหละ ประเด็นอื่นที่ต้องสนใจ Small Data vs Big Data และ Structure & Data Immutable vs Mutable Session 2: Manage & Monitor Hadoop cluster with Apache Ambari โดยคุณ Charnsilp Chinprasert Apache Ambari มาช่วยจัดการ Hadoop เพื่อใช้ช่วย Session 3+4: Real time log monitoring+Log Design for WebApp โดยคุณ ศุภเกศ วงศ์คำภู และ Wittawas Wisarnkanchana เนื่องจากเห็นว่า 2 หัวข้อนี้ มันคล้ายกัน เลยขอยุบรวมกันดีกว่า…

การออกแบบสะท้อน ถึงโครงสร้างและวัฒนธรรมขององค์กร

พอดีนั่งหาข้อมูลเกี่ยวกับตัว Technical Debt แล้วเจอตัวนี้เข้า ใช่เลย “Software Design mirrors the [Organizational and social] structure of the organization that builds it” “การออกแบบซอฟต์แวร์สะท้อน ถึงโครงสร้างและวัฒนธรรมขององค์กร ที่สร้างมัน” ลองดู Product ที่อยู่รอบตัวเราก็ได้ครับ อย่าง Google, Facebook และ Microsoft เป็นต้นครับ ทุกอย่างมีสไตล์การพัฒนาของตัวเอง อย่าง Google ทุกอย่างดูเรียบง่าย และไปในทางเดียวกันทุก Product แต่ฝั่ง Microsoft ที่เมื่อก่อนแต่ละ Product นี้ไปันคนละแนวเลยย (หลังๆ เริ่มดีขึ้น เมื่อมาอยู่ในยุคของคุณ Satya Nadella ครับ) ที่นี้ลองกับไปดูงานที่เรากำลังทำอยู่บ้าง ถ้ามีทีมพัฒนา 2 ทีม (มองว่ามากกว่า 2 คนก็ได้ครับ) รูปแบบของ Software น่าจะมีความหลากหลายทางพันธุกรรมแล้ว อาจจะ แม้ว่าจะเป็นเรื่องเดียวกัน ? จากความเข้าใจของ BA, SA, และ DEV ครับ

[CR] ลองชิมสลัดจาก 711

หลังจากเปลี่ยนเทรนการกินจากปิ้งย่าง มารักสุขภาพมากขึ้น วันนี้ได้ลองสลัดผักจาก 7-11 ในเครือ CP นะครับ ว่ามันจะดีกว่าสลัดที่ขายตามตลาดนัดอย่างไร ราคา 25 บาทครับ โดยที่ขายมี 2 รสชาติครับ รสธัญพืช + ไข่ต้ม รสผักสามสี + ไข่ต้ม แกะๆดูทีละอันครับ จะมีซองใส่น้ำซอส และส่วนประกอบต่างๆ ลองผสมคลุกเคล้าดูครับ ส่วนรสชาติ ออกจะจีดไปครับ อาจจะเป็นเพราะเป็นอาหารแช่เย็นมาครับ ปริมาณน่าจะเหมาะกับสาวๆนะครับ สำหรับคนหุ่นหมีอย่างเราไม่อิ่มแน่ๆ สุดท้ายยังคง ผมแนะนำไปให้หาซื้อสลัดถุงละ 25 -35 บาทมากินดีกว่าครับสดกว่า ปริมาณเยอะกว่าครับ ตรงนี้ต้องรอทีม Research ของ CP ทำการบ้านอีกสักพัก น่าจะคล้ายกับเคสของข้าวกล่องแช่แข็งที่ตอนแรกๆรสชาติออกมาไม่ดี แต่ภายหลังมีการปรับปรุงขึ้นมาเรื่อยๆ จนรสชาติอร่อย แถมยังราคาถูกกว่าร้านข้างทางบางร้านอีกครับ 😀

สายไฟที่ยุ่งเยิงกับซอฟต์แวร์ที่สับสน

ระหว่างทางไปทำงาน กลับบ้าน วิวรอบทางของมนุษญ์เงินเดือนในเมืองใหญ่ คงไม่พ้นกับสายไฟ สายโทรศัพท์ ดูๆไปแล้ว มันโคตรจะยุ่งเหยิง บดบังทศนีย์ภาพ แล้วถ้าเราเอาภาพของสายไฟ มาเปรียบกับ Software บ้างหละ สิ่งที่เราทำอยู่มันเป็นอย่างไร เริ่มที่ภาพแรกเลยและกัน ชุมสาย ชุม Code >> ยำ Code >> Spaghetti code ถ้ามี Change หละ คนแก้คงทำใจ ก่อนแก้ Code และจะต้องคิดหนัก ว่าแก้อย่างไร ไม่ให้กระทบ Code คนอื่น (สายไฟ สายโทรศัพท์ของเจ้าอื่นๆ) เปลืองสาย อันนี้ไม่แน่ใจว่า มีการขดสายไฟพันไว้ทำไม !!! แต่มุมของผมเดินผ่านมา 2 ปี ยังเหมือนเดิม ถ้ามองที่ Code เรา มันเขียนเผื่ออนาคตไปไหม หรือมี Logic แปลกๆ มาภาพที่ 2 บ้าง เหมือนภาพแรกเลย ถ้ามองเปรียบกับ Branch ที่ Code เราอยู่ ยุ่งเหยิง สายไฟ สายโทรศัพ์มันควบแน่นมากกกกกก ถ้าเป็น Code มันมีความยึดติดกันสูงงงงงง ภาพที่สาม แสดงถึงการถึงการเผางาน เผาเสร็จแล้วก็ไม่เก็บกวาด มองเป็นซากอารยธรรม ที่มันใช้งานได้ ภาพที่เหลือ ลองคิดคำบรรยาย แล้วไปเทียบกับ Code ดูครับ สุดท้ายแล้ว เห็นภาพนี้แล้ว คิดเยอะ Research เยอะๆ เก็บ Requirement ถามเยอะๆ ลูกค้าไม่รู้ ก็ต้องให้เค้ารู้ว่าต้องการอะไร Design & Develop โปรแกรม ให้ครอบคลุมตามที่ Research และเก็บ Requirement Test & UAT Rework & Change ตรงนี้ควรจะลดให้มากที่สุดดด เพราะ ค่าใช้จ่ายในการก่อหนี้ทิ้งไว้…

วันแรงงาน เมื่อโปรแกรมเมอร์ เป็นตัวละครในสื่อโฆษณา

วันนี้ระหว่างปั่นงานระบบ ฺBOT DMS ในวันแรงงาน ก็แว๊บไปเปิด youtube เพื่อฟังเพลง แลวบังเอิญเจอโฆษณาอันนี้ มันเป็นโฆษณาที่ผมต้องดูจนจบ เพราะ มันมีวลีนึงโผล่ขึ้นมา “แล้วเราจะเขียนโปรแกรมอย่างไร !!!” เจ้าโฆษณาตัวนี้เราจะได้เห็น ญาญ่า มาเขียน Code น่ารักด้วยยยย เข้าเรื่องดีกว่า พระเอก (หมาก) เป็นนักพัฒนาแอปพลิเคชั่น ถ้าภาษาบ้านๆทั่วไป คือ โปรแกรมเมอร์ ได้มี idea ที่จะนำอาหารเหลือที่ต้องทิ้ง ในแต่ละวัน มาสร้างประโยชน์ สร้างมูลค่าขึ้นมา ที่นี้คนในทีมมีประเด็นขึ้นมาว่า “อาหารเหลือเนี่ยนะ จะสร้างมูลค่ามหาศาล” “แล้วเราจะเขียนโปรแกรมอย่างไร !!!” แต่ก็มีแง่คิดที่ดีเหมือนกัน “Idea ดีๆบนโลกนี้ เริ่มมาจากคำว่าเป็นไปไม่ได้ทั้งนั้นแหละ” จากนั้นพระเอกก็ไปนั่นคิด นอนคิด หลายตลบบบบบ แต่มันก็คิดไม่ออก อีกคำนึงที่มาจากนางเอก คือ “คิดนอกกรอบ” จากนั้นทั้งคู่ออกมาระดมสมองหาไอเดีย ไปเรื่อยๆ จนทั้งคิดออกครับ โดยเปลี่ยนจากถังขยะ เป็น แอปพลิเคชั่น เพื่อเชื่อมระหว่างคนยากไร้ที่ต้องการอาหาร และร้านค้าที่มีอาหารเหลือครับ Win-Win สิ่งที่เราเห็นอีก คือ การออกแบบ ทำงานร่วมกัน Pair Programming ครับ (หวานนนนเหลือเกินน) และมีนักลงทุนมาสนใจร่วมพัฒนาครับ ท้ายที่สุด โฆษณานี้สร้างมาจากเรื่องจริงครับ ลองดูโฆษณาให้จบครับ สร้างแรงบันดาลใจ และเข้าใจคุณค่าในชีวิตของมนุษย์ครับ ลองดูนะครับ  

[DB2] Stored Procedure ช่วยลบข้อมูลเยอะๆ

IBM DB2

ในงานของเรา อาจจะมีการลบข้อมูลเยอะๆ ไม่ว่าใน DBMS ตัวไหนก็ตามครับ ถ้าเป็น DB2 ถ้าเราลบข้อมูลเยอะๆ อาจจะเจอปัญหา Transaction Log Full ได้ครับ ครั้นจะปิด Log แล้วลบทิ้ง ก็อาจจะมีปัญหาครับ เช่น ตัว HADR ถ้าปิด Log นี้ ไม่ Sync กันนะครับ ผมเลยมี Stored Procedure ที่ช่วยในการลบข้อมูล ดังนี้ครับ เห็น Code และมาดูก่อนว่า มันต้องใส่ Parameter อะไรบ้าง การทำงาน วน Loop DELETE ข้อมูลจนกว่า Query จะมี SQLCODE = 100 (No Data) ซึ่งหมายถึง ลบจนกว่าคำสั่ง DELETE จะไม่มีข้อมูลให้ลบครับผม 2019 Update: เพิ่มตัวอย่างการเรียกใช้งาน [DB2] ตัวอย่างการใช้งาน Stored Procedure DELETE_MANY_ROWS

มิวเซียมสยาม “พม่าระยะประชิด”

หลังจากปั่นงานเสร็จ เอออ เหลืออีก 0.5 วัน จะวันจันทร์ที่ 18 เมษายน 2559 แล้วววว เวลาเพียงอีกนิดเดียวเท่านั้น แต่อยากไปเที่ยว บังเอิญผมเห็น Ads ของ Facebook ที่เกี่ยวกับ มิวเซียมสยาม ผมเลยลองไปดูครับ หลักจากเคยไปมาเมื่อนานมากแล้ว น่าจะ 3-4 ปีแล้วมั้ง โดยนำเสนอคำที่แตกต่างกัน ในแต่ละส่วน ดังนี้ เกริ่นนำ : ไขกุญแจ และเปิดใจ ให้เราเข้าใจ เพื่อนบ้าน ของเรามากขึ้น เข้าสู่ AEC แล้วนะครับ ตักตวง-ตามฝัน : กล่าวถึงทำไมคนพม่า ถึงมาไทย แล้วเค้ามีความฝันอะไรครับ ขัดสน-สะสม : เมื่อมาอยู่ไทย ก็ต้องรับสภาพสังคม เศรษฐกิจของเมืองไทยได้ แม้ค่าแรงจะน้อย แต่สามารถรอมชอม แบ่งปันกันได้ อย่างเช่น ห้องเช่า 2 กะ หรือ การอยู่ด้วยกัน กินด้วยกัน ได้อาหารที่มากขึ้น หลากหลาย แต่เงินที่ใช้เท่าเดิม รุ่มรวย-รุงรัง : ในแต่ละล๊อกเกอร์ จะบอกถึงแต่ละประเด็นของชาวพม่าในไทยครับ ต่างด้าว-ต่างชาติ : ส่วนใหญ่เราคิดว่าอยู่ในส่วนของแรงงาน แต่จริงๆแล้วชาวพม่าในไทย ทำงานในหลากหลายอาชีพครับ ทั้งอาจารย์ หมอ พยาบาล และพนักงานออฟฟิต เป็นต้น พลังธรรม-พลังทำ : ชาวพม่ามีความศรัทธาในศาสนาพุทธมากครับ ถ้าสังเกตุที่อยู่ของพวกเค้า พบว่าที่ทีเด่นที่สุด คือ หึ้งพระครับ และจากการที่ชาวพม่า เข้ามาอยู่รวมกันอยู่ด้วยกัน ก็เกิดเป็นพลังทำ มีเค้าน่าจะเรียกว่าแบนด์ของตัวเองปะ เป็นเสื้อกลุ่ม ชุมชนครับ รุกราน-แลกเปลี่ยน : ในอดีตไทยกับพม่า ไม่ถูกกัน จริงๆไม่น่าจะได้เป็นไทยกับพม่านะครับ น่าจะเป็นระหว่างรัฐมากกว่า และก็สงคราม ในสมัยก่อนชั้นปกครองเค้ามองเป็นกึ่งกีฬา และแนวคิดธรรมราชาด้วย (ไม่แน่ใจว่าใช้คำถูกไหม) แต่จริงๆประชาชน ชาวบ้านคงไม่อยากไปทำสงครามหรอก และในส่วนนี้แสดงความแตกต่างของประวัติศาสตร์ในเรื่องสงคราม ยุทธหัตถี ที่ทางไทยกับพม่า ที่มีการลงบันทึกแตกต่างกันครับ…

BarBQ Plaza บุฟเฟต์

กลับมาแล้วกับเทศกาลกินไม่ยั้งที่ทุกคนรอคอย “รีฟิล กินไม่สะดุด เต็มอิ่มครบรส”  วันนี้เป็นวันสุดท้ายของโปรบุฟเฟต์ วันที่ 10 เมษายน 2559 ผมกับน้องไปกิน BarBQ Plaza สาขา The Walk ครับ ที่นี้มีเอกลักษณ์อน่างนึ่งนะครับ คือ ใช้เตาแก๊สครับ มันทำห้เตาร้อนเร็วครับ แต่เดี๋ยวสักพักน่าจะเปลี่ยนเป็นเตาไฟฟ้า จากเหตุผลด้านความปลอดภัยครับ สำหรับโปรที่มี Happy Refill 349 บาท ต่อ ท่าน Super Refill 449 บาท ต่อ ท่าน อันนี้มีขอเพิ่มมาพอสมควรเลยครับ เป็นพวกอาหารทะเล Deluxe Refill 549 บาท ต่อ ท่าน อันนี้เพิ่มจาก 449 จากกุ้งตัวเล็กๆ เราจะได้กลุ่มแม่น้ำแทน และก็เนื้อสัตว์นำเข้าครับ ภาพบรรยากาศครับ ยังไง ผมขอไปจำศึล 8 เดือนก่อนนะครับ ช่วงต้นปี ถ้ามีหน้าจัดโปรบุฟเฟต์ใหม่ ค่อยไปเจอกันใหม่ครับ 😀

Technical Debt เขียน Code แล้วทำไมถึงติดหนี้ แถมมีดอกเบี้ยด้วย !!!

จากหัวข้อของบทความ หลายคนน่าจะสงสัยว่าทำไม “เขียน Code แล้วทำไมถึงติดหนี้ แถมมีดอกเบี้ยด้วย !!!” เดี๋ยวผมจะมาอธิบายครับ ว่าทำไมเราถึงได้สร้างหนี้ และหนี้ในการเขียน Code จริงๆ ก็ไม่เชิงนะ บอกว่าเป็นหนี้ในการพัฒนาระบบ น่าจะดีกว่าครับ โดยหนี้ที่เกิดขึ้นมี ดังนี้ครับ Acceptable – เป็นหนี้ในระยะสั้น และระยะยาวได้ประโยชน์ มองเป็นการลงทุนแนวๆ VI ได้เลยนะเนี่ย Unavoidable – หนี้ที่เกิดจากสถานการณ์ที่เราไม่สามารถคาดเดาได้ Unnecessary – หนี้ที่เกิดแล้วทำให้ระบบงานเรารอดมีงานส่งได้ หนี้ที่เกิดแล้วทำให้ระบบงานเรารอดมีงานส่งได้ แต่ไม่มีประโยชน์ให้แก่ทีมงาน หรือองค์กรเลย Bad – หนี้แบบซุกไว้ใต้พรม หนี้แบบนี้ ถ้าเกิดแล้วระบบงานของเราคงจะรอดยาก หรือขึ้น Production ได้ แต่ปัญหาเพียบบบบ ท้ายที่สุดครับ เราสามารถทำให้ Code ดีขึ้นได้นะครับ ขอแค่มีความกล้าที่จะเข้าไปจัดการกับมัน แม้ว่า Legacy Code นั้น เป็นตัวทำเงินให้กับหน่วยงาน หรือองค์กร แต่ถ้าทิ้งไว้นานเข้า หนี้มันเยอะจากดอกเบี้ยนะครับ ระบบยิ่งเก่า ถ้า Code มันแย่ ค่าใช้จ่ายในการจัดการมันจะยิ่งสูงขึ้นเรื่อยๆครับ และก็ระดับของหนี้แปรผันระดับความรู้ Business ของ Develop ครับ ถ้ารู้ไม่ครบ ระบบอาจจะมีหนี้ โดยที่เราไม่รู้ตัวก็ได้นะ

Proudly-Found-Elsewhere Syndrome

  Proudly-Found-Elsewhere Syndrome (PFE Syndrome) หรือ Invent Syndrome ความหมายของมันแตกต่างกับตัว Not-Invented-here Syndrome อย่างสิ้นเชิงเลยครับ คือ มีการสร้างงาน หรือ นวัตกรรมใหม่ขึ้นมาครับ สำหรับในมุมของ Software Development เป็นการนำ Library ที่ Common มาใช้งานเสริมได้ เวลาที่เหลือเราก็เอาไปใส่ใจกับส่วนของ Core Business มากขึ้นได้ครับ ส่วน PFE Syndrome คำแนะนำของผม คือ ต้องเปิดใจ พร้อมที่จะเรียนรู้ และคำนึงถึงความสมเหตุสมผลที่เลือกใช้ เพราะ มันไม่ได้มีวิธีการตายตัวที่ตอบโจทย์กับปัญหาต่างๆครับ และก็ท้ายที่สุด ผมมีบทความแนะนำครับ From not invented here to proudly found elsewhere โดยบทความกล่าวถึง Drupal เป็น CMS ยอดนิยม Blognone ใช้ตัวนี้อยู่ครับ โดยมีการเปลี่ยนจากที่ต้องทำเองทุกๆอย่าง (Not Invented Here) มาใช้ Library หรือ Tools ของชุนชมภายนอกแทน มาเชื่อมต่อกับตัว Core ของ Drupal ครับ (Proudly Found Elsewhere) แม้จะต้องปรับแก้เยอะ แต่ประโยชน์ที่ได้รับนั้นมี ดังนี้ครับ Tested Code Reused Code Open Source