Introducing Event Storming

ช่วงนี้หัวหน้าให้ผมดูแลน้องๆ สรุปบทความจาก MSDN Magazine ผมมองเป็นของดีที่น่าจะไม่ค่อยมีคนอ่านมากนักนะครับ หัวจากช่วยหัวข้อน้องไป ไปสะดุดกับ Blog ที่มีการอ้างอิงจากบทความครับ เรื่อง “Introducing Event Storming” เลยนำมาสรุปไว้นะครับ What is Event Storming Event Storming เป็นกิจกรรมที่ให้เราช่วยสำรวจสิ่งที่เราสนใจ หรือขอบเขต(Domain) ของธุรกิจที่ซับซ้อนออกมาครับ เน้นคำว่า “Visualize everything” ทำให้เห็นภาพ และ “Outside-in” Event Storming is good Powerful – นำคนที่เกี่ยวข้องมาร่วมกันสร้าง Business Flow ให้เห็นภายรวม ภายในเวลาอันสั้น Engaging – ตรงเป้าหมาย เพราะ Idea ต่างๆ นำไปสู่การพูดคุย และมีการแชร์คำตอบกัน เพื่อสร้าง Model ออกมา Efficient – มีประสิทธิภาพ ผลลัพธ์ที่ได้ เข้ากับการพัฒนาแบบ Domain Driven Design (เหมาะกับ Event Sourcing Approach) และหา Context และ Aggregate Boundaries ได้รวดเร็ว Easy – รูปแบบมันง่าย ไม่ซับซ้อน ทำให้คนที่ไม่เข้าใจเรื่อง Technical ไม่ต้องกังวล และแสดง Idea ออกมาได้เต็มที่ Fun How does it work Invite the right people – ดึงคนที่ใช่ คนที่ใช่ คือ ใคร ? สำหรับผมมองว่าเป็นคนที่เกี่ยวข้องกับสิ่งที่เราสนใจ โดยผสมกันระหว่าง คนที่มี Idea หรือ คำถาม /…

Refactoring for Y

วันนี้เป็นวันที่เดินทางมาไกลมากกก จากสายใต้ใหม่สู่ Geeky Base (ออกตั้งแต่ 07:00 โมง มาถึงประมาณ 08:40 ครับ) มารู้จักกับคำว่า “Refactor” มาขึ้นครับ โดยคุณ J Prayoch Rujira ก่อนที่เริ่มให้แต่ละคนทำการ มาที่สรุปมีหัวข้อ ดังนี้ เมื่อพูดถึงการสร้าง Software เราคงเคยเจออะไรแบบนี้ Later is never !!!!! ที่หลังมันไม่มีจริง คนทำลืม หรือ ออกไปทำงานที่อื่นแล้ว Code ที่เขียน Support Change !!! ได้แค่ไหนหรือสะสม Technical Dedt อยู่ Refactoring คือ อะไร ? ทำให้ Code ดีขึ้นได้อย่างไร Source Code is a Communication Tools ใน Agile มี Technical Excellent เข้ามาช่วง ดังนี้ Let’s Refactoring เริ่มต้นด้วย RECAP Basic Principle – OOP ในช่วงนี้เล่นเกม 5s number game ในไทย 5ส  เกมหาตัวเลข 1-49 แบบเรียงกัน สรุปได้ ดังนี้ Code Smell – Code ที่อ่านไม่รู้เรื่อง นึกถึง ห้องน้ำ เหม็น อยู่ไปจะชิน เหมือนกัน Code เนี่ยแหละ อยู่กับ Code เน่าๆจนชิน) living with code smell มารู้กันว่า Code Smell แบบไหนบ้างที่พอเจอบ่อยๆ Refactoring ปิดท้าย…

สายโลหิต ฉบับ Developer

