[UBUNTU] Update OS แบบ Command Line

หลังจากใช้ Ubuntu มาสักพัก ลองใช้ Update ผ่าน UI แล้ว ไม่ค่อยประทับใจเท่าไหร่เลย ปล่อยทั้งวันก็ยังไม่เสร็จ มาลองคำสั่งดีกว่าครับ ง่ายเพีบงแค่ 3 บรรทัดเท่านั้น

[CUSE] ชีวิต ณ 2018-03-11

Blog ตอนนี้อออกแนวบ่นมากกว่า เพราะตอนนี้ Thesis ติดปัญหาที่ว่า

  • ยังหา BPMN Engine ที่เหมาะสมไม่ได้ ถ้าเอาสิ่งที่งานวิจัยก่อนหน้ามาเปรียบเทียบ
  • ปัญหาที่สำคัญของ BPMN คือ ทาง OMG(Object Manangement Group) เป็นผู้ออกสเปคครับ แต่ไม่ได้ Implement ตัว Engine เองครับ ซึ่งมันเลยทำให้แต่ละค่ายได้ ใส่ Idea ของตัวเองลงไปครับ ซึ่งตามกับพวกภาษา Java หรือ C# ที่หน่วยงานที่ออกสเปค เป็นคนทำตัว Engine (ในที่นี้ หมายถึง ตัว Compiler ครับ)
  • ตอนนี้เริ่มเข้าใจแล้วว่า Thesis มันต่างกับการเรียนธรรมดาอย่างไรครับ

ส่วนเรื่องงานก็เยอะ มาทำงาน 08:00 AM แต่กว่าจะกลับบ้านได้ก็เลย 08:00 PM เพราะที่ทำงานมี Project ใหม่ที่ต้องพยายาม PoC (Proof of Concept) ให้ได้ก่อนสงกรานต์ครับ แต่ตัวระบบที่ใช้ทำ PoC ยังไม่มีเลยย T….T

วันนี้เป็นวันที่วิเศษที่สุดอีกวันครับ ะาคุณแม่ออกจากบ้านมาเดินห้างได้ในรอบหลายสิบปี น่าจะสิบสามปีนะ แม้ว่าท่านจะไม่ค่อยกินอะไร เพราะยังไม่ค่อยคุ้นชิน ^____^

ส่วนเรื่องการวิ่งตอนนี้ลดเหลือสัปดาห์ละ 5 km แทนครับ ช่วงนี้งานเยอะมากๆ จนบางทีเริ่มรู้สึกว่างานเบียดเวลาเรียน

