[JS6] มาลองเล่น ECMAScript 6

หลังจาก Blog ตอนก่อน ก้าวเข้าสู่โลกของ Frontend เริ่มเล่น Nodejs ลงเพื่อให้ได้ตัว NPM มานะครับ คราวนี้ผมลองศึกษาตัว ECMAScript 6 โดยดูจาก GitHub ECMAScript 6 Tutorial ใส่ตัวอย่างจาก Git เข้ายก Mortgage Calculator ที่มี amortization และเราลองทำตามขั้นตอนที่ผู้เขียนแนะนำครับ ECMAScript 6 คือ JavaScript แหละ ที่ปรับเปลี่ยนให้ตามยุคสมัยมากขึ้น – Use Strict อันนี้มีมาตั้งแต่ ECMAScript 5 แล้ว แต่ถ้าใครมาจากภาษาที่แบบเคร่งอยากให้เปิดไว้ เช่น จริงๆ เรื่องนี้มีอีกหลายอันเลย เรื่อง use strict แต่เอาเท่านี้ก่อน JavaScript ใช้ reference pointer – เราไปยุ่งตรงๆไม่ได้ แต่มันอยู่เบื้องหลังให้เราใช้งาน – การประกาศตัวแปร ของเดิม var แล้วจะทำอะไรก็ได้ แต่ปัญหาของมัน คือ ตัวแปรประเภท var มี Scope เป็น Global ครับ ของใหม่เพิ่ม let / const เข้ามา let เหมือน var แต่มี Scope อยู่ใน Block ของการทำงานครับ จะเป็นโมดูล หรือ Function อีกตัวเป็น const เก็บค่างคงที ห้ามแก้ไขหลังประกาศ – Data Type ใหม่ Destructoring  – ดึงข้อมูลบางส่วนมาจาก Array ใหม่  template string แทนที่เราต้องเอาตัวแปร + เชื่อม String…

ก้าวเข้าสู่โลกของ Frontend เริ่มเล่น Nodejs

หลังจากทำงานในส่วนของ Backend พวก Web Service กับ WinApp มานาน เกือบๆ 3 ปี คราวนี้เริ่มลองก้าวออกมาฝั่ง Frontend บ้างครับ โดยตัวที่ผมเริ่มลงตัว Nodejs เพราะ Nodejs เป็น JavaScript ฝั่ง Server นะครับ มันดูขัดๆกับที่ผมจั่วหัวว่า “โลกของ Frontend” จริงๆ ส่วนทำไมผมถึงลงก่อน เพราะ มันมีตัว Package Manager อย่าง NPM มาในตัวครับ สำหรับในค่ายอื่นมีตัวที่คล้ายกัน MS .NET : NuGet Java : Maven Python : conda เกริ่นนำมาแล้วไป Download กันเลยครับ สำหรับผมเลือกลงแบบ 64 bits ครับ ของ Windows ครับ สำหรับการลงง่ายครับ ตามแบบ Windows กด Next ไปเรื่อยๆครับ ลองดูรูปได้จาก Gallery นะครับ หลังจากลงเสร็จทดสอบ Version เลยครับ ด้วยคำสั่ง node -v npm –version แต่ถ้าใครอยากลองเล่น ES6 อย่า่งลืมไปตรวจสอบ Feature ที่  ด้วยนะ

[.Net] ลอง Share Pattern Parallel.ForEach ที่ผมใช้ครับ

จาก Blog ตอนที่แล้ว เรื่อง [.Net] มาทำให้ Parallel.ForEach Debug ง่ายกันเถอะ มาวันนี้ผมขอ Share Pattern ที่ได้ลองใช้ Parallel.ForEach เจ็บมาเยอะครับ เดี๋ยวผมลองแปะโครง Code แล้วมาอธิบายทีละจุดครับ ลองอ่านตาม Comment ได้ครับ จาก Comment ผมมีใช้คำสั่งหลายตัวเลย ได้แก่ ลองนำไปปรับใช้กันดูได้นะครับ ^___^

กลิ้งมินิมาราธอนครั้งแรก Globe-Athon 2016 ที่ The Sense Pinklao

