String .Equals() vs ==

two pigeon perched on white track light + equal

พอดีเมื่อวันพฤหัสก่อน เห็นน้องที่ทำงานใช้ Operator == ในการตรวจสอบว่า String เป็นอันเดียวกันไหม แต่ผมเห็นแล้วรู้สึกแปลกๆ มันควรใช้ Method Equals() มากกว่าครับ ใน Blog ตอนนี้ผมแสดงความแตกต่างของ .Equals() กับ == โดยผมยกตัวอย่างเฉพาะในภาษา Java และ C# ที่ผมใช้งานหลักอยู่ครับ – JAVA – C# จาก Code ทั้ง 2 แบบ เราจะเห็นความแตกต่างกันของ String นะครับ (ตามตัวอย่างของ C# และ Java นะครับ) Method Equals : มันตรวจสอบทั้ง Reference และ Value ครับ เจ้า Method Equals() เป็น polymorphic หลายคนอาจจะงงครับ ถ้าเป็นคำว่า Polymorphism อาจจะร้องอ๋อ ในโลก OOP : Polymorphism ถ้าแปลตรงตัว เราอาจจะมองว่าเป็นไปได้หลายรูปแบบครับ ถ้ามองในแง่ของ Method การมีพฤติกรรมเหมือนกัน แต่เป็นไปได้หลากแบบ เช่น คน มี Method เดิน(), วิ่ง() แมว มี Method เดิน(), วิ่ง() สุนัข มี Method เดิน(), วิ่ง() Polymorphism มี Keyword อีก Overloading, Overriding ลองหาอ่านเพิ่มดูครับ กลับมาที่ Equals ของเราดีกว่า เคสเดียวกันข้างต้น Equals ก็สามารถเขียนได้หลายรูปแบบครับ โดยเจ้า Class String ก็เตรียม Method Equals ไว้เหมือนกัน ถ้าไม่พอใจ เราสามารถ Override เขียนใหมได้ครับ…

Human Error แหก แหวก ผ่าทะลุกฏเกณฑ์

วันนี้ได้ไป Stand by เพื่อเอา Program ขึ้น Production โดยก่อนที่จะมาถึงด่านนี้ได้ ก็ต้องผ่าน การ Test อย่างหนักหน่วงจาก User การทดสอบ Package ของระบบงาน การทดสอบ Script DB บน AIX ซึ่งเป็น Environment ที่ใกล้เคียงกับ Production มากที่สุด การ Upgrade ทำโดย IT ของ Site ลูกค้า ไม่ให้บริษัทมายุ่ง กันข้อมูลของธนาคารรั่วไหล ทั้งหมดนี้ดูดีครับ แต่ใช้งานจริงหละ เมื่อถึงวันจริง ระหว่างที่ผมนั่งช่วย User Map หัว GL เพื่อส่งออกไปยังระบบ SAP ในวันรุ่งขึ้น แต่น้องที่ Stand by อยู่ โทรมาแจ้งว่า แย่แล้วววว รัน Script ผิด Version ฝ่าย IT ของ Site ลูกค้า หยิบแผ่น 8.4.0.6 มารัน แทนที่จะเป็น 8.4.1.6 ซวยครับ แพลนที่จะกลับบ้านเร็วๆ หมดกัลลล (รอบก่อน IT ของ Site ลูกค้า ใส่ Password ผิดจนระบบ Lock) ผมรีบกลับมาดูความเสียหายครับ โดยพวกว่ามี 4 ส่วนที่โดนครับ GL-SAP BOT DMS พวก Lookup ของระบบ Master Company ครับ สำหรับการแก้ปัญหานั้น ผมใช่วิธี ซ่อม Data ครับ เนื่องจาก User ที่ใช้ระบบ ก็ไม่คาดฝันว่าจะเกิดเหตุการณ์นี้ขึ้น เลยไม่ได้ออกรายงานเก็บไว้ IT ของ…

ลองเข้าร่วมเป็นกรรมการสอบสัมภาษณ์งานครั้งแรก

ภาพจาก https://commons.wikimedia.org/wiki/File:John_Lavery_-_IWM_War_Room.jpg

ทำงานที่ บ เดิมมา 2 ปีกว่า มีคนในทีมที่ต้องดูแล 2 คน วันนี้เป็นอีกวันครั้งที่ได้มีโอกาสเข้าไปสังเกตุการสัมภาษณ์ และได้สัมภาษณ์จริงๆ จากน้องๆที่มาจาก มศว ครับ การสัมภาษณ์งาน แม้ว่าคุยแค่ 10 – 30 นาที แต่เราต้องรู้ให้ได้มากที่สุดครับว่าคน คนนั้นเหมาะสมกับองค์กรไหม โดยดู ดังนี้ และอื่นจิปาถะ เดี๋ยวถ้ามี update อะไร ผมจะมา update เพิ่มครับ โดยเท่าที่รู้มาศาสตร์ด้วยการจัดการทรัพยากรบุคคล หรือ HR เนี่ย มันแยกเป็นชั้นเรียน เพื่อสอนโดยเฉพาะเลยครับ

