[CR] รวมอาหารเจจากร้านสะดวกซื้อ ปี 2016

ช่วงนี้เข้าเทศกาลกินเจ มาวันนี้ผมได้รวมอาหารเจที่หาซื้อได้ง่ายตามร้านสะดวกซื้อกันครับ ถ้ามีอะไรได้ลองชิมเพิ่มเดี๋ยวผมทยอยอัพขึ้นเรื่อยๆครับ EZYGO-ข้าวอบห้าเซียนเจ ชื่อเมนู : ข้าวอบห้าเซียนเจ ผู้ผลิต : EZYGO ราคา :  29 บาท ความเห็น : คุ้มค่ากับราคาครับ มีดีที่ข้าวมันปูครับ เครื่องเยอะ จัดเต็ม ร้านที่สามารถหาซื้อได้ : 7/11 EZYGO-ข้าวกะเพราเจ ชื่อเมนู : ข้าวกะเพราเจ ผู้ผลิต : EZYGO ราคา :  29 บาท ความเห็น : มีดีที่ข้าวมันปูครับ  กะเพราเจกลมกล่อมครับ ไม่รู้สึกว่ากินเจเลย (ผมมองว่าไม่เจนะ เจจะไม่สนใจผักกลิ่นฉุน) เครื่องเยอะ จัดเต็ม ร้านที่สามารถหาซื้อได้ : 7/11 EZYGO-ผัดหมี่ฮ่องกงเจ ชื่อเมนู : ผัดหมี่ฮ่องกงเจ ผู้ผลิต : EZYGO ราคา :  35 บาท ความเห็น : แฮมเจอร่อยมาก แต่เส้นเหนียวไปนิด ร้านที่สามารถหาซื้อได้ : 7/11 EZYGO-เปาฮื้ออบวุ้นเส้นเจ ชื่อเมนู : เปาฮื้ออบวุ้นเส้นเจ ผู้ผลิต : EZYGO ราคา :  35 บาท ความเห็น : สุดยอดอาหารเจ เปาฮื้ออร่อย อารมณ์แบบกุ้งอบวุ้นเส้น มีกลิ่นไอ แล้วรสชาติออกมาทางนี้ครับ รอบสองผมไปซื้อกินอีก 2 กล่อง 555 ร้านที่สามารถหาซื้อได้ : 7/11 EZYGO-ข้าวผัดพริกขิงเจ ชื่อเมนู : ข้าวผัดพริกขิงเจ ผู้ผลิต : EZYGO ราคา :  29 บาท ความเห็น : มีดีที่ข้าวมันปูครับ ร้านที่สามารถหาซื้อได้ : 7/11 Fami-ข้าวไรซ์เบอรี่อบเผือกเจ ชื่อเมนู : ข้าวไรซ์เบอรี่อบเผือกเจ ผู้ผลิต : Fami…

Refusing to install webpack as a dependency of itself

ปัญหา “Refusing to install webpack as a dependency of itself” สำหรับปัญหานี้เกิดจากความโง่ของผมเองครับ พอดีจะลองตัว webpack ตาม Video สอน ดันไปสร้างโพลเดอร์ที่ชื่อว่า webpack พอไป npm init ตัว npm มันเลยสร้าง package.js ชื่อ webpack พอไปลงตัว webpack เข้ามันเลยด่ากลับมาครับ สำหรับทางแก้ไข คือ แก้ชื่อ package – name เป็นชื่ออื่น ไม่ให้ชนกับ webpack ครับ รอดแล้ว ได้เรียนต่อ ^___^

Requirement ผิดแค่ลบหนึ่งวัน !!!!

เมิ้อลูกค้าสั่งแก้โปรแกรม

ว่าจะไม่เขียน Blog นี้แล้ว แต่มันอดเขียนไม่ได้จริง กล่าวถึง DataSet LQ1 ของ BOT แหละ Site ที่จ้างบริษัทที่ผมรับเงินเดือนไปทำเนี่ย ไม่รู้ว่าที่ต้องส่ง BOT จริงๆ ต้องส่งอย่างไร มันเลยเป็นปัญหาที่ว่า UAT บน Production เนี่ยแหละ (แล้วมันมีช่วงการ UAT ไปทำไม ในเมื่อ User ต้องเซ็นผ่านให้ตรงกับ KPI องค์กร) มาที่ Timeline ของ DataSet ชุดนี้ก่อน 2015 (ช่วงต้นปี) : เริ่มทำระบบนี้แหละ หลังจากไม่มีใครกล้าเสี่ยงมาทำ ตอนนี้เข้าใจแล้ว ลึกซึ้งงง 2015-06: ส่งให้ User UAT และจบช่วงต้นเดือน 8 และขึ้น Production เรียบร้อย 2015-08 (ช่วงสิ้นเดือน) : BOT มีประกาศให้ใช้ข้อมูล ณ วัน Settle 2015-09-30 : ปรับแก้เสร็จ ส่งให้ไปใหม่ จำวันแม่นครับ User ขอเปลี่ยนเอาราคาตลาด T-1 แทน 2016(ช่วงมกราคม) : ส่งโปรแกรมใหม่ไปให้ตรวจ และตรวจผ่านด้วย !!!!! 2016-03-xx : หน่วยงานใหม่ของ Site ที่ทำโผล่มาบอกว่ามันคิดผิดนะ และเป็น User ที่ใช้งาน DataSet นี้ด้วย ปัจจุบัน : Dev ก้มหน้ารับชะตากรรมแก้งานต่อไป และไปเจออะไรที่มันขัดแย้งมากเลยเขียน Blog เลย มาที่ฝั่ง User ก่อน ไม่รู้สาระของตัว DataSet ว่าต้องส่งอะไรให้ BOT มาฝั่งทีม BA บ้าง ไม่ศึกษาเนื้อหาว่า…

[JS] Functional Programming

function เป็น Input หรือเป็น Parameter ได้ function Composition เอา Function หลายๆอันมาทำงานร่วมกัน toUpper Check Pattern และอื่นๆ เมื่อมี function หลายๆออัน เรายุบรวมมันว่าเป็น Service เช่น EmailValidator เกิดจากการเอา Function หลายๆตัวอย่าง toUpper หรือ Check Pattern มาทำงานร่วมกัน Service หลายตัวทำงานร่วมกัน มันก็ คือ ตัว Use Case Use Case หลายตัวรวมกันได้เป็น Application    

[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 ดังนี้ VM ที่ลง DB2 ไว้ (ถ้าว่างๆจะย้ายลง Docker และ) Dump ข้อมูลใส่ใน Table Activeuser เครื่อง VM นี่แหละ Connect ผ่าน Toad และลบข้อมูล Table Activeuser ผ่าน Toad และปิด Auto Commit ไว้ เครื่อง Host ลองเปิด Client App Connect เข้าไป เจอ Error ครับ เท่าที่ User แจ้งมานี่มีหลายแบบ อันนี้เป็นแบบหนึ่ง กลับเข้าไปใน VM เปิด Toad และลอง Run Query ทดสอบอีกครั้ง ผลลัพธ์ที่ได้ครับ ลองมาจับโจรจาก Query นี้ดูครับ มีข้อมูลที่แกะได้จาก Query ดังนี้ Client – win7sp164bit (VM ผมเองครับ) Application – toad.exe Table – SYSTEMCOUNTER, ACTIVEUSER Lock Type – TABLE_LOCK Lock Mode – IX หากสังเกตุดีๆ Query ตัว SYSIBMADM.LOCKS_HELD หรือ…