หลังจากซุ่มออกกำลังกาย วิ่งแถวบ้านทุกๆวันเสาร์ กับลองเล่นเครื่องเดินอากาศ ตั้งแต่ช่วงต้นปีครับ และเมื่อต้นเดือนผมได้ไปเห็นประกาศงานวิ่งครับ แต่พอกลับไปปั่นงาน เอ้า ลืม ซะและ แต่โชคดีที่วันอาทิตย์ที่แล้วมีบูธที The Sense ให้สมัครหน้างานครับ 300 บาท โดยของที่ได้มี ดังนี้ครับ และมาถึงวันนี้ 25 ก.ย. 2559 ถึงวันจริงแล้ว ผมได้มาถึงที่ The Sense

[.Net] มาทำให้ Parallel.ForEach Debug ง่ายกันเถอะ

หลังจากหายไปพักนึง หลังากลองตบตีกพวก Thread มาสักพักใหญ่แล้ว วันนี้ขอประเดิม Blog เลยและกันครับ สำหรับตัว Microsoft .Net Framework ถ้าใครใ้ตั้งแต่ 4.0 เป็นต้นไป มันมีชุดคำสั่งสำหรับทำงานแบบ Parallel ด้วยครับ ซึ่งหนึ่งในนั้น คือ Parallel.ForEach นั้นเองครับ แล้ว Parallel.ForEach คือ อะไร มันเหมือน ForEach แหละ แต่ต่างกันที่ ForEach ทำคนเดียว แต่ Parallel.ForEach ช่วยกันทำครับ มันก็ดีช่วงกันทำนี่ แล้วมันมีปัญหาอะไร ก็ตอนมี Bug ไงครับ ยิ่งเป็น Runtime Exception แล้ว จับได้ยากครับ เพราะ Parallel.ForEach มันแบ่งงานกันทำ เราจะรู้ได้อย่างไรว่า งานที่แบ่งกันทำ งานขิ้นไหนที่มันมีปัญหาครับ พระเอกของเรา มันอยู่ที่คู่มือครับ ลอง Google ไปดูรูปแบบตัวอย่า่งการเรียกใช้ Parallel.ForEach ดูสิครับ พบว่ามันมี Parameter อยู่ตัวที่น่าสนใจครับ คือ ตัว ParallelOptions ครับ เมื่อมาดูตัว ParallelOptions มี property ตัวนึงที่น่าสนใจครับ MaxDegreeOfParallelism สำหรับ Property นี้เป็นการกำหนดงานที่ทำพร้อมๆกัน (Concurrent) ว่าทำได้สูงสุดเท่าไหร่ สำหรับค่า Default คือ -1 (no limit) ครับ หลังจากความหมายแล้ว ด้วยความอยากรู้ผมเลยลองกำหนดค่าเป็น 1 ใน Mode Debug ครับ ผลปรากฏว่า ผมสามารถ Debug Code เพื่อหาข้อผิดพลาดได้ครับ มันดีมากเลยยย ^___^ สำหรับ Blog ตอนต่อไปที่จะเขียน ถ้าว่าง คือ Pattern สำหรับการใช้ตัว Parallel.ForEach ครับ

[DB2] มาดักดูว่าใครทำ DB ค้าง

ช่วงนี้ DB ที่บริษัทกับที่ Production ชอบค้างอยู่บ่อยๆครับ สำหรับในบริษัทได้ลองเขียน Query เพื่อที่ตรวจสอบว่าใคร Lock Database ซึ่งอาจะเป็นการเปิด Transaction แล้วลืม Commit ก็ได้ครับ สำหรับการทดสอบของผม ผมได้มี Query ชุดนึงที่มีหน้าทีควานหาว่า มีอะไรผิดแปลกกับ Database ครับ โดยผมมีรูปแบบการ Test ดังนี้ ใช้ SYSIBMADM.LOCKS_HELD สิ หากสังเกตุดีๆ Query ตัว SYSIBMADM.LOCKS_HELD หรือ LC ผมเอาหมดเลย เพราะบางตัวผมก็ไม่รู้ครับ และหากนำไปใช้งานจริง อย่างลืมเปิดสิทธิการ Execute ให้กับ “SYSPROC.MON_GET_CONNECTION” ไม่งั้นจะเอามันด่าแนวๆนี้ครับ DB2 Database Error: ERROR [42501] [IBM][DB2/NT64] SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: “INVEST”. Operation: “EXECUTE”. Object: “SYSPROC.MON_GET_CONNECTION”. และการนำไปใช้งานจริง อาจจะทำเป็น App แบบตอนสมัยปี 1 เมื่อเวลา DB มันค้าง ให้ DBA ที่ของ Site ลูกค้า Dump ออกมาเป็น TextFile และส่งกับมาที่บริษัทก็ได้ครับ ส่วนตอนนี้ขอไปจับโจรที Production ก่อนครับ

