Kusumoto Blog

Kusumoto Blog

ความรู้ ความสุข ความเศร้า ความทรงจำ

OS

บันทึกการย้ายระบบ Core Storage จาก Disk แบบ Dedicated มาใช้ ZFS

อาทิตย์ที่แล้วผมเจอปัญหา Disk ระบบ Backup Server ที่บ้านเสียหายหนัก จนต้องเปลี่ยน Disk ลูกใหม่ไป เรื่องนี้ที่จริงไม่ยากครับ ก็แค่หา Disk ลูกใหม่มาแทน Disk ลูกเก่าแล้วก็เสียบเข้าไปก็ใช้งานได้ปกติละ ประเด็นมั
1 min read
Javascript

ลอง Refactor JS Code เล่นๆวันหยุด เมื่อพยายามจะลด If-Else ใน Code ด้วย functional programming

มีฟังค์ชันนึงที่ทำหน้าที่เป็น event listener บางอย่าง แล้วเมื่อเจอ condition ที่ต้องการ ให้ทำตามเงื่อนไข ดังนี้ เมื่อฟังค์ชัน exampleConditionFilter รับข้อมูลพารามิเตอร์ searchText ที่เป็น string เข้ามา โดยในฟังค์ชันนี้ มีเงื
Go

ได้เวลาเปลี่ยนผ่าน Go Project ไปใช้ Go Module

ในที่สุดก็ได้เวลาอันสมควร ที่จะพา Project ที่ทำงานบน Production มาสักพักให้กลายเป็น Go Module สักที อันที่จริง Go Module ออกมาสักพักแล้ว แต่ช่วงที่ขึ้น Project ใหม่ประมาณปีสองปีที่แล้ว ยังไม่มั่นใจใน Go Module เนื
เมื่อชีวิตเรา ต้องตัดสินใจเปลี่ยนผ่านอะไรสักอย่างในชีวิต...
Private

เมื่อชีวิตเรา ต้องตัดสินใจเปลี่ยนผ่านอะไรสักอย่างในชีวิต...

วันนี้นั่งๆนอนๆอยู่ดีๆ ก็มีเรื่องผุดขึ้นมาในหัวตัวเองขึ้นมา นั่งทบทวนเรื่องต่างๆที่ผ่านเข้ามาในชีวิต แล้วลอง Feedback ตัวเองกลับมาดู ว่าตอนนี้เป็นยังไงบ้าง เรื่องงานเป็นยังไง การใช้ชีวิตเป็นยังไงบ้าง คนที่เข้ามาในชี
1 min read
แค่เปลี่ยน DNS มันไม่พอ? เหตุผลที่คุณควรใช้ DNS over HTTPS (DoH)
DNS

แค่เปลี่ยน DNS มันไม่พอ? เหตุผลที่คุณควรใช้ DNS over HTTPS (DoH)

ช่วงนี้ข่าวค่ายมือถือสีเขียว DNS Query หลุดกำลังอยู่ในกระแสเลย อาจจะไม่ใช่ข้อมูลระดับ Critical แต่ก็ทำให้เราได้เห็นถึงความสำคัญของ DNS over HTTPS กันมากขึ้น เพราะเราได้เห็นแล้วว่า ผู้ให้บริการเครือข่ายอินเทอร์เน็ต
2 min read
มาทำ DNS-over-HTTPS (DoH) ให้เครื่องภายในบ้าน พร้อม Block โฆษณากวนใจด้วย Pi-hole กัน (Part 1 รู้จัก DNS Server)
DNS

มาทำ DNS-over-HTTPS (DoH) ให้เครื่องภายในบ้าน พร้อม Block โฆษณากวนใจด้วย Pi-hole กัน (Part 1 รู้จัก DNS Server)

Pi-hole 5.0 บน Orange Pi Oneด้วยความที่ใช้ Pi-hole 4 มาหลายเดือนละ อีกทั้งตอนนี้ Pi-hole 5 ออกมาเมื่อไม่กี่วันมานี้ เลยถือโอกาสอัพเกรดซะเลย ซึ่งมันมี Feature หลายอย่างที่ต้องการพอดี เลยถือโอกาสติดตั้ง DNS-over-HTTPS (DoH) ซะเลย เด่วมาเล่าให้ฟังกัน ว่าไอ DoH
1 min read
AWS