เรื่่องมันเกิดจาก Line กลุ่ม Treasury คุยไปคุยมาได้เพลงเลย เก็บไว้ดีกว่า ฮ่าๆ ข้าคือชายชาญชาติ Dev วิญญาณแห่งนัก Bug ไทย ศึกนี้หรือศึกไหนหัวใจไม่เคยหวั่นเกรง และความรักข้า ก็คือ ดวงใจเจ้า Code นี้เอง ใครหาญมาตี Change (Requirement) ข้าเองจะหยุดมัน ออก Code ข้านึกแต่ Bug และ Change จบศึกข้าเสียวแต่ Change เท่านั้น หากรอดชีวิตกลับมาหากัน หวังให้เจ้านั้นดูแล Code ต่อ ชีพพลี เพื่อ KPI (ของ User) ชีวาต้องมามลาย ยังขอป้องปกไว้ ด้วยคีย์บอร์ดของเรา  

เมื่อ Column Index ใช้กับ MS SQL Server ไม่ได้ !!!

Microsoft SQL Server

หลังจากทีเขียน Code กับ Product ที่ใช้กับตัว DB2 มานาน คราวนี้มีโอกาสได้ย้ายบ้าน จริงไม่เชิงย้ายหรอกครับ แค่เอา Product ตัวเดิม จากที่มันใช้ได้กับ DB2 ไปใช้กับ MS SQL Server ให้ได้ครับ พอให้น้องที่ทำงานมาลองทำ POC ดู อ้าว Error Table มันมี Column ที่ชื่อว่า Index แล้วทางแก้หละ จะทำ view ครอบหลอกก็ไม่ได้และ มีทั้ง สิ่งที่ผมทำ มีดังนี้ครับ ที่ผมทำแบบนี้ เพราะ ต้องการใช้ตัว Code ของที่ใช้กับ Database DB2 และ MS SQL Server เป็น Code ชุดเดียวกันครับ

R vs Python are well-matched ?

วันก่อนผมได้คุยกับหัวหน้าถึงงานที่จะให้น้องฝึกงานทำเกี่ยวกับ Recommendation System ครับ ไล่จาก Weka มาเรื่อยๆ จนมาถึงภาษา R กับ Python มันใช่มวยที่ถูกคู่ในการเปรียบเทียบ หรือป่าว ? เลยมาสรุปแปะไว้ดีกว่าครับ เพราะคนส่วนใหญ่ชอบดูเปรียบ 2 ตัวนี้ในการเลือกสายการทำงาน A Few day ago. I discussed with my boss about trainee project’s “The Recommendation System”.Weka .. so many R vs Python are well-matched. After This I summaries it on my blog, because of many people compare R and Python for work purpose. อันนี้เป็นหนึ่งใน Inforgraphic ที่ผมหา และนำเสนอหัวหน้าครับ แต่หลังจากคุยกับหัวหน้า ได้มองที่มาของ 2 ภาษานะครับ มันมีต้นกำเนิดที่แตกต่างกันเลย R เกิดมาเพื่อทำงานด้านสถิติ การคำนวณ ซึ่งคู่แข่งมันตรงๆน่าจะเป็น MATLAB, Sage หรือ SPSS มากกว่า R born to be a Mathematics & Statistics. It seems to be a competitor to MATLAB, Sage or SPSS Python คู่ชกมันควรจะเป็น Ruby กับ…

บันทึกการสอบสัมภาษณ์เข้าสอบ ป.โท สาขาวิศวกรรมซอฟต์แวร์จุฬาฯ