[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

 

 

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

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

เป็นเทพก็ดีแล้วนี่ ทั้งเก่ง มีความสามารถ

แต่ไม่มีใครทำทุกอย่างได้หมด ด้วยตัวคนเดียวหรอกครับ

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

 

ไม่มีใครทำทุกอย่างได้หมด ด้วยตัวคนเดียวหรอกครับ

[Nunit] เริ่มต้น Test กับ Tools ตัวใหม่

ช่วงหยุดยาว 4 วันตามธนาคาร 16-17-18-19 เดือนกรกฏาคม ปี 59 ผมก็ไม่ได้ไปไหนหรอก อยู่บ้าน เผางานเหมือนเดิมครับ แม้ว่า Blog ตอนก่อนหน้าจะบอกว่า Project จบแล้ว แต่งานยังเหลือครับ หรือที่เรียกว่า End-Phrase (จำเค้ามานะ เดี๋ยวปีหน้าถ้าได้ต่อ โท จะมา Update ใหม่) โดยวันนี้ผมใช้ Test Tools ตัวใหม่ ปกติผมใช้ตัว JUnit ถ้าเป็นฝั่ง Java แต่ถ้าเป็นฟาก .Net ใช้ตัว Test ที่ Build-in มาให้ของ Visual Studio ครับ แต่ของ .Net มันเอาไปใช้กับคุณลุง Jenkins ไม่ได้ครับ ผมเลยย้ายคล้ายมาใช้งาน Nunit ครับ ในบทความนี้ เป็นการเตรียมตัว Tools ต่างๆ เพื่อทำ Nunit บน Visual Studio ครับ

  • Nunit – ลงพวก lib พื้นฐานครับ
    • ลงจากตัว Setup แยก หรือดึงมาจาก Nuget ก็ได้ครับ ถ้าลงตัว Step up แยก เราได้ตัว unit Console  ด้วยเผื่อ Run Test ผ่านตัว Command Line เอาไว้ใช้ Integrate กับ Continuous Integration Tools อย่าง Jenkins
    • ตอนลงเว็บ NUnit มันเก่าแท้ครับ ไปที่ GitHub ดีกว่า https://github.com/nunit/nunit/releases/
  • Nunit GUI – เป็น Gui Tools เอาไว้รัน Test แยกครับ ไม่ต้องไปรันแยก  โดยไม่ต้องเปิด Visual Studio ครับ
  • Nunit Test Adapter – เชื่อมกับตัว Visual Studio ครับ

ผมอาจจะให้ลงเยอะนิดนึงนะครับ ฮ่าๆ เพราะ อันที่จริงเราสามารถดึงจาก Nuget ทั้งหมดได้ครับ แต่ผมให้ลงหมด เพราะ เผื่อเราเอาไป Integrate กับ Continuous Integration Tools อย่าง Jenkins เวลาเชื่อมกับ Nunit มันต้องใช้ Command Line ครับ

การทำหรือเผา Data Dictionary ที่มีประสิทธิภาพ

ตอนนี้โปรเจคที่ผมกำลังเข้าช่วงโค้งสุดท้ายในการลงนาม ตรวจรับ สิ่งที่สำคัญที่สุด คือ การเผา เอกสารครับ ตอนนั้นมีเอกสารในส่วนของฐานข้อมูล ผมขอเรียกมันว่า Data-Dict นะครับ ตอนแรกทีมที่ทำก็อึ้งๆ เนื่องจากโปรแกรมมีมานานและ 20 กว่าปี แต่ไม่เคยมี Data-Dict ที่สมบูรณ์สักที ทำไมทำมาได้ 1100 Table เพราะ มีหนี้ทางเทคนิค Technical Debt ที่เกิดจาก

  • งานเร่ง เผาให้สุก ที่เหลือช่าง
  • งานจบ คนจบ หลุดพ้นแล้ว
  • งานจบ งานใหม่รอ
  • งานปรับ (Change) แต่ของเก่าไม่รู้ว่า คือ อะไร มันไม่รองรับ ทำใหม่ดีกว่า (อันนี้เป็นปัญหาของคนที่ไม่ใช่สาย IT เลย แต่เข้ามาเกี่ยวข้องกับ Software Development ชอบคิดว่าง่าย แต่จริงๆ มันมีที่มาซับซ้อน)

แต่งาน Customize เสริมยังดีที่มีการทำ Data-Dict มาแล้ว ก่อนตะแก้ปัญหา เราต้องดูก่อนว่ามี Resource อะไรบ้าง

  • น้องฝึกงาน 2 คน สายทำเอกสารโดยเฉพาะ ไม่ถัด Code
  • Expert 6 คน ที่ยังรอดชีวิต
  • เอกสารเก่าอีกชุดนึง
  • Schema บางส่วน Dev ตัดสินใจใส่คำอธิบายลงใน DDL เลย
  • มี Code Standard ในที่รี้ผมไม่ได้หมายถึงตัว Code นะครับ ผมหมายถึงฝั่งทาง Database ที่มีการวาง Pattern ที่ดีประมาณ 70% ครับ

สิ่งที่ต้องทำ

  1.  ใข้ Tools เพื่อทำการ Generate ER-Diagram และ Data-Dict คร่าวๆมาก่อนครับ ได้ Comment มาด้วย
  2. เนื่องจากมีรูปแบบพอสมควรใน Database เราใช้สถิติมาช่วย นับจำนวน Column ที่มันซ้ำกันเยอะที่สุดใน DB มาครับ
  3. ใส่คำอธิบายของแต่ละ Column โดยอิงจากเอกสารเก่า  วางไว้ใน GoogleDoc จะได้ไม่ต้องงลเสียเวลามา Merge
  4. ให้ Expert ช่วยกันมา Review
  5. ให้ Expert ตรวจสอบความสัมพนัธ์ของแต่ละ Entity ใน ER ถ้ามี Table ไหน Column ไหนไม่ใช้ ให้ทำ note เก๋บไว้ ห้าม Drop นะ  เดี๋ยวบึ้ม 555
  6. ระหว่างที่ Expert ทำงานให้น้องฝึกงาน เตรียมโครงเอกสารข้อมูล ตั้วต้นให้คอธิบาย เท่ากับ ชื่อ Column ทำแบบนี้ เพื่อ Search & Replace แต่ไม่ใช่ให้ไล่ Copy เอา VBA มาช่วยทำครับ
  7. เมื่อ Expert ตรวจทานคำอธิบาย Column เสร็จ ให้น้องฝึกงาน Search & Replace ครับ

เผา Data Dictionary  ทันใน 1 สัปดาห์ ทั้งๆที่ แต่ละ มีงาน End Pharse หลังโปรเจคจบ งานจบ แต่ SA กับ Dev ยังต้องเก็บกวาด สิ่งที่เกิดขึ้นจากการ Estimate Time ที่ผิดพลาดครับ T……T

[SQL] การเขียน Query ให้สามารถรองรับ Config ได้

เดี๋ยวขออธิบายเนื้องานคร่าวๆ ก่อนนะครับ ตอนนี้ผมทำตัว DataSet สำหรับ Export ARS ไปส่งให้ทีมบัญชี เพื่อส่งไปให้ Bank ชาติอีกทีนึครับ แล้วที่นี้มันมีข้อกำหนดที่ว่า

[C#, Office Add in] Registry Key ที่เกี่ยวข้องกับ VSTO

สำหรับตอนนำ Add-in ไปติดตั้ง หากลงผ่านตัว Setup แล้วระบบสร้างตัว Registry ที่เกี่ยวข้องที่ลง Registry ที่ Path ดังนี้ครับ โดยสำหรับ Office ทุกตัวยกเว้น Visio ครับ

  • Office 32 บิต จะอยู่ที่ HKEY_CURRENT_USER\Software\Microsoft\Office\[application name]\Addins\]add-in [ID]
  • Office 64 บิต จะอยู่ที่ HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Office\[application name]\Addins\]add-in [ID]

