Not-Invented-Here Syndrome

Not-Invented-Here Syndrome

Not-Invented-Here Syndrome หลายคนอาจจะงง ว่า Blog นี้มันสาย IT นี่หว่า แต่แล้วทำไมมาเขียนแนวคุณหมอซะหละ สำหรับเจ้า Not-Invented-Here Syndrome หรือ NIT Syndrome คือ การยึดติดกับสิ่งเดิม ระบบความเชื่อความคิดของตนเองเป็นหลัก มักจะพบในหน่วยงาน หรือองค์กรที่มีอายุยาวนาน และประสบความสำเร็จมากมายครับ ซึ่งเจ้าตัว Not-Invented-Here Syndrome มันเป็นตัวขัดขวางสิ่งที่เรียกว่า นวัตกรรม หรือ Innovation นั้นเองครับ โดยเจ้า NIT Syndrome มีส่วนที่ต่างๆ ที่บ่งบอกว่า หน่วยงาน หรือองค์กร กำลังจะเป็น ดังนี้ครับ แต่เจ้า NIT Syndrome มันก็ไม่ได้ร้ายเสมอไปนะครับ บางครับมันมีเหตุผลที่จำเป็นเหมือนกันนะครับ เช่น โมดูลนี้มันเป็น Core Business ถ้าไปหา Library มาใช้ก็ได้ แค่มันไม่ยืดหยุ่น หากมี Change เป็นต้น เขียนไปเขียนมา ก็โยงเข้าเรื่องทาง IT ได้เนอะ 55555  สำหรับการแก้ปัญหา NIT Syndrome ไม่ยาก แต่ต้องเปิดใจ พร้อมที่จะเรียนรู้ และคำนึงถึงความสมเหตุสมผลที่เลือกใช้ครับ และสร้างนวัตกรรมใหม่ๆขึ้นมาครับ และใครที่อยากอ่านเพิ่มเติมลองไปดูในตาม Reference ที่ผมได้แนบมาด้วยครับ Reference

[CR] ลอง Jeffer Steak ชุด Extra 199 บาทครับ

Jeffer Steak เป็นร้านสเต็กสัญชาติไทย ราคาย่อมเยาว์คับ สามารถจัดราคาได้ตามที่พุงต้องการ 555 หลังจาก Coding กับเขียน Blog เสร็จ ผมก็มาใช่สิทธิลดหย่อนภาษีจากการกิน กินช่วยขาติ ไม่ใช่ไปโกงกินนะครับ แต่เป็นการกินในช่วงวันหยุดยาวสงกรานต์ 9-17 เมษายน 2559 ครับ สำหรับวันนี้เมนูที่ลองเป็นชุด 199 เลือก Steak ได้ 2 ชิ้น ชิ้นแรกเป็น Pork Shop ถัดมาเป็นสเต๊กไก่ Jeffer สีน่าทานช่ายไหมม และก็ Topping ผมได้เลือกเป็นแบบ Extra เอามันอบแทน ดูดีกว่าข้าวผัด Jeffer กับ เฟรนฟราย มากครับ เอามันอบทานคู่กับซอสพริกไทยดำ เข้ากันได้ดี และรูปที่เหลือเป็นองค์ประกอบอื่นๆในจานครับ 😀 ท้ายที่สุด ร้านไม่มี Service Charge ครับ ดีเวอร์ เป๊ะปังสุดๆ

ไปบริจาคเลือดครั้งแรก

