การจัดการเมื่อต้อง Query กับฐานข้อมูลที่ขนาดใหญ่

บางครั้งเรามี Query ที่ Join Table เยอะๆ และมีผลลัพธ์มหาศาลประมาณหลายแสนรายการครับ เราอาจจะมีการปรับจูน DB เช่น ทำ Index หรือทำ Query Cache เป็นต้น แต่ในมุมของ Dev เราสามารถปรับโปรแกรมได้เหมือนกัน โดยปรับ Query จากเดิมที่ Join กับหลายๆ Table มา Query ตรงๆที่ละ Table แล้วนำข้อมูลมา Process ใน App แทนครับ

UAT Test Script ควรทำขึ้นมาจากอะไร

หลังจากที่ได้ไปงาน CodeMania 11 ได้ไปฟัง Session ของพี่รูฟนะครับ ในหัวข้อ ATDD (Acceptance Test Driven Development) ครับ จากแนวคิด Zero Defect ก่อนเข้าเรื่องมาอารัมภบทกันก่อน เกิดจากความเข้าใจของ User, BA, SA และ DEV มีความเข้าใจที่ไม่ตรงกัน Zero Defect มันบอกตรงตัวอยู่แล้วว่า ข้อผิดพลาดทุกอย่างเป็นศูนย์ แล้วมันทำได้อย่างไร ? สำหรับบางที่อาจจะเกิดปัญหาว่า User ไม่เข้าใจกระบวนการพัฒนาระบบ เราอาจจะต้องมีการ Guide ด้วยนะครับ ไม่งั้นความต้องการจะบิดเบี้ยวไปหมด

[IT] (แปล) ทำไม Microsoft ถึงสร้าง Data Center ใต้มหาสมุทร ?

คำกล่าวแรกสำหรับ Project นี้ของ Microsoft ครับ “50% of us live near the coast. Why doesn’t our data?” หลายคนอาจจะได้อ่านข่าวไอทีที่ว่า Microsoft เปิดตัว Data Center ใต้น้ำ ตัวแรกของโลก โดยใช้ชื่อโครงการ Project Natick และสร้างตัวแบบชื่อ Leona Philpot ซึ่งผ่านการทดสอบมาแล้วจำนวน 105 วัน เรามาดูกันว่าทำไมยักษ์ใหญ่ด้าน IT อย่าง Microsoft ถึงคิดเช่นนั้นครับ เมื่อมีเหตุผลในการสร้าง แล้วก็ต้องมีข้อจำกัดครับ เพราะ ปกติงานทาง IT กับ Data Center จะอยู่บนบก คราวนี้ไปอยู่ใต้น้ำ ที่มา : The Hacker News , Project Natick

[DB2] Query ตรวจสอบการ Set Automatic Storage ของ Table Space

IBM DB2

เมื่อวานได้ลองขึ้น DB สุดท้ายแล้ว พอทดสอบ Run App มันแจ้ง SQL0289N Error นี้ครับ สาเหตุของ SQL0289N DB2 มันจัดสรรพื้นที่ให้ไม่ได้ แต่การที่เราจะแก้อะไร ควรจะดู Config เก่าก่อน Query Check Table Space Automatic Storage สำหรับ Query ที่เอาไว้ตรวจสอบ Automatic Storage ของแต่ละ Table Space มีการกำหนด (YES หรือ NO) สามารถดูได้จาก SYSPROC.MON_GET_TABLESPACE เขียน Query ดังนี้ ผลลัพธ์จากการ Query นะครับ ส่วนปัญหาที่แท้จริงในตอนต้น Blog เกิดจากไป Restore DB ผิดที่ครับ พื้นที่เลยไม่พอ T__T

[UI] เปลี่ยน UI นิดเดียว แต่ความรู้สึกมันต่างกัน

จริงๆ ผมว่า Blog ตอนนี้ อาจจะไม่เกี่ยวกับ UX UI โดยตรงนะครับ มี screen อันนึง ที่ระบบเดิมมีเจ้าตัว Progress Bar เอาไว้แสดงสถานะการทำงาน ซึ่งระบบมันทำงานประมาน 2-3 ชั่วโมง แต่พอปรับเปลี่ยนระบบใหม่ มีการปรับอัลกอริทึมใหม่ และแก้ตาม Requirement ที่เพิ่มเติมมา ปรากฏว่ามันเร็วขึ้นจนเหลือ 30 วินาที ทาง DEV เลยตัดเจ้าตัว Progress Bar ออกไป มาทางฝั่ง BA /Marketing และ User บ้าง พอตัดออกเสร็จ มองว่าระบบมันไม่มี Process การประมวลผลเลยซะงั้น เซงเลยยย กลายเป็นว่าพอมีปรับแก้อะไรคิดว่าไม่ได้รับผลกระทบ T__T สุดท้ายอยากจะสรุปว่า ถ้าปรับอะไร ควรมองภาพรวมด้วย เหมือนการปรับ UX/UI มันทำให้ feeling ของหน้าจอเปลี่ยนไป จนอาจจะทำให้คนอื่นๆ ที่ไม่ใช้คนทำเข้าใจผิด คิดว่ามันไม่ยากและขอแก้เปลี่ยนโน่นนี่เพิ่ม  