ส่วนสำหรับตัว Visio นะครับ

  • Office 32 บิต จะอยู่ที่ HKEY_CURRENT_USER\Software\Microsoft\Visio\Addins\]add-in [ID]
  • Office 64 บิต จะอยู่ที่ HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Visio\Addins\]add-in [ID]
[HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DebuggingSoft.Report.Excel]
"Description"="DebuggingSoft.Report.Excel"
"FriendlyName"="DebuggingSoft.Report.Excel"
"LoadBehavior"=dword:00000003
"Manifest"="file:///C:/DebuggingSoft/Excel-Addins/DebuggingSoft.Report.Excel.vsto|vstolocal"

เครื่องที่ไม่มี ก็ไม่ต้องตกใจนะครับ เพียงแค่นำ Script Registry ชดนี้ไป Save เป้น .reg แก้ค่าที่เกี่ยวข้อง และรันมันครับ

บทที่ 15 คิดอย่างแตกต่างกับเรื่องเล่าของคุณ(สรุปโดยพี่ปิง COMSWU#21)

นวัตกรรมหลายอย่างที่ไม่ได้รับความสนใจ เพราะขาดการนำเสนอที่ดี ดังนั้นคุณควรพัฒนาทักษะในการพูดให้ดีขึ้น เช่นการตอบคำถามให้ชัดเจน และเข้าใจได้ง่าย เล่าเรื่องในแบบอมตะเช่น ฮีโร่-ผู้ร้าย โดยหลักเจ็ดอย่างที่จ๊อบใช้
ข้อที่ 1 สร้างช่วงสุดยอดขึ้นมา สร้างช่วงเวลาที่จะทำให้ทุกคนตาค้างเมื่อได้เห็นภาพจากการนำเสนอของคุณ
ข้อที่ 2 ยึดมั่นในกฎกลุ่มละสาม หาสามเรื่องที่คุณต้องการให้ผู้ฟังรู้
ข้อที่ 3 แบ่งปันเวที นำทีมงานหรือผู้ที่เกี่ยวขึ้นมาแนะนำตัวและนำเสนอความคิด
ข้อที่ 4 แนะนำฮีโร่และผู้ร้าย
ข้อที่ 5 คิดออกมาเป็นภาพ อย่าอัดตัวหนังสือจำนวนมากลงไปในสไลด์ เลือกแต่สิ่งที่ต้องการจริงๆ เท่านั้น
ข้อที่ 6 เขียนคำพาดหัวที่เป็นมิตรในแบบทวิตเตอร์ สั้นๆ แต่ได้ใจความ
ข้อที่ 7 ขายฝันไม่ใช่สินค้า คุณต้องนำเสนอสิ่งที่จะเปลี่ยนแปลงชีวิตลูกค้าให้ดีขึ้น เมื่อได้ใช้สินค้าของคุณ
ยังมีอีกอย่างหนึ่ง…อย่าให้พวกงี่เง่ามาทำให้คุณเสียกำลังใจ
จ๊อบเคยถูกปฏิเสธมาหลายต่อหลายครั้ง ถูกท้าทาย แต่เขาไม่เปลี่ยนใจ ไม่ล้มเลิกที่จะสร้างโลกที่ดีกว่านี้ขึ้นมา หากคุณมีความฝัน และรักที่จะทำมัน ขอให้คุณมีตั้งใจที่จะสร้างสิ่งที่ดี อดทน และไว้ใจในสิ่งที่ตนรัก คุณต้องกล้าและบ้านิดๆ มีวิสัยทัศน์ที่ชัดเจน และนวัตกรรมก็จะงอกเงยขึ้นมาได้

สรุปโดยพี่ปิง COMSWU#21