[ATH] BDD with Cucumber มันไม่ง่าย แต่เริ่มได้

หัวข้อ BDD with Cucumber เป็นอีกเรื่องที่แตกมาจาก Blog หลักครับ สรุปงาน Agile Thailand 2016  โดยเรื่องนี้ Speaker คือ คุณ Tanjai ครับ สำหรับตอนนี้ DD เยอะแยะเลย มีทั้ง TDD, ATDD และ BDD เป็นต้นครับ โดยของพวกนี้มีมาเพิ่มตรวจสอบความถูกต้องครับ เจ้า ตัว BDD หรือ Behavior Driven Development มาตรวจสอบความถูกต้องระหว่าง Business Test, Technical Test และ Test Case ตรงกัน หรือไม่? เพิ่มการทำงานร่วมกันของคน 3 กลุ่ม คือ Business Analyst, System Analyst, Programmer และ Quality Assurance ครับ โดยก่อนเริ่มทำ BDD เราต้อง มาเริ่มกันเลย โดยการถามว่า Feature สร้างมาเพิ่มอะไร ทำอย่างไร มี Scenario อย่างไร เพื่อให้ได้ Example ที่เป็น Concrete Example เช่น Facebook มีระบบ Search แต่การ Search มี Scenario เมื่อป้นชื่อเพื่อนระบบ List ชื่อเพื่อนมาให้ อันนี้ คือ Concrete Example สำหรับ Tools ที่ใช้ คือ Cucumber (Java Base) แต่ต้นตำรับขอบตัว BDD เป็นตัว RSpec ของภาษา Ruby ที่ใช้ Cucumber เพราะมันใช้ได้กับเว็บ และตัว Mobile App ครับ เพียงแก้ปรับ…

[ATH] Good Transformation Coach

สำหรับตอนนี้ Good Transformation Coach โดยคุณ อุรณเทพ (พี่กัน) ครับ Blog อันนี้แตกมาจาก สรุปงาน Agile Thailand 2016 ครับ เป็น Session พิเศษครับ ต่อจากหัวข้อ Agile Transformation เพราะห้องอื่นเต็มหมดครับ โดยการเป็น Coach หรือ Manager ที่ดี ต้องมีความสามารถเหล่านี้ แต่มันไม่สามารถอ่านจากหนังสือได้ ต้องสะสมประสบการณ์ เก็บเกี่ยวไปสักพักนึงครับ โดยมีทั้งหมด 10 ข้อ ดังนี้ การเป็น Coach หรือ Manager ที่ดี ต้องมีความสามารถเหล่านี้ 💡They have an uncanny ability to “read a room.” 💡They care about people more than products. 💡They cultivatecuriosity.They know when they don’t know. 💡They believe that people are basically good. 💡They know that plans fall apart, so they act in the moment with the team 💡They have a thirst for learning. 💡They believe that any group of people can do…

[ATH] Installing & Self-Management

Blog ตอนนี้ผมแตกมาจาก สรุปงาน Agile Thailand 2016 ครับ จะได้ไม่อ่านกันยาก บทความได้ไม่ยาวเกินไปและเฉพาะเรื่องด้วย เข้าเรื่องเลยดีกว่าครับ หัวข้อ Installing & Self-Management โดยคุณ Verokas ได้เสนอประเด็นที่ว่าปัจจุบันการทำงานในชีวิตจริง การจัดงานโครงการต่างๆ มันขึ้นอยู่กับ Project Manager คนเดียว ที่มีคนอำนาจสั่งการ จัดการ ตัดสินใจ บางครั้ง ปัญหาบางเรื่องมันคอขวดที่ PM คนเดียวครับ (Centralization) มาเป็นการกระจายอำนาจ การจัดการต่างๆ (Decentralization) ลงไปเป็นลำดับชั้นไปรากหญ้าครับ แล้วรากหญ้า คือ ใคร เป็น Manager, Senior Dev หรือป่าว ? ไม่ใช่ครับ พยายามกระจายให้ลงไปยังรากหญ้าจริงๆ คือ พวก  Junior ทั้งหลายครับ ไม่ว่าเป็น DEV, QA ฯลฯ แต่การกระจายงานลงไปได้ เราต้องทำการ Distributed management skills ครับ ฝึกก่อนครับ People vs Technical❤️ People – บริหารคน กระจายงาน🖥️ Technical – ดูงานด้านเทคนิคแทน ไม่ว่าจะ IT หรือ Business People vs Technical เป็นงานที่ Manager อยู่ครับ หลายคนเห็นว่า Manager ทำงานดึก เดินไป เดินมา แต่ไม่รู้เนื้องานว่าทำอะไร เวลาที่หมดไป หมดไปกับการบริหาร การตามงาน ⏱️Time Management จัดการเวลา จัดการง่ายๆ ลำดับความสำคัญครับ (Prioritization) ⛔Say no offer alternatives 🚞Goal Setting (Concept ดูคล้ายกับ TDD นะ) 🚩Solve problem…

