Posts

วิธีการทำ CD/CI บน Azure DevOps

Image
เกริ่น สมัยนี้ อะไรๆ ก็ต้อง Automation กันหมด เพื่อให้เราสบายขึ้น จะได้มีเวลาไปทำงานเพิ่ม Productivity CI/CD คือกระบวนการการส่งมอบระบบให้กับลูกค้า CI = การเตรียมพร้อม (Compile / Build) CD = การส่งมอบ (Deploy) ระบบที่ผมใช้ปัจจุบัน ผมใช้ Azure DevOps เป็นตัว Source Control รองรับทั้ง Git และ Team Foundation ซึ่งจะแตกต่างกันไปในการ Control ตอนหลังๆ เริ่มสนใจการทำ CI/CD เพราะเจอปัญหาว่าต้อง Deploy ระบบตอนตี 2 แล้วต้องนอนไว เพื่อตื่นตี 2 หรือลากยาวเลย ทีนี้ถ้าเราไม่อยากต้องมาทำแบบนั้นละ พระเอกของเราก็นี่ไง CI/CD มีอยู่แล้วบน Azure DevOps  เกริ่นมานานเข้าเรื่อง ถึงวิธีการ Setup เลยนะครับ เริ่มจากการสร้าง CI Pipeline คลิกเมนู Pipelines > Pipelines > Create Pipeline คลิกเลือก Use the classic editor .... เลือก Source จาก Azure Repos Git แล้วคลิก Continue การเลือก Source ขึ้นอยู่กับว่า Source เราอยู่ที่ไหนนะ ถ้าเป็น Team Foundation ก็เลือก TFVC จากนั้นเค้าจะให้เราเลือกว่าจะสร้างจาก Template ที่เค้าตั้งให้แล้ว หรือสร้างจาก Empty Job เลย (ไม่มีอะไรเลย) ในที่นี้ผมทำระบบด้วย .Net C# ก็เลยค...

ติดตั้ง Redis 6.0.1 Single Instance บน Hyper-V Ubuntu 20.04

Image
ขั้นตอนลง Ubuntu 20.04 ติดตั้ง Hyper-V บน Windows 10 ก่อน หลังจากนั้น Create New Virtual Machine ความต้องการระบบ Ubuntu 20.04 (จากเว็บ Official) ขนาดไฟล์ Download ผ่าน Hyper-V 1.99GB CPU 2GHz dual core หรือดีกว่า 4GB Memory 25GB of free hard drive space ความต้องการ Redis Server Production CPU >= 8 Cores Memory >= 32GB Redundant SSD Based storage with RAID  ขั้นตอน Setup Ubuntu ไม่ขอลงรูป ให้รายละเอียดเป็นตัวหนังสือเอา English > Keyboard English > Bangkok > Who are you ใส่ตามใจชอบเลย หลังจากหน้า Who are you ก็รอระบบ setup ซักแปปนึง setup ซักครู่ระบบก็จะ Restart มาหน้าแรก พร้อมแล้ว ขั้นตอนติดตั้ง Redis 6.0.1 ก่อนอื่น update package ต่างๆ ก่อน ด้วยการเปิด terminal sudo = superuser do เป็นคำสั่งทำงานด้วยสิทธิ์ admin sudo apt-get update sudo apt-get upgrade หลังจาก upgrade เสร็จ ก็โหลด Redis มา ด้วยคำสั่งชุดนี้ $ wget http://download.redis.io/releases/redis-6.0.1.tar.gz $ tar xzf redis-6.0.1.tar.gz $ cd redis-...

วิธี setup iis 1 เครื่องมีหลาย web app แต่ใช้ port 80 เหมือนกัน

Image
โจทย์คือ สมมติว่ามีเครื่อง Server ip 192.168.0.58 แล้วเราต้องการให้มี 2 web site อยู่บนเครื่องนี้ ที่สามารถเข้าได้ด้วย port 80 ทั้งคู่ เว็บแรกสมมติ domain เป็น www.test1.com เว็บที่สองสมมติ domain เป็น www.test2.com เว็บแรก path อยู่ที่ "C:\inetpub\wwwroot\test1" เว็บที่สองอยู่ที่ "C:\inetpub\wwwroot\test2" เว็บแรกให้ config binding ดังนี้ เว็บที่สองให้ add website ใหม่ เพียงเท่านี้ ก็สามารถมี 2 website บนเครื่อง server เดียวกัน และใช้ port 80 เข้าได้