เมื่อฉันซื้อ LTF ครั้งแรก

airport bank board business

ปลายปีที่ผ่านมาครั้ง หลายจากที่รอมาทั้งปี ผมได้ตัดสินใจซื้อ LTF โดยเลือกใช้บริการของธนชาตครับ กองทุน T-LTFD ครับ สาเหตุที่เลือกกองนี้ สำหรับแนวทางการเลือกกองทุน ผมขอไม่อธิบายนะครับ เว็บอื่นๆมีแนะนำเยอะเลย สิ่งที่ผมสนใจ คือ LTF กับการยื่นภาษีมากกว่า เพราะสิ่งที่หลายๆเว็บสอน คือ การเลือกซื้อ แต่ไม่ได้บอกว่า เราจะใช้ลดภาษีได้อย่างไรครับ ผมเคยเจอคนรุ้จักที่พลาดกันมาหลายคนแล้วที่ซื้อ LTF ตอนสิ้นปี แล้ว Key ยื่นภาษีออนไลน์ทันทีครับ สิ่งที่เราต้องรอ เมื่อซื้อ LTF คือ เอกสารยืนยันการซื้อครับ เพราะถ้ายื่นไปก่อน แต่ไม่มีหลักฐานการซื้อ LTF กว่าจะได้เงินภาษีคืนอีกทีนี่รอกันยาวเลยนะครับ

[AOP] Aspect Oriented Programming