วันนี้วันดี 12 เมษา เลยตัดสินใจใช้วันลาที่สะสมแแต้มไว้เยอะถึงเกือบ 50 วัน 555 โดยแพลนวันนี้ คือ นั่งรถเมล์ชมวิวไปเล่นๆ โดยมีปลายทางอยู่ที่ ศูนย์บริการโลหิตแห่งชาติ สภากาชาดไทย ถนนอังรีดูนังต์ ครับ มาบริจาคเลือดครั้งแรก หลังจากหาวันหยุดยาวได้พอดี (เผื่อเวลาพักผ่อนยาวววว ถ้าไหวก็มาทำตัวระบบ BOT DMS ต่อครับ) หลังจากลง 177 เดินตาม Google Map มาเรื่อยๆ ประมาณ 15 นาทีครับ พอเดินเข้ามาถึง ก็มีโครงการแจกเสื้อเลย คุ้มๆ 5555 ไม่คิดว่าจะได้ ตอนแรกเดินมาก็งงๆครับ โดยตอนนีมีเจ้าหน้าที่แนะนำครับ โดยขั้นตอนหลังๆ อยู่ที่ป่ายนี้ครับ STEP 1: ไปลงทะเบียน กรอกเอกสาร วัดความดันจากเครื่องวัดความดันอัตโนมัติแบบสอดแขนครับ STEP 2: ส่งเอกสารให้แผนทะเบียน Key ข้อมูลเข้าระบบ STEP 3: เป็นการตรวจเลือดคร่าวๆ ซักถามประวัตินิดหน่อยก็โดนเจาะครับ โดยคุณหมอ ได้แนะนำคร่าวๆ ดังนี้ นอนให้ได้เยอะที่สุด และปกติ ไม่ควรนอนหลังเที่ยงคืนครับ พยายามไม่กินของมันๆ ก่อนบริจาค เป็นไปได้คราวดื่มน้ำเยอะๆครับ เพราะ เราเสียเลือดไปเยอะครับ และป้องอาการวิงเวียน และช็อคครับ ถ้ามีพฤิตกรรมเสี่ยง ห้ามบริจาคนะครับ ในใบลงทะเบียนจะมีแบบสอบถามอยู่ครับ อ๋อ และก็จะได้ยาบำรุง เพิ่มธาตุเหล็กด้วยครับ และก็ ถ้ามาครั้งแรกอาจจะมีการตรวจ Group เลือด นิดๆหน่อยๆครับ STEP 4-5: เจาะเลือดแล้วครับบบบบ (มี 2 ห้องครับ แล้วแต่ดวงครับ) ถ้าไปคิวแขนซ้ายจะเร็วกว่าครับ ฮ่าๆ จากนั้นโดนเจาะดูดเลือดไปครับ โดยวันนี้เสียเลือดไป 450 ซีซี ครับ STEP 6: หลังจากเสียเลือดไปเยอะ เรามาฟื้นพลังด้วยของกินกันครับ STEP 7: รับของที่ระลึกครับ เข้าใจว่าได้ตามจำนวนครั้งที่บริจาคครับ STEP…

บัญชี FCD คือ อะไร

พอดีลองทำโปรแกรม BOT DMS  แล้วเห็นข้อมูลตัวอย่างที่ลูกค้าส่งมาให้ เลยลองหาข้อมูลเล่นๆ ดูว่า เจ้าบัญชี FCD คือ อะไร โดยบัญชี FCD ย่อมาจาก Foreign Currency Deposit โดยมีจุดประสงค์ เพื่อลดการผันผวนของค่าเงิน เช่น หลายคนอาจจะงงนะครับว่าบัญชี FCD มันลดการผันผวนของค่าเงินได้อย่างไร ลองดัวอย่างดีกว่าครับ เช่น แต่หลายคนอย่าคิดจะเอาบัญชี FCD มาเก็งกำไรค่าเงินนะครับ เพราะ อ้าว!!! แล้วถ้าไม่อยากเปิดบัญชี FCD ดองไว้ เราสามารถใช้ Product ทางการเงินอื่นๆช่วยลดการผันผวนของค่าเงินได้ไหม คำตอบ คือ มืนะครับ อาทิ เช่น สำหรับแต่ละตัว มีความแตกต่างกันอย่างไร เดี๋ยวผมเขียน Blog อธิบายเรื่อยๆครับ    

ความแตกต่างของ Unit Test และ Integration Test

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 บาทนี่ไปทำอย่างอื่นหละ ฝากออมทรัพย์ เอามาจากเว็บนี้นะครับ ฝากประจำ 36 เดือน มองเฉพาะเงินงวดแรกที่ไปฝากประจำนะครับ โดยผมใช้เว็บของ ME by TMB ในการคิด ลองกองทุนตราสารหนี้ อันนี้ผมลงทุนกองทุน T-TSB ของ TFUND ใช้ข้อมูลจาก WealthMagik นะครับ โดยใช้ Feature Simport รู้สึกกำไรน้อย 5555 ลองกองทุนหุ้น อันนี้ผมลงทุนกองทุน KTSE ของ KTAM ใช้ข้อมูลจาก WealthMagik นะครับ โดยใช้ Feature Simport นะครับ แต่อาจจะต้องมีคิดเพิ่มบางส่วนนะครับ เพราะตัวเว็บไม่ได้ตอบโจทย์ของ Blog ตอนนี้ เงิน 3,000 บาทได้หน่วยลงทุนจำนวน 183.5513 หน่วย ราคาหน่วยละ 16.3442 บาท ได้ปันผล (688.31) 12/04/2556 หน่วยละ 2 บาท ได้เงิน 367.10 บาท 11/09/2557  หน่วยละ 1 บาท…

Code Mania 11: Raise the Bar

เมื่อวันเสาร์ที่แล้ว ผมได้ไปงาน 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 เลยครับ…

[MySQL] การจัดการเมื่อต้อง 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 ด้วยนะครับ ไม่งั้นความต้องการจะบิดเบี้ยวไปหมด