Query Generate Running Key

ผมขอโพสแชร์ความรู้ในการ Generate Running Key ให้ทุกคนได้รู้ เผื่อจะนำไปใช้ประโยชน์ได้บ้าง บางครั้งการทำงานอาจจะโจทย์ว่าจะต้อง Gen Key เช่น หมายเลข PO ในรูปแบบ String เช่น ต้อง Gen Po Number ใน Format PO-YYMMNNNNNN PO - Fix YY - ปีสองตัวท้าย เช่น ปัจจุบัน 2019 เราต้องการแค่ 19 MM - เดือนปัจจุบัน 2 หลัก เช่น 09 NNNNNN - ตัวเลข 6 หลัก ตัวอย่าง PO-1909000001 PO-1909000002 PO-1909000003 PO-1909000004 PO-1909000005 ตัวเลข NNNNNN จะถูกนับใหม่ทุกๆ เดือน หมายความว่าใน 1 เดือน จะมีเลขที่เป็นไปได้คือ 000001 - 999999 ความยาวนี้ก็แล้วแต่การออกแบบของแต่ละระบบของแต่ละบริษัท ก็ว่ากันไป สมมติว่าใน Database มี Table ชื่อ PurchaseOrder มี Field PO เป็น varchar(20) CREATE_DATE เป็น DateTime Query เพื่อ Generate PO คือ (MS-SQL) select 'PO-' + RIGHT(CONVERT(char(4),YEAR(GETDATE())),2) + RIGHT('00'+CONVERT(varchar(2),MONTH(GETDATE())),2) + RIGHT('000000'+convert(varchar(6), ISNULL(MAX(CONVERT(integer, (RIGHT(PO, 6)))),0)+1),6) from PurchaseOrder where ...

How to install KB2919355 into windows 2012 R2

The Problem is when I try to install SQL 2017 on Windows Server 2012 R2 it's said KB2919355 not installed. So my solution is I  need to install  KB2939087 and KB2975061  Installed those two KB's, then you can install KB2919355. (Which can get KB2919355 from Windows Update) Very annoying problem.

Line Notify ด้วย VB.Net

Image
สวัสดีครับ LINE มีบริการ API Notify ให้ใช้ หมายความว่าเราสามารถเขียนโค้ดจากโปรแกรมเราให้ยิงข้อความเข้า LINE ได้ แต่มีข้อจำกัดที่ว่าจะสามารถส่งแจ้งเตือนได้เฉพาะผู้ที่ขอใช้ หรือกลุ่มที่เป็นสมาชิกเท่านั้น ไม่สามารถส่งหาห้องสนทนาของเพื่อนๆ ได้ ซึ่งต้องใช้ LINE Bot API แทน ขั้นตอนการเตรียมความพร้อม 1. Add LINE Notify เป็นเพื่อนก่อน เข้า Account ของคุณ 2. Invite LINE Notify จากข้อ 1 เข้ากลุ่มที่ต้องการ 3. ไปรับ Token จากเว็บของ LINE  https://notify-bot.line.me/my/ ตอนขอรับ Token ระบบจะให้ใส่ชื่อ Token เวลาแสดงข้อความจะแสดงในรูปแบบนี้ [ชื่อ Token]: [ข้อความ] เช่น ตั้งชื่อ Token ว่า BerzerkNoti แล้วเราต้องการส่งคำว่า "สวัสดี" ไป ข้อความจะแสดงแบบนี้ BerzerkNoti: สวัสดี Code  Private Sub btnTestNoti_Click(sender As Object, e As EventArgs) Handles btnTestNoti.Click         Try             Dim request = CType(WebRequest.Create("https://notify-api.line.me/api/notify"), HttpWebRequest)      ...

HTML Javascript input textbox only numeric

Javascript         function isNumberKeyNoDot(evt) {             var charCode = (evt.which) ? evt.which : event.keyCode             if (charCode > 31 && (charCode < 48 || charCode > 57))                 return false;             return true;         } Textbox