บันทึกการย้าย Infrastructure จาก Google Cloud Platform ไปยัง AWS

เรามี Product อยู่ตัวนึง ที่หลังบ้านทำงานอยู่บน Google Cloud Platform เดิมอยู่ แต่ด้วยเหตุผลเรื่องของ Business ทำให้เราจำเป็นต้องย้าย Product ตัวนี้จาก Google Cloud Platform มาใช้ AWS แทน Architecture ที่เราใช้งานอยู่เดิม ช่วงที่เราเริ่มทำงานบน GCP นั้น
1 min read
React Native

วิธีการทำ Multiple Environment บน Project React Native ที่เวอร์ชันต่ำกว่า 0.60 ที่หลายๆคนมองข้ามกัน

ปัญหาคือผมไปเจอหลายๆคนเขียนบทความเรื่องนี้กัน ทั้งของฝรั่งทั้งของคนไทยกันเอง แล้วลืมขั้นตอนบางอย่างไป ทำให้โปรเจ็คเมื่อคนในทีมเอาไปใช้ หรือเมื่อลบ Pods Project แล้ว Install Pods ใหม่แล้ว "พัง" นั่นก็คือการแก้ไข Podfile ให้ถูกต้อง เนื่องจาก
1 min read
Private

เมื่อชีวิตเรา มันไม่แน่ไม่นอน

ไม่ได้เขียน  blog เรื่องตัวเองมานาน (ถึงนานมาก) ตั้งแต่ปีที่แล้ว ปกติช่วงปีใหม่จะต้องมานั่งสรุปสิ่งที่ผ่านมาในปีที่แล้วกับเป้าหมายของปีนี้ว่าจะทำอะไรบ้าง ก็ยังไม่ได้เขียนเลย ทำไมปีนี้ถึงไม่ได้เขียน New
แชร์ประสบการณ์เคลม Macbook Pro กับ Apple Store Iconsiam คือดีงามมากกก
Blog

แชร์ประสบการณ์เคลม Macbook Pro กับ Apple Store Iconsiam คือดีงามมากกก

เอาจริงๆไม่ได้เขียน Blog นานมากกกกกละ เอาเป็นว่าวันนี้มีเรื่องน่าประทับใจมาแชร์ให้ฟังกันนิดหน่อยครับ ด้วยความที่ Macbook Pro Mid 2017 คู่ใจอายุประมาณ 1 ปีกว่าๆ มีอาการจอเป็นรอยคีย์บอร์ด + คีย์บอร์ดมีอาการปุ่มบางปุ่มกดติดบ้
1 min read
เมื่อจำเป็นต้องใช้ Jasper Report พร้อม iTextPDF แล้วต้อง Sign Certificate (SHA-256) ไฟล์ PDF ผ่าน Bouncycastle บน Java
Java

เมื่อจำเป็นต้องใช้ Jasper Report พร้อม iTextPDF แล้วต้อง Sign Certificate (SHA-256) ไฟล์ PDF ผ่าน Bouncycastle บน Java