อย่าสร้างเทพ หรือผลักใครไปเป็นเทพ

วันนี้ผมน่าจะเขียน Blog แปลกเลย แหวกจากแนว Software พอสมควรเลยครับ หลังจากที่ได้ลองนั่งคิดกับตัวเอง และมองอะไรรอบตัวเราแล้ว ตอนนี้เรากำลังเป็นเทพไปดับไฟให้ใคร หรือป่าว หรือเรากำลังผลักใครไปเป็นเทพ เป็นเทพก็ดีแล้วนี่ ทั้งเก่ง มีความสามารถ แต่ไม่มีใครทำทุกอย่างได้หมด ด้วยตัวคนเดียวหรอกครับ ลองดูอย่าง Software ที่เราเขียนออกมาก็ได้ครับ มันเทพมา แจ่มโคตรเมื่องานเข้ามาน้อยๆ แต่พองานเยอะขึ้นหละ เริ่มมีข้อผิดพลาดแล้ว สิ่งที่เราทำได้มีทั้งแก้ Code แบ่งงานกันทำ Software มันยังมีการกระจายงานครับ คนๆอย่างๆเราต้องมีการกระจายงานครับ   ไม่มีใครทำทุกอย่างได้หมด ด้วยตัวคนเดียวหรอกครับ

4+1 architectural view model กับมุมมองของธุรกิจ

พอดีหัวหน้าให้เอา Framework ใหม่ที่มาใช้แทน Legacy System ไปลองนำเสนอกับ Consult ของบริษัทดูครับ เค้าก็ถามหลายเรื่องเลยครับ และบอกให้นำเรื่อง 4+1 architectural view model  มาใช้ในการนำเสนอครับ โดยนำเสนออย่างไร และตอบโจทย์อะไร ลองดูกันได้เลยครับ 4+1  มีอะไรบ้างหละ architectural view model User view – Use Case Process view – Activity diagram, Sequence Diagram Development view – Component diagram Logical view – Class diagram Physical view – Deployment Diagram ถ้าเขียนได้ชัดเจนมันตอบปัญหา User หรือ IT ได้ เช่น การ Scale ระบบ หรือการจัดหา Licence เพิ่มครับ หลังจากที่ฟัง Consult ของบริษัทแล้ว รุ้สึกงานด้านเอกสารด้านนี้ยังไม่มีเลย และเข้าใจความสำคัญของ Diagram พวกนี้ มันคล้ายกับที่ทีมวิศวกรที่ใช้พิมพ์เขียว ตอนทำการสร้างตึกครับ

[DB2] db2support เครื่องมือสำหรับเก็บข้อมูล เพื่อวิเคราะห์ปัญหาครับ