หลังจาก Blog ตอนที่แล้ว วันที 7 พ.ย. 2559 มีเมล์มาแจ้งนะว่ามีสิทธิสอบสัมภาษณ์ในวันที่ 14 พ.ย. 2559 นะ ในวันสัมภาษณ์เนื่องจากบ้านไกลมาตั้งแต่ 7.45 เลยมาเปิดห้อง 55555 กว่าจะได้สัมภาษณ์จริงๆสำหรับแผน ข ประมาณ 10.45 สำหรับการสัมภาษณ์ เข้าไปเสร็จมีอาจารย์ 3 ท่านครับเป็นผู้สัมภาษณ์เราครับ แนะนำตัวสั้นๆ ถามเกี่ยวกับงานที่ทำ เคยเปลี่ยนงานอะไรไหม ทำไมถึงอยากเรียน เรียนแล้วจะเอาไปทำอะไร ดูหลักสูตรมาไหม บอกด้วยว่าจะจบได้โครงการต้องมีการตีพิมพ์นะ แม้ว่าจะเป็น แผน ข ก็ตามครับ สำหรับผมรู้สึกว่าการสัมภาษณ์ไปเร็วไปมากเลย ประมาณ 10 กว่านาที ไปสัมภาษณ์งานนานกว่านี้มากครับ ต่อไปก็ลุ้นว่าได้เรียน หรือป่าว ถ้าได้ก็ดีครับ เพราะ ที่ทราบมาปกติสาขานี้ไม่เปิดรับเทอม 2 นะ แต่ปีนี้มาแปลกมีเปิดเทอม 2 ด้วย

[CodeMania100] Token based authentication ทำไปทำไม

ฺสำหรับ Blog นี้ เป็นหัวข้อที่สนใจอยู่พอดีครับ เพราะ กำลังทำระบบใหม่เป็นตัวเลือกที่น่าสนใจครับ ผมเลยแตกมาเป็นอีก Blog ครับ จาก Blog หลัก “สรุปงาน CodeMania – Coding Defines Anything” ครับ เข้าเรื่องเลยดีกว่าครับ หมายเหตุ : ผมมีสรุปข้อมูลเพิ่มไปบางส่วนด้วย เผื่อกลับมาอ่านเองย้อนหลังครับ Old way หากย้อนไประบบแบบเก่าจะเป็น Cookie based Authentication ดังรูป แต่ปัญหาของ  Cookie based Authentication ก็มีเหมือนกัน คือ Token-based authentication Token based คือ อะไร สิ่งทีใช้แทน Username และ Password ถ้าอยากได้ต้องเอา Username และ Password ไปแลกมาครับ ดูตามรูปที่ผมได้หามาเพิ่มได้เลยครับ ตัวอย่าง ที่ใกล้ตัวเราที่สุด ลองนึกถึงการตรวจคนเข้าเมืองครับ ถ้าเราออกนอกประเทศ เราต้อง Passport เป็นบัตรผ่านครับ ถ้าไม่มีต้องเอาบัตรประชาชนเอกสารต่างๆ ไปยื่นกรมการกงสุล ครับ ทำไมต้องใช้ Token based authentication JSON Web Token (JWT)  ? ข้อควรระวัง !!! Reference

[CodeMania100] Emergent Design with Code

Blog  นี้สรุปมาจาก CodeMania 100 : Coding Defines Anything ลองดูแล้วมันน่าจะแยอะ เขียนแยกง่ายกว่า สำหรับเรื่องนี้เป็นเรื่อง Coding Defines Reality – Emergent Design with Code  โดยคุณ Varokas Panusuwan เข้าเรื่องเลยดีกว่า หมายเหตุ: สรุปตามความเข้าใจของผม และอาจจะมีอารมณ์ร่วมแถม 5555 ย้อนไปถึงการ Design ในการพัฒนา Software ถ้าไม่ลืมจากที่เรียนไปมันมีเรื่อง SDLC (Software Development Life Cycle) มันมีขั้นตอน ตั้งแต่ Requirement > Design > Implementation > Testing > Deployment > Maintance ครับ มามองทุกจุดๆนึง Design เราออกแบบจากอะไร จากการมโน หรือจาก เมื่อมองถึงการ Design ระบบที่ดีต้องการอะไรบ้าง จากอันที่แล้ว ถ้าถาม User ส่วนมากมักจะบอกว่าเอาหมด !!! แต่ความจริงมันไม่เป็นอย่างงั้น ทุกอย่างมี Trade off อยากให้ระบบ Performance ดี แต่มันอาจจะ Maintainable ยากกกก ให้มองถึงระบบ Stat ใน Game ไม่มีอะไรที่เก่งไปหมดทุกด้านครับ เราต้องเน้นเร็ว AGI สูง ค่า VIT ต้องลดลง Design is very easy, Knowing what you want is very hard !!!  Design with force ลองคิดกันต่อ Cassandra เป็น  key/value database เอามาทำงานของ RDBMS…