เมื่อวานมีความจำเป็นต้องใช้ Jasper Report เพื่อทำการออก Report แล้วจำเป็นต้องใช้ iTextPDF เพื่อทำการ Sign Certificate บึ้มมมม กลายเป็นโกโก้ครั้ช!!!!!! Report ออกไม่ได้ เรามาค่อยๆ Resolve ปัญหานี้กันครับ เราเริ่มจาก Dependency ของ library ของ Jasper Report กันก่อนครับ (ในที่นี
2 min read
สวัสดีปี 2561 แล้วปี 2560 หล่ะ ที่ผ่านมามีอะไรคืบหน้าบ้าง
Private

สวัสดีปี 2561 แล้วปี 2560 หล่ะ ที่ผ่านมามีอะไรคืบหน้าบ้าง

ที่จริงเป้าหมายของตัวเอง อยากจะเขียน Blog ให้ได้อาทิตย์ละ 1 บทความ และสุดท้ายฉันเองนั้นแหละที่ทำไม่ได้ ฮ่าๆๆ ต้องพยายามกันต่อไปครับ ปีนี้จะพยายามให้ได้มากขึ้นครับ หายไปเกือบปีเลยทีเดียว ถือว่าเป็นวันฤกษ์งามยามดีที่จะได้เขี
จัดการกับ Legacy Project ด้วย Docker, Jenkins, Git และความขี้เกียจ
Docker

จัดการกับ Legacy Project ด้วย Docker, Jenkins, Git และความขี้เกียจ

วันนี้ ผมจำเป็นต้องทำการขึ้นระบบและ Support Software ที่ตัวเองทำขึ้นมาเมื่อ 2-3 ปีที่แล้ว แต่ด้วยความที่มัน Legacy ไปแล้ว จะเขียนใหม่ก็คงไม่คุ้มทุน เลยพยายามหาวิธีจัดการมันให้อยู่หมัด และง่ายที่สุด ตอนแรกลังเลว่าจะใช้ VM ในการจั
1 min read
"สุขสันวันเกิด" กับวันที่ใกล้จะหมดไฟ
Private

"สุขสันวันเกิด" กับวันที่ใกล้จะหมดไฟ

"Happy Birthday to me" นี่เราอายุเท่าไหร่แล้ววะเนี่ย (เริ่มตีมืนลืมอายุตัวเอง เอาเข้าจริงก็ ลืมจริงๆนั้นแหละ ถถถถถถถ) มองย้อนกลับไปหลายๆอย่าง ตั้งแต่เริ่มเรียนมัธยม เข้ามหาลัย ออกมาทำงานเผชิญโลกกว้าง แต่ละครั้งที่เปลี่ยนผ่าน
สรุปการไปแบ่งบันเรื่อง Docker ที่ มอ. ภูเก็ต
Docker

สรุปการไปแบ่งบันเรื่อง Docker ที่ มอ. ภูเก็ต

เมื่อวันเสาร์ที่ 18 มีนาคม 2560 ผมมีโอกาสได้รับเชิญไปพูดคุย แนะนำในเรื่องของ Docker ขั้นพื้นฐาน เพื่อที่จะสามารถนำไปต่อยอดในการนำไปเป็นส่วนหนึ่งของการพัฒนาซอฟแวร์ของตัวเองได้ โดยเป้าหมายที่ผมตั้งไว้ ผมอยากให้น้องๆได้ใช้ลองงาน Component ต่างๆของ Docker ได้ครบทุกตัว เพื่อให้
1 min read
มาแก้ปัญหา Restore Package บน Visual Studio for Mac ไม่ผ่าน เพราะเน็ตช้ากัน
.Net MVC

มาแก้ปัญหา Restore Package บน Visual Studio for Mac ไม่ผ่าน เพราะเน็ตช้ากัน

พอดีวันนี้มีเรื่องบังเอิญที่จำเป็นต้องเอา Project .Net Core ที่สร้างเอาไว้บนเครื่อง Windows (Visual Studio 2017) มาเปิดบน Mac ด้วย Visual Studio for Mac หลังจาก Clone Project จาก Git ลงมา พร้อมเปิด Solution ด้วย Visual Studio for Mac ก็
1 min read
มา Resize รูปทีละหลายๆรูปบน OSX แบบง่ายๆกัน
OS

มา Resize รูปทีละหลายๆรูปบน OSX แบบง่ายๆกัน

ปัญหาของตัวผมเองเลยครับ ว่าต้องการที่จะ Resize รูปประมาณ 30 รูป โดยทุกรูปจะ Resize ให้ขนาดเท่ากันหมด จะให้กด Resize รูปทีละรูปก็กะไรอยู่ (ไม่ขยันขนาดนั้น ผมขี้เกียจจะตาย) เลยหาวิธีที่จะ Resize รูปบริมาณมากๆในครั้งเดียว แน่นอนว่า
1 min read
มาเปลี่ยนชื่อไฟล์หลายๆไฟล์ในครั้งเดียวบน OSX กัน
OSX

มาเปลี่ยนชื่อไฟล์หลายๆไฟล์ในครั้งเดียวบน OSX กัน

ผมเชื่อว่าหลายๆครั้ง เราก็มีความจำเป็นที่จะต้องเปลี่ยนชื่อไฟล์จำนวนมากๆ ให้เป็นไปตามแนวทางเดียวกัน (โดยเฉพาะไฟล์รูป) วันนี้มีเทคนิคง่ายๆ ง่ายแบบไม่กี่คลิก แถมไม่จำเป็นต้องลงโปรแกรมอะไรเพิ่มเข้าไปเลยซะด้วย อันดับแรกเลือกไฟล์ที่เราต้องการเปลี่ยนชื่อให้หมด แล้
1 min read
ปี 2559 ที่ผ่านมา มีอะไรบ้าง?
Private

ปี 2559 ที่ผ่านมา มีอะไรบ้าง?

ก่อนอื่นผมก็ต้องกล่าวคำว่า "สวัสดีปีใหม่ 2560" ครับผม สำหรับบทความนี้ ก็เป็นการทบทวนตัวเอง (ของผมเองนี่แหละ) ว่าตลอดระยะเวลา 1 ปีที่ผ่านมา มีเรื่องอะไรที่สำคัญๆ เกิดขึ้นบ้าง เรียนจบแล้วจ้า ก่อนอื่นก็ต้องเป็นเรื
วิธีแก้ปัญหา Openresty ไม่สามารถ resolve service name ได้ใน Docker
Docker

วิธีแก้ปัญหา Openresty ไม่สามารถ resolve service name ได้ใน Docker

ปกติแล้ว เวลาเราใช้งาน Docker แล้วต้องการให้ Container หรือ Service ตัวนึง ไปติดต่อกับ Container หรือ Service อีกตัวนึง เราจะอ้างอิงโดยใช้วิธีการใช้ชื่อ Service ในการอ้างอิงได้เลย แต่เมื่อต้องการใช้ Openresty จะต้องมีการ Set
1 min read
มาทำ Server OpenVPN สำหรับมุดท่อไปต่างประเทศกันด้วย Docker
OpenVPN

มาทำ Server OpenVPN สำหรับมุดท่อไปต่างประเทศกันด้วย Docker

ช่วงนี้กระแสมุดท่อมาแรง อันเนื่องมาจาก พรบ. คอมพิวเตอร์ตัวใหม่ที่กำลังจะประกาศใช้ในอีกไม่กี่วันข้างหน้านี้ เราก็จะมาแนะนำการทำ Server OpenVPN เป็นของตัวเอง เอาไว้ใช้ส่วนตัวกันครับ แต่จะให้ติดตั้งด้วยการใช้ Command แบบปกติ มันก็ดูธรรมดาและค่อนข้
2 min read
gitignore สำคัญไฉน
Git

gitignore สำคัญไฉน

ผมเชื่อว่าคนที่เพิ่งเริ่มใช้งาน git (หรืออาจจะใช้งานไปนานแล้วก็เป็นได้) ประสบปัญหาเวลา commit code ขึ้น git แล้วไม่ต้องการให้ไฟล์บางไฟล์หรือไฟล์บางประเภทขึ้นไปอยู่บน repository ของเรา เช่น * ไฟล์ binary ต่างๆ * ไฟล์ config ต่างๆ ที่ไม่ควรขึ้นไปอยู่บน repository
Private

ทุ้มอยู่ในใจ

วันนี้ไม่รู้คิดอะไรขึ้นมา ก็เอาเฟสบุ๊คอันเก่ามาเปิดดู หลังจากที่ไม่ได้เปิดขึ้นมาหลายปี พร้อมกับอุทานในใจว่า "นี่ผ่านมากี่ปีแล้วนะ ทำไมยังรู้สึกว่ามันยังผ่านไปไม่นาน" ผมยังนึกถึงเรื่องในสมัยมัธยมฯ นึ
วิธีการแก้ปัญหาช่องโหว่ httpoxy บน nginx ที่ตั้งค่าเป็น Load Balancing
Nginx

วิธีการแก้ปัญหาช่องโหว่ httpoxy บน nginx ที่ตั้งค่าเป็น Load Balancing

เมื่อไม่กี่วันมานี้ ได้มีการประกาศช่องโหว่ที่สำคัญตัวนึงคือ httpproxy ซึ่งเปิดโอกาสให้ Hacker สามารถปลอมแปลงค่า Proxy เพื่อดึง Traffic ไปตามที่ตนต้องการได้ ซึ่งส่งผลกระทบเป็นวงกว้าง (Programming Language ที่ส่งผลกระทบหลักๆ ก็จะเป็น PHP, Go, Python) สามารรถอ่านรายละเอียดเพิ