จริง Blog นี้ดองมานานหลายเดือนเลย สำหรับวันนี้ได้เวลาเคลียร์ HDD เลยไปเจอรูปที่เตรียมไว้ทำ Blog เลยตัดสินใจมาเขียนให้จบดีกว่าครับ โดยวันนี้เรื่องของ db2support  แล้วตัว db2support  คือ อะไร หลายคนอ่านชื่อแล้วอาจจะคิดว่าพิมพ์คำสั่งไปปุบ มีทีมงานจาก DB2 วิ่งเข้ามาดูที่ DB Server ของเรา แต่จริงๆไม่ใช่นะครับ มันเป็นเครื่องมือที่เก็บข้อมูลต่างๆ เพื่อนำมาวิเคราะห์ปัญหาครับ db2support  ใช้งานอย่างไร แค่พิมพ์คำสั่งครับ สำหรับรายละเอียดดูได้จากที่นี้ครับ โดยใน Blog นี้ผมใช้คำสั่งดังนี้ Note: บน Linux/Unix จะมี Flag -C = Compress และ -c connect แต่ Windows มันไม่ได้สนใจตัวเล็กใหญ่ครับ เห็นมันน้อยๆ แต่ Option ของคำสั่งนั้นเพียบครับ โดยผมให้เห็นข้อมูลพื้นฐาน จาก Database (-d) BFMAPR และให้ทำการบีบอัด (-C) โดยได้เป็น .zip พอดีผมใช้ Windows เป็นหลัก ถ้าเป็นค่ายอื่นๆ ก็จะเป็น .tar โดยสิิ่งที่มันเก็บสามารถดูได้จากที่นี่ครับ หลังจากกดคำสั่งไปแล้ว รอมันทำงานครับ โดยสำหรับ Windows มันอยู่ใน โพลเดอร์ IBM\SQLLIB\BIN ครับ แต่ถ้าต้องการเปลี่ยน Location เพิ่ม param [outputdir] เข้าไป Pattern Command จะประมาณนี้ใช้ได้ทั้ง Windows (ผ่าน  “DB2 Command Window – Administrator” / Linux / Unix เมื่อลองเปิดดูมันสร้างเว็บ เราสามารถไล่ดูในสิ่งที่ต้องการได้ครับ Tools ตัวนี้เหมาะสำหรับอะไร ? 2024 Update เขียนไว้ตอนปี 2016…

สรุปงาน FinTech Developer Conference 2016

งานวันนี้รู้สึกดีมาก ได้เป็นตัวแทนของบริษัทในการไปฟัง FinTech Developer Conference แต่ส่วนตัวผมคิดว่าเป็นชื่องาน National E-Payment กับ FinTech น่าจะโอเคกว่าครับ บรรยายโดย ดร.อนุชิต อนุชิตานุกูล ครับ สำหรับใน Blog ตอนนี้ ผมขออ้างอิงกับ Blog เดิม “สรุปงาน Any ID, Privacy ที่ Software Park แจ้งวัฒนะ”  ที่เกี่ยวกับ National E-Payment นะครับ  ซึ่งใน Blog ผมจะเขียนเสริม หรือเติมสิ่งที่ขาดไปนะครับ คำเดือน ข้อมูลใน Blog นี้ ผมเขียนตามความเข้าใจของผม อาจจะมีเนื้อหาบางส่วนที่ผิดพลาดได้ครับ มามองภาพรวมของ National E-Payment (ตอนนี้ PromptPay) – PH1 – ทำแล้วมี 5 โครงการย่อย อยากให้ทุกคนเข้าระบบภาษี ทำบัญชีเดียว เพราะ ถ้าทุกคนเข้าระบบ มันจะโกงยากขึ้น เมื่อทุกคนช่วยกันจ่ายภาษีจะลดลง เนื่องจากภาครัฐต้องสภาพแวดล้อมการแข่งขันให้ต่างชาติเข้ามาลงทุนให้มากขึ้นครับ – PH2 – ตลาดเงิน ตลาดทุน (กำลังทำ) กองทุน (Plan ว่าทำต่อไป) – PH3 – การค้าระหว่างประเทศ  ทำไมต้องมี National E-Payment ต่อไปก็จะเป็นสรุปคำถามที่เกิดมีการซักถามระหว่างในงาน คั่นด้วยของว่างครับ ภาพรวมของระบบเดิม กับของใหม่ (เอาให้เห็นภาพนะครับ) สิ่งที่คาดหวังว่าจะเกิด โอกาสของ FinTech เมื่อเราเข้าใจตัว Infrastructure แล้ว National E-Payment จัดการให้ในระดับหนึ่งแล้ว ที่เหลือเป็นโอกาศให้ FinTech ต่างๆ มาค้นหา และเติมเต็มโอกาศครับ สำหรับ Session ผมรู้สึกผิดหวังเล็กน้อย ตอนแรกเข้าใจว่ามีอธิบายในแนว Programming บอก API หรือ Message ที่ใช้นะครับ แต่จากการได้มาฟังงานนี้ ทำให้ผมมองเห็นภาพของตัวระบบชัดเจนมากขึ้นครับ…