[ATH] Agile Transformation

สำหรับตอนนี้ Agile Transformation โดยคุณ อุรณเทพ (พี่กัน) ครับ Blog อันนี้แตกมาจาก สรุปงาน Agile Thailand 2016 ครับ การเปลี่ยนองค์การ หรือบริษัทให้มาใช้ Agile เราใช้ Agile ได้สิ่งที่เราต้องรู้ คือ ถ้านำ Agile มาใช้ เราต้องรู้จักคนก่อน โดยใช้เมตริกซ์ DISC มาดูที่แกนต่างๆกันก่อน ตอนบรรยายพี่กันให้ทุกคนคิดว่าตัวเองเป็นแบบไหน และเลือกฝั่งครับ แบ่งคนเป็นกลุ่ม 4 กลุ่ม ดังนี้ครับ Type Key Desription Remark D(Dominant) What Active-Questioning ตั้งคำถามเยอะ ตัดสินใจเร็ว (Get it Done.) I (Inspiring) Who Active-Accepting เข้าอก เข้าใจผู้อื่น ผู้นำกิจกรรม (Get Heard) S (Supportive) How Accepting-Thoughtful สาย support ช่วยช่วยเหลือแนะนำผู้อื่น (Get along go with the flow) ปรับเข้าทาง Agile ได้ง่ายสุด C (Cautious) Why Thoughtful-Questioning ทำไมถึงต้องทำ ต้องรู้ก่อนเหตุผลที่ทำ (Get it right) ปรับเข้าทาง Agile ได้ยาก Agile Disc Model เมตริกซ์ เป็นเพียงแค่ตัวคัดกรองเฉยๆครับ ไม่ใช่ว่าคนในกลุ่ม C (Cautious) -WHY? เอามาเข้า Agile ยากเสมอครับ มันซอยย่อยๆลงไป บางคนเค้าสงสัย เพราะ อาจจะคิดว่าทำไมถึงควรทำ ถ้าได้เหตุผลที่ดี เค้าสามารถปรับใช้เข้ากับ Agile ได้ครับ…

[ATH] CMMI – Waterfall – Agile – Scrum

Blog นี้ ผมแตกประเด็นมาจาก สรุปงาน Agile Thailand 2016 โดยในตอนนี้ ผมขอรวม Slot 2 อัน ในช่วงเช้า เข้าด้วยกันเลยครับ โดยมีของ รู้กันก่อนคำศัพท์ แต่ละคำ คือ อะไร ? ก่อนที่เราเข้าประเด็นกัน สิ่งที่เราต้องรู้กันก่อนคำศัพท์ แต่ละคำ คือ อะไร ครับ 📣 CMMI (Capability  Maturity  Model  Integration) CMMI คือ มาตรฐานที่เอาไว้บอกถึงความเชื่่อมั่น และคุุณภาพของกระบวนการพัฒนา Software ทำให้เป็นระบบ และยืดหยุ่นต่อการปรับเปลี่ยนได้ ตัว CMMI มี 5 Level (เอาคร่าวๆ ก่อนนะครับ จริง CMMI มันมีแผนผัง อารมณ์เดียวกับ Skill Tree ใน Game ครับ) Process Area สำหรับ CMMI ในแต่ละ Level สำหรับองค์กรที่เอา CMMI มาใช้ จะมีหน่วยงานโผล่เข้ามา อีก 2 หน่วยครับ 📣Waterfall รูปแบบการพัฒนาระบบ โดยทำที่ละขั้นตอนให้เสร็จก่อน ถึงไปงานชิ้นถัดไปได้ 📣Agile Agile – มันเป็น Abstract Class มีรูปแบบหลักการทำงานมาให้และ ตาม manifesto  มี 4 ข้อ ได้แก่ 📣Scrum Scrum – มันเป็น Implementation ของ Agile เป็น Framework รูปแบบการทำงานที่ตอบรับกับ Consept ของ Agile ครับ พอรู้ความหลายของแต่ละคำแล้ว ผมมาจับประเด็น แต่ละอันครับ 🚩…

[.Net] เซมารู ช๊อกกา เอา Java มาเขียน DOT NET กัน Go! Go! Let’s Go! Rider