Small Data vs Big Data

บทความตอนนี้จะขยายมาจากที่ไปฟังสรุปงาน Big Data Conference ครับ จากที่ผมเคยได้บินคำว่า Big Dataมาตั้งแต่ตอนสมัยเรียนปี 4 ผ่านมาแล้ว 3 ปี เห็นคนพูดว่า Big Data อะไรอะไรก็ใหญ่ไปหมด แต่เราไม่รู้มันใหญ่แค่ไหน ถ้ามันไม่ได้เริ่มจากสิ่งเล็กๆ ใช่ครับ Big Data มันใหญ่ได้ ก็ เพราะ มี Small Data แล้ว Small Data มัน คือ อะไร ไม่เคยได้ยินเลยยย จริงๆแล้วมันอยู่รอบๆตัวเรา เจ้า Small Data เนี่ย มันมาตั้งแต่ที่มีฐานข้อมูลในยุคที่ระบบไฟล์ มาจนถึง Relational Database (อันนี้ฮิตที่สุดครับ แม้ว่าจะมีหลายแบบมาใหม่ อาทิ เช่น Object Oriented Database เป็นต้น) ที่นี้เราลองมาดูกันหน่อยว่า Small Data มันต่างจาก Big Data อย่างไรครับ Category Small Data Big Data Data Sources (แหล่งข้อมูล) Transaction แหล่งข้อมูลจากระบบงานต่างๆ แหล่งข้อมูลนอกเหนือจากระบบงานที่มี เช่น Log, Social Data Volume (จำนวนข้อมูล) Megabytes (106)Gigabytes (109)Terabytes (1012) Terabytes (1012)Petabytes (1015)Exabytes (1018)Zettabytes (1021) Velocity (ความต้องการใช้ข้อมูล) Batch, Periodic, Near Real Real Time Variety (ความหลากหลาย) Structure Data Structure Data และ Unstructure Data…

สับสน เมื่อจะเริ่มเรียนปริญญาโท

ยอมรับเลย ว่าปีนี้ 2559 หาข้อมูล ป โท ช้ามากกก เน้นทำงานมากเกินไป จนเพื่อมาหาข้อมูลจริงเกี่ยวกับ ป โท คือ ช่วงวันที่ 27-30 เมษายน เอง เวลาที่น้อยย่อมทำให้เราตัดสินใจพลาดได้ง่ายๆ สำหรับผมลังเลระหว่าง Computer Science กับ Software Engineering อยู่เลย และท้ายที่สุดผมลองเลือก ป.โท CS ของ จุฬา ไปสมัครในวันสุดท้ายเลย เนื่องจากตอน ป ตรี เรียน CS มา แต่พอมาคิดๆอีกที่แล้ว เรายังตอบตัวเองไม่ได้ว่า เราเรียนไปเพื่ออะไร ชอบทางไหนว่ามากกว่า ส่วนตัวชอบที่เรียน เพื่อให้พัฒนา Software ได้ตรงโจทย์มากขึ้น เรียนไปใช้ปรับไปใช้ทำงานประจำ หรืออื่นๆ ค่าใช้จ่ายที่ใช้ไป มันเป็นการลงทุนอย่างหนึ่ง และอื่นๆ แต่พอลองมองย้อนกลับมาคิดดีๆ ได้ปรึกษากับอาจารย์ตอนคิดหัวข้อ Thesis และปรึกษาเพื่อน พี่ๆแล้ว ผมคิดว่าสิ่งที่ผมอยากรู้จริงๆ ผมควรเรียน Software Engineering ครับ เพราะ การออกแบบ Software ทำอย่างไร ให้ตรงกับ Requirement การจัดการ Process ต่างๆ เพื่อให้การพัฒนา Software ลื่นไหล และก็ Blog ของผมส่วนใหญ่ มันจะเขียนไปแนวทาง Software Engineering ครับ เจอกันตอนปีหน้าครับ ปีนี้สมัคร Software Engineering ไม่ทันและ T___T เวลา มัน หวน กลับ ไม่ได้ คิดให้เยอะๆ ก่อนเรียนนะครับ เวลา เงิน และทรัพยากรที่เสียไป สำหรับผมที่เป็นเสาหลักของครอบครัว ดูแลแม่กับส่งน้องเรียนแล้ว มันสูงค่ามากๆ ครับ

สรุปงาน 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 ครับ (หวานนนนเหลือเกินน) และมีนักลงทุนมาสนใจร่วมพัฒนาครับ ท้ายที่สุด โฆษณานี้สร้างมาจากเรื่องจริงครับ ลองดูโฆษณาให้จบครับ สร้างแรงบันดาลใจ และเข้าใจคุณค่าในชีวิตของมนุษย์ครับ ลองดูนะครับ