[CodeMania100] สรุปงาน Codemania – Coding Defines Anything

Coding Defines Anything งานนี้เป็นครั้งที่ 4 แล้ว โดยจัดที่หอประชุมคณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ครับ สำหรับผมที่มา เพราะ หัวข้อ Keynote ครับ พอดีมีปัญหากับเรื่อง Design อยู่ โดยในงานหัวข้อที่ผมได้ฟัง มีดังนี้ครับ (ถ้าเรื่องไหนมันใหญ่ไป ผมจะแยกไปอีก Blog นะครับ) ช่วงเช้า Key Note: ผมสรุป Blog ไว้ครับ Coding Defines Reality – Emergent Design with Code (Speaker: Varokas Panusuwan)Flash talk: ช่วงบ่าย – Coding Defines Innovation “The power of Hackathon” (Speaker: Theeraphol Wattanavekin) Hackathon -> มาจาก Hack + Marathon Hackathon คืออะไร Hackathon เป็นอะไรก็ได้ ไม่จำเป็นต้อง Coding เช่น งานของ Google Translate เอานักแปลมาช่วยกันแปล สร้างข้อมูลที่ถูกต้อง Loss or Win.. It doesn’t matter เพราะ อย่างน้อยคุณได้เรียนรู้ คำแนะนำสำหรับคนทีอยากไป ตัวอย่างงาน Hackathon ทำเพื่อสังคมชุมชน Data Driven city – youpin – ส่วนตัว คือ ผมเพิ่งรู้นะว่ามีโครงการแบบนี้ เพราะ ปกติเวลาเจออะไร ผมมักจะทวิตไปให้ js100 หรือไม่ก็ส่งเข้า Fan Page ของแต่ละสำนักงานเขตครับ มาลองใช้กันดูครับ Resource: Slide()…

VMware Workstation and Hyper-V are not compatible.

พอดีต้องกลับมาใช้ VM กลับมาทำตัว BOT DataSet ต่อครับ เลยต้องมาใช้ VMware อันเก่าก่อนครับ คราวนี้แหละ ปัญหาจากการลง Hyper-V เพื่อเตรียมลอง Docker (สงสัยได้แค่ลอง เพราะ ตัว Hyper V กับ VM มันอยู่ร่วมโลกกันไม่ได้ T__T) ก็เกิดขึ้นตาม Message ดังนี้ครับ “VMware Workstation and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Workstation” หลังจากหาข้อมูล ผมเลยมาเขียน blog ดีกว่า ว่าทำยังไงให้ Hyper-V role ถูกปิดไป แทนที่จะต้องเอา Hyper-V ออก เท่าที่ดูหลายๆเว็บจะแนะนำให้เอา Hyper-V ออกครับ แต่ผมว่า Disable ดีกว่าครับ Disable Hyper-V เปิด command line โดย Run as Administrator จากนั้นพิมพ์คำสั่ง ดังนี้ bcdedit /set hypervisorlaunchtype off Restart เครื่องครับ Enable Hyper-V เปิด command line โดย Run as Administrator จากนั้นพิมพ์คำสั่ง ดังนี้ bcdedit /set hypervisorlaunchtype auto Restart เครื่องครับ References BCDEdit BCDEdit FAQ’s BCDEdit…