จริงๆน่าจะมีหลายๆคน Review แล้วมั้ง สำหรับผมอยากลองของใหม่ๆ เพราะกำลังเขียน Blog ตอนใหม่ที่ต้องใช้ C# อยู่ครับ ผมเลย ลง Rider  ซะเลย พอได้ยินชื่อทำไมนึกถึง คาเมนไรเดอร์ ไม่รู้ 5555 Semaru Shocker!! Akuma no gundan ….. Go! Go! Let’s Go! IntelliJ Rider สำหรับตัว Rider เป็น IDE ที่พัฒนาโดย jetbrains ครับ หลายคนอาจจะไม่รู้จักกัน แต่ถ้าพุดถึง IDE IntelliJ ของฝั่ง Java ที่ทำให้หลายคนลบ Eclipse ทิ้ง และส่วนเสริม MS Visual Studio อย่าง ReSharper ที่ทำให้ Visual Studio ที่ดูโง่ๆ มันฉลาดขึ้นครับ มี Background ที่ดีขนาดนี้แล้ว รออะไรกัน Download มาทดลองโลดครับ ปล.มันเป็น version early build พูดง่าย คือ ให้เราเป็นหนูทดลอง ฮ่าๆ ขั้นตอนการลงกด Next ไปเลยครับ ผมมี Capture หน้าจอไว้ ยกเว้นหน้า Finish มือไวไปนิดครับ สังเกตุที่รูปนะครับ ตอนลงไฟล์ .jar มาอื้อเลย เมื่อเปิดมาครั้งแรก มันดูฉลาดกว่า Visual Studio มีการนำเข้า Setting ของ Rider รุ่นเก่าได้ (ตอนนี้ผมใช้ Visual Studio 2013 ครับ รอจบ Project Treasury ค่อยเปลี่ยน) ต่อไปการกำหนด Style, การกำหนด key ลัด หรือการ Report Issue กรณีที่มี…

ลาจากกับบัตร Debit แถบแม่เหล็กที่ใช้มา 9 ปี

ช่วงที่ผ่านมาทุกคนคงได้เห็นข่าวที่ว่า ธนาคารแห่งประเทศไทยบังคับให้ทุกๆธนาคาร เปลี่ยนบัตรจากบัตรแถบแม่เหล็กไปเป็นบัตรชิปแทนครับ เพื่อป้องกันจากการถูก skimming ครับ เจ้าตัว skimming คือ การฉกข้อมูลบัตรแถบแม่เหล็กครับ โดยฉกจากตู้ ATM เพราะ ตั้งกระจาย และมีุดอับที่สามารถแอบติดตั้ง Tools ที่ฉกข้อมูลได้ง่ายสุดครับ โดยการ skimming มี 2 Step ครับ ฉกข้อมูลในบัตร โดยดึงมาบัตรแถบแม่เหล็ก เพื่อนำไปทำบัตรปลอม ฉกข้อมูลรหัสผ่าน โดยติดกล้องในตู้ ATM เพื่อเก็บรหัสผ่านไปใช้กับบัตรปลอมครับ ในไทยมีตัวอย่างเหมือนกันนะครับ ขอบคุณข้อมูลจาก Pantip ครับ สำหรับช่วงนี้ คงไม่มีธนาคารไหนให้บัตรแถบแม่เหล็กมาแล้วครับ ช่วงนี้คงเป็นช่วง Parallel Phrase จนถึงสิ้นปี พ.ศ. 2562 บัตรแถบแม่เหล็กจะใช้งานไม่ได้อีกต่อไปครับ แล้วที่นี้บัตรชิป มีสิ่งที่เราควรรู้อะไรบ้าง บัตร ATM ไม่มีอีกแล้ว เป็นบัตร Debit แทนครับ เพราะบัตรชิป รองรับระบบบัตร Debit ได้ในตัวเลยครับ โดยเจ้าชิป EMV เกิดมาจาก Europay, Master Card และ VISA ที่ร่วมกันแก้ปัญหาของบัตรแถบแม่เหล็กป้องกันการแอบขโมยข้อมูลในบัตรครับ เมื่อมันเกิดจากผู้ให้บริการ ชิป EMV  จึงสามารถลิงค์กับผู้ให้บริการได้เลยครับ สำหรับใครที่อยากให้บัตรมีเฉพาะ Feature ATM สามารถแจ้งพนักงานได้นะครับ บัตรชิป ใช้เวลาในการทำงานนานขึ้นสักนิด สำหรับเครื่องรุ่นเก่าๆ แต่จริงๆ ถ้าตัดพวกโฆษณาไปน่าจะทำงานเร็วขึ้นครับ โดยเฉพาะตู้ Kbank ต้องรอ Video Ads ที่เล่นอยู่ แถมกระตุก ให้จบก่อน ถึงทำงานต่อได้ครับ รหัสผ่านเพิ่มขึ้นจาก 4 ตัว เป็น 6 ตัว หลายคนอาจจะงงๆ ตอนใช้งานได้ครับ ต้องใช้เวลาปรับตัวครับ เกริ่นที่มาซะยาวเลย มาดูกันดีกว่าว่า แต่ละธนาคารมีกำหนดการรับเปลี่ยนบัตร และมีค่าใช้จ่ายอย่างไร มาดูบัตรแม่เหล็กที่ใช้มา 9 ปีของ SCB ดีกว่า ผมว่าลายมันสวยมากๆครับ ใช้มานานตั้งแต่…

[WordPress] ReferenceError: jQuery is not defined

ตอนแรกผมไม่ได้สังเกตุอะไรนัก แต่หลังๆที่ web มันช้า และเปลี่ยนตัว SEO แล้ว มันยังหน่วงๆอยู่ ผมเลยตัดสินใจใช้ตัว Tools ใน Google Chrome ดูอย่าง Developer Tools ไปที่หน้า Console พบว่า ผมเล็งโจรไปแล้วอันนึง Download Manager คราวก่อน ทำเว็บบึ้มไปรอบนึง สำหรับ Step การแก้ปัญหาของผม แต่ผมขอสรุป Step ที่ถูกต้องดีกว่าครับ

การสั่งจองหนังสือที่ร้านคิโนะคุนิยะ

มาเขียนสรุปไว้ก่อน พอดีหาหนังสือเป็นของขวัญรับปริญญาให้รุ่นน้องที่สนิทกันครับ เรื่อง Your Code as Crime Scene แล้วปรากฏว่าโดนใครสักคนซื้อตัดหน้าไปครับ ผมเลยสั่งจองที่เคาน์เตอร์ เดี๋ยวขอสรุปขั้นตอนไว้ดีกว่า ตอนรับของ วันนี้พอไปรับหนังสือเสร็จ เลยซื้อมาเพิ่มอีกเล่มแทนครับ Software Engineering ของ อ น้ำฝน อัศวเมฆิน ครับ และมีหนังสือที่น่าสนใจอีกหลายเล่มครับ รอเงิน และดูงานที่ทำก่อนครับ ถ้ามีเอี๋ยวๆ จะได้ซื้อมาอ่านก่อน แวะไปดู Co-working Space “Discovery HUBBA” ที่ Siam Discovery ด้วย เผื่ออยากมาดูวิวครับ เท่าที่ส่องๆ วิวสวยๆ ทั้งนั้น

[SQL] เมื่อ JOIN ผสมกับ CASE WHEN

วันนี้ระหว่างทำ DS_FTA ลองอ่าน ฺBOT Manual และก็เริ่มลงมือ Query ดึงข้อมูลเลยครับ พอมีข้อมูลแล้วมีกำลังใจเขียน Code ต่อครับ ไม่งั้นมืดมน เพราะ User เองก็ไม่รู้ว่าต้องส่งอะไรให้ BOT แต่พอเขียน Query ไปได้สัก 80% ช่วงประมาณ 4 โมงเย็น อยู่ๆ มี Idea ทำไมเราไม่ลองใช้ CASE WHEN ในการเขียน JOIN Table หละ ถ้ามันทำได้นี่ มันทำให้เราพลิกแพลงได้เยอะมากครับ ขั้นแรก มาลองหาข้อมูลกันก่อนว่ามีชาวบ้านเค้าทำไหม ? ปรากฏว่ามีด้วยแหละ เท่าที่ดูเป็นของ MS SQL Server ที่มี และเท่าที่ดู Syntax มันไม่ได้มีคำสั่งเฉพาะตัวนะ เอาหละ พร้อมจะลุยกันดีกว่า โดยสิ่งที่ผมทำ เป็นลักษณะ ดังนี้ครับ มาลองดูโจทย์ในการทำงานจริงของผมดีกว่า (แต่ปรับย่อมาลงมาครับ) ผมมีโจทย์อยู่ว่า หา Leg Type กับ Transaction ที่มีในระบบครับ Code Value Description 182001 Buy Foreign Currency นิติบุคคลรับอนุญาตซื้อเงินตราต่างประเทศแลกกับสกุลเงินบาท 182002 Sell Foreign Currency นิติบุคคลรับอนุญาตขายเงินตราต่างประเทศแลกกับสกุลเงินบาท 182003 Cross Currency การซื้อขายระหว่างเงินตราต่างประเทศ 2 สกุล Portfolio Code Transaction Type FI Arrangement Number Exchange Rate Commodity Currency Commodity Amount Quote Currency Quote Amount PING-RISK-MG BUY SO52-20160703 35.5328…