พอดีได้รื้อพื้นความรู้เก่าๆ และก็เจอเรื่องน่าสนใจมาเขียน blog พอดีเลย เข้าเรื่องกันเลยดีกว่า AOP เนี่ย หรือ ชื่อทางการของมัน คือ Aspect Oriented Programming โดยเจ้า AOP เป็นแนวคิดนึง ที่เป็น Guideline ที่ช้วยในการพัฒนาระบบครับ เหมือนกับ OOP ที่มองทุกอย่างเป็น Object ครับ !!! AOP ไม่ได้มาแทนที่ OOP นะครับ !!! หลายคนที่อ่านมาถงตรงนี้อาจจะงงกัน มองง่ายๆว่าเป็นส่วนเสริมของ OOP ครับ เพราะ OOP เนี่ย ถ้าเรานำมา Implement พัฒนาระบบ ระบบหนึ่ง มันมีเรื่องที่เราต้องสนใจมากมาย ไม่ได้สนใจแต่ตัว Business เพียงอย่างเดียวนะครับ อาทิ เช่น เรื่อง Security และ Log เป็นต้นนะครับ ตัวอย่าง เช่น การที่เราสร้าง Class หนึ่งขึ้นมา มีหน้าที่ในการตัดจ่ายสินค้าในโกดังนะครับ โดยหน้าที่ของ Class มีหน้าที่คร่าว ดังนี้ จากตัวอย่างข้างต้น สิ่งที่ Class นี้ความมีจริงๆ ควรเป็นสิ่งที่อธิบายในเรื่องของ Business ครับ พวกตัดจ่ายสินค้า, ดูยอดคงเหลือ ส่วนเรื่องบันทึก Log (ตัดออกได้ แต่พอโปรแกรมมีปัญหานี่ ยาวเลยนะกว่าจะ Tracking ได้ และตรวจสอบสิทธินั้นไม่จำเป็น แต่ก็เอาออกไม่ได้ 555 ซึ่งก็แล้วแต่การเก็บ Requirement และการออกแบบระบบ ไอ้สองส่วนหลังเนี่ยแหละ มันคือ Cross cutting concern เรียกแบบที่ผมเข้าใจนะ มัน คือ สิ่งที่เราต้องสนใจ แต่มันเกี่ยวพันกับสิ่งในสิ่งที่เราสนใจจริงๆ ลองมาดูที่ Code กับมันมีส่วนของ Business กับส่วนที่เราต้องสนใจเพิ่มลงไป (พวก Log, Security เป็นต้น)…

มาลองลง Docker Toolbox กัน

หลังจากที่ส่องๆ มาแล้ว เรื่องการลง Docker มาสักพัก และลองหาลู่ทางใช้ Hyper-V ตอนนี้ผมเลือกที่ลง Docker Toolbox ก่อนครับ ทำไมผมถึงใช้ Docker Toolbox มันรวม Tools ที่จำเป็นมาให้แล้ว ไม่ต้องลงทีละอนให้เสียเวลาครับ แล้ว Tools ทีมี มีอะไรบ้าง ขั้นตอนการลง ลงง่ายครับ กด Next ไปเรื่อยๆ แต่อย่าลืมอ่านข้มูลด้วยนะครับ สำหรับตัว Hyper-V เดี๋ยวรอ Blog ตอนหน้านะครับ ว่าเราสามารถเปลี่ยนตัว Virtual Box ไปใช้ Hyper-V ได้อย่างไรครับ  

[WordPress] แสดง Source Code อย่างมีสีสันบน Blog ของเรา

wordpress

ผมได้เขียน Blog มานานหลายปีแล้ว ซึ่งใน Blog แต่ละตอน อาจจะต้องมีแทรก Code snippet บ้าง เพื่ออธิบาย หรือเป็นตัวอย่างให้กับผู้อ่านได้เห็นภาพนะครับ โดยวันนี้ผมเลยอยากจะมีแนะนำ Plug-in ช่วยแสดง Source Code อย่างมีสีสันบน Blog ของเรา จากประสบการณ์ที่ได้ลองมาหลายตัวนะครับ Crayon Syntax Highlighter 📌 จุดเด่น 📌 จุดด้อยมัน SyntaxHighlighter Evolved สำหรับ Plug-in ตัวนี้ ผมใช้มานานแล้วครับ 📌 จุดเด่น 📌 จุดด้อย Enlighter – Customizable Syntax Highlighter สำหรับ Plugin นี้ผมย้ายมาใช้ตอนปี 2022 ครับ เหมือนตัวก่อนหน้าอย่าง Crayon Syntax Highlighter / SyntaxHighlighter Evolved มันหน่วง เลยย้ายมใช้ 📌 จุดเด่น เป็นตัวแรกที่รองรับ gutenberg และมีข้อดีของ 2 Plugin ก่อนหน้า หลังจากบอกจุดเด่น/จุดด้อยไปแล้ว ของแต่ละ Plugin ที่ผมคิดว่าดี และเหมาะกับ WordPress นะครับ สำหรับผมตอนนี้พยายามใช้ Crayon Syntax Highlighter เพราะ Config น้อยและไม่ต้องจำ Tag พิเศษเพิ่มนะครับ แสดง Highlight จากที่มาได้หลายแหล่งครับ และอาจจะเพิ่ม โดยอาจจะลิงค์จาก Git หลังจากที่สมัครไว้มานานเลย แต่ยังไม่ได้ commit อะไรขึ้นไป 555

2015 ผ่านไป Blog นี้มีอะไรบ้างนะ

หนึ่งปีผ่านไปไวเหมือนโกหก จากปีเคยสรุปสิ่งที่ผ่านมาของปี 2014 คราวนี้มาเป็นที่ของปี 2015 ที่เพิ่งผ่านไปครับ ถ้าดูจาก Jet Pack ที่เก็บสถิติแล้วจะพบว่าผมขยันเขียน Blog ที่สุดก็ข่วงต้นปีนะครับ หลังๆก็ว่างเว้นไป เพราะ ยังจัดปล่อยให้งานเข้ามารบกวนเวลาส่วนตัวมาจนเกินไป (เอางานกลับมาทำเพื่อให้โปรเจค มันสามารถ Go Live ได้ ปัญหาหลักๆของกรรมกรไอทีอย่างเราเลย เรื่องการประเมินเวลาทำงานจริง กับเวลาที่ลูกค้าต้องการ) โดยในปีนี้มี Blog ยอดนิยมที่มีผู้ชมทั้งหมด 5 เรื่อง ดังนี้ จากข้อมูลทั้งหมดพบว่า Blog ที่มีคนสนใจจะมีของปี 2015 แค่ 2 ฺBlog เท่านั้นครับ ส่วนที่เหลือจะเป็นของปีก่อนหน้านะครับ ถัดมาดูสถิติการเข้าชมของเว็บ โดยผมได้นำข้อมูลมาจาก 2 แหล่ง ดังนี Google Analytics Jetpack Sitestat Jetpack Sitestat เป็นการสรุปข้อมูลทั้งหมดนะครับ โดยเว็บ Blog ของผมมีผู้ชมมากที่สุดจาก Thailand, USA และ LAOS (ปีที่แล้วเป็น Australia) ตามลำดับ ดังรูปครับ ก่อนจากกัน ผมขอขอบคุณผู้อ่านทุกท่านที่ติตตามอ่าน Blog ผมมาตลอดครับ บางตอนอาจจะเขียนงงบ้าง สับสนบ้าง ผมขออภัยผู้อ่านทุกท่านมา ณ ที่นี้ครับ สำหรับใครที่ยังไม่ Like Fanpage สามารถตามมาได้ที DebuggingSoft ครับ 😀