DB2 Launchpad มีแต่หน้าจอว่างๆ ไม่มีเมนู หรือปุ่มให้ลงโปรแกรม

สำหรับหลายๆคนที่ Install IBM DB2 เจอหน้าจอว่างๆแบบนี้
สำหรับหลายๆคนที่ Install IBM DB2 เจอหน้าจอว่างๆแบบนี้
Unit Test คือ การทดสอบ Code ในส่วนที่เล็กที่สุดของ Developer เพื่อทดสอบว่าสิ่งที่เขียนมามันใช้ได้จริงนะ และมี Test ตามที่ผู้พัฒนาเห็นว่ามันสำคัญ (พยายามทำให้ได้เยอะที่สุดครับ) Test ควรทำได้ง่าย เขียนสั้น และกระชับ เพราะกลุ่มคนหลักๆที่ใช้ คือ ตัว Developer เองครับ สิ่งที่เป็นหัวใจหลักของ Unit Test คือ ทำให้มันอยู่ได้ด้วยตัวมันเอง ไม่มี Dependency ไปยุ่งกับ Code ตัวอื่นๆ ถ้าจำเป็นต้องใช้จริงๆ ให้ Mock มันเข้ามาให้หมด เพราะจุดประสงค์ของ Unit Test ดูเฉพาะ Logic การทำงานในส่วนที่เราสนใจจริงๆ ไม่จำเป็นต้องสนใจสภาพแวดล้อมภายนอก อย่างที่คนกลุ่มอื่นๆสนใจ ได้แก่ Tester หรือ User สนใจครับ ถัดมาเป็น Integration Test ระดับการทดสอบนี้มีไว้ เพื่อแสดงภาพรวมของระบบ ควรมีความใก้ลเคียงกับ Production มากที่สุด ห้ามมี Mock ถ้าไม่จำเป็นต้องใช้จริงๆ ว่าระบบมันสามารถทำงานได้จริงในทุกส่วน ต้องเขียน Test ให้คลุม อาจจะทำเป็น UI Test เป็นต้น โดยการเทสแบบนั้น พยายามให้สภาพแวดล้อมเหมือนจริงที่สุดครับ เช่น ถ้ามีการเชื่อมต่อกับ DB จริงๆ ก็ต้องมี DB เอาไว้เทส หรือถ้ามี API เปิดไว้ ก็ควรมีเจ้า API สำหรับ Test เหมือนกันครับ เป้าหมายของ Integration Test คือ ให้คนที่ไม่ใช่ Develop เข้าใจภาพรวมการทำงานครับ จะว่าไปส่วนใหญ่ ผมก็พยายามทำ Integration Test มากกว่า Unit Test นะ เผางานให้รีบทันส่ง
ห่างจากการเขียน Blog ไปหนึ่งเดือนเต็มๆ เนื่องจากกำลังปั่นงาน และแก้ Change ของ Site เจ้าของสลากนี่แหละ และพอดีวันที่ 1 เมษายน ของทุกๆปี เป็นวันสถาปนาธนาคารออมสิน ผมก็เลยนำสลากของเดิมไป Rollover (ต่ออายุต่อ) หวังลมๆแล้งๆว่าจะถูกรางวัลตอบแทนการทำโมดูล DataSet, DataFile ที่ส่งข้อมูลให้ BOT ครับ 55555 จากรูปข้างต้น ผมฝากไป 3 ปี ทุน 5,000 บาท ได้ 100 หน่วย ดอกเบี้ย 2.75 บาท ต่อหน่วย เมื่อครบ 3 ปี ก็จะได้ดอกเบี้ยรวม 275 บาทครับ คราวนี้มาลองมุมกลับกัน ถ้าผมเอาเงิน 5,000 บาทนี่ไปทำอย่างอื่นหละ ปิดท้ายด้วยกระปุกของแถมเมื่อไปฝากธนาคารในวันสำคัญนะครับ โดยมีวันเด็ก วันสถาปนาคลังออมสิน(1 เมษายนของทุกปี) และก็วันออมแห่งชาติครับ (31 ตุลาคมของทุกปี)
เมื่อวันเสาร์ที่แล้ว ผมได้ไปงาน Code Mania 11 โดยมีเรื่องน่าสนใจ ดังนี้ Session ตอนเช้า – Wongnai Engineering Story ในช่วงนี้เป็นการเล่าถึงการจัดการด้าน Infrastructure ของ Wongnai ว่าตั้งแต่เริ่มต้นจาก Mac เพียง 1 เครื่องทีตั้งไว้ที่ CAT จนมีปัญหาที่ละ เรื่อง และทำให้ย้ายไปใช้ Cloud ในแต่ละชั้น ดังนี้ครับ 1. ระบบเมล์ 2. App Server 3. อีกส่วนเป็นปัญหาของ DB ที่ใช้ MySQL ซึ่งก็รู้ๆกันอยู่ว่า 4. Searching – Like Behaviour on Facebook Pages อันนี้เป็นงานวิจัยของนิสิต ป.เอก ของ ม.จุฬา ที่สนใจข้อมูลของการ like โดยทำ bot เพิ่มเก็บข้อมูล โดยใช้ Graph API ที่ทาง Facebook เตรียมไว้ให้ครับ และใช้ Tool ชื่อ Tableau มาทำ Data Virtualization ให้เห็นภาพมาขึ้นว่าแต่ page แต่ละหมวด มีพฤติกรรมอย่างไร แล้วมีช่วง peak time ในเวลาไหนบ้าง – Hello! Functional Programming – เปิดตัวสมาคมโปรแกรมเมอร์ไทยครับ คั่นเวลาด้วยอาหารเที่ยงกันครับ อิอิ (ถ้าใครติดตาม Instagram ผม จะรู้ว่ามีแต่อาหาร 5555) Session ตอนบ่าย – Test Double Patterns with Python ดูตาม Youtube เลยครับ…
บางครั้งเรามี Query ที่ Join Table เยอะๆ และมีผลลัพธ์มหาศาลประมาณหลายแสนรายการครับ เราอาจจะมีการปรับจูน DB เช่น ทำ Index หรือทำ Query Cache เป็นต้น แต่ในมุมของ Dev เราสามารถปรับโปรแกรมได้เหมือนกัน โดยปรับ Query จากเดิมที่ Join กับหลายๆ Table มา Query ตรงๆที่ละ Table แล้วนำข้อมูลมา Process ใน App แทนครับ
หลังจากที่ได้ไปงาน CodeMania 11 ได้ไปฟัง Session ของพี่รูฟนะครับ ในหัวข้อ ATDD (Acceptance Test Driven Development) ครับ จากแนวคิด Zero Defect ก่อนเข้าเรื่องมาอารัมภบทกันก่อน เกิดจากความเข้าใจของ User, BA, SA และ DEV มีความเข้าใจที่ไม่ตรงกัน Zero Defect มันบอกตรงตัวอยู่แล้วว่า ข้อผิดพลาดทุกอย่างเป็นศูนย์ แล้วมันทำได้อย่างไร ? สำหรับบางที่อาจจะเกิดปัญหาว่า User ไม่เข้าใจกระบวนการพัฒนาระบบ เราอาจจะต้องมีการ Guide ด้วยนะครับ ไม่งั้นความต้องการจะบิดเบี้ยวไปหมด
คำกล่าวแรกสำหรับ 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
เมื่อวานได้ลองขึ้น 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
จริงๆ ผมว่า Blog ตอนนี้ อาจจะไม่เกี่ยวกับ UX UI โดยตรงนะครับ มี screen อันนึง ที่ระบบเดิมมีเจ้าตัว Progress Bar เอาไว้แสดงสถานะการทำงาน ซึ่งระบบมันทำงานประมาน 2-3 ชั่วโมง แต่พอปรับเปลี่ยนระบบใหม่ มีการปรับอัลกอริทึมใหม่ และแก้ตาม Requirement ที่เพิ่มเติมมา ปรากฏว่ามันเร็วขึ้นจนเหลือ 30 วินาที ทาง DEV เลยตัดเจ้าตัว Progress Bar ออกไป มาทางฝั่ง BA /Marketing และ User บ้าง พอตัดออกเสร็จ มองว่าระบบมันไม่มี Process การประมวลผลเลยซะงั้น เซงเลยยย กลายเป็นว่าพอมีปรับแก้อะไรคิดว่าไม่ได้รับผลกระทบ T__T สุดท้ายอยากจะสรุปว่า ถ้าปรับอะไร ควรมองภาพรวมด้วย เหมือนการปรับ UX/UI มันทำให้ feeling ของหน้าจอเปลี่ยนไป จนอาจจะทำให้คนอื่นๆ ที่ไม่ใช้คนทำเข้าใจผิด คิดว่ามันไม่ยากและขอแก้เปลี่ยนโน่นนี่เพิ่ม
ปลายปีที่ผ่านมาครั้ง หลายจากที่รอมาทั้งปี ผมได้ตัดสินใจซื้อ LTF โดยเลือกใช้บริการของธนชาตครับ กองทุน T-LTFD ครับ สาเหตุที่เลือกกองนี้ สำหรับแนวทางการเลือกกองทุน ผมขอไม่อธิบายนะครับ เว็บอื่นๆมีแนะนำเยอะเลย สิ่งที่ผมสนใจ คือ LTF กับการยื่นภาษีมากกว่า เพราะสิ่งที่หลายๆเว็บสอน คือ การเลือกซื้อ แต่ไม่ได้บอกว่า เราจะใช้ลดภาษีได้อย่างไรครับ ผมเคยเจอคนรุ้จักที่พลาดกันมาหลายคนแล้วที่ซื้อ LTF ตอนสิ้นปี แล้ว Key ยื่นภาษีออนไลน์ทันทีครับ สิ่งที่เราต้องรอ เมื่อซื้อ LTF คือ เอกสารยืนยันการซื้อครับ เพราะถ้ายื่นไปก่อน แต่ไม่มีหลักฐานการซื้อ LTF กว่าจะได้เงินภาษีคืนอีกทีนี่รอกันยาวเลยนะครับ