ลอง Tim Hortons ครั้งแรก

จริงๆร้าน Tim Hortons มันเปิดในไทยนานแล้ว หลายปีแล้วด้วย ผมจำไดว่าช่วงที่เปิดสามย่านมิตทาวน์ มีแล้วนะ แต่ก็ไม่ได้เข้าไป เราจะสะสมดาว Starbuck แต่ทว่าวันนี้แวะมาทำธุระแถว G Tower พระราม 9 ในวันอาทิตย์นี้แหละ พอจัดการธุระเสร็จ จะแวะมา Starbuck ทำงานต่อ ปรากฏว่ามันปิด เลยเพิ่งรู้แต่ละสาขาเวลาเปิด-ปิด ไม่เท่ากันด้วย หันไปฝั่งตรงข้ามเจอร้าน Tim Hortons ลองเลยและกัน สำหรับเมนูที่สั่งจะเป็น Ice -Americano Size M ผมโอเค มีความเห็นกาแฟ หอมด้วยนะ ราคา 80 บาท ช่วงโปรพอดี ลดไป 40 บาท Bacon & Egg Sriracha เมนูนี้ผมบอกเลย แอบผิดหวังนะ มันไม่ได้เผ็ดอย่างสักนิดเลย นึกว่าพอแบบมีคำว่าศรีราชา มันจะมีนิดนึง โดยรวมอิ่ม อร่อยอยู่ท้องแหละ ทานกับ Ice -Americano ได้อย่างดีเลย ขนมปังไข่ดาว เบค่อนอบกรอบ ไข่ดาวสุก ชีสด้วย ราคา 169 บาท เมนูอื่นๆ นั่งทำงานไปยาวๆตั้งแต่บ่ายจนถึงเย็นเลย ส่วนบรรยากาศในร้านสวยดีครับ แม้ตอนแรกแอร์จะไม่ค่อยเย็น อาจจะเพราะยังไม่มีลูกค้าเลยไม่ได้เปิด แต่ผ่านไปสัก 20 นาทีดีขึ้นครับ ^__^ อ๋อแล้วพวกปล๊๊กไฟ มีน้อยนะ ถ้าเทียบกับของ Starbuck ครับ

[Tutorial] การติดตั้ง Portainer และการใช้งานเบื้องต้น

Blog ตอนนี้มาติดตั้ง Portainer เอามาแทน VM อันเดียวที่ลงไว้ 3-4 ปีก่อน แล้วพังไปครับ รอบนี้ไหนๆก็ลงใหม่แล้ว และรอบก่อนที่สอน Docker @BSRU มีคนถามถึง Portainer เยอะเหมือนกัน เลยคิดว่ามาเขียน Blog ไว้ด้วยครับ Portainer คือ อะไร ? เครื่องมือที่ใช้จัดการ Container ผ่าน Web Interface ครับ โดยสามารถจัดการได้ทั้ง docker / podman (ทำได้ แต่ต้องมี Step นิดนึง) / Kubernetes / Azure Container Instance เป็นต้น จริงๆมันทำได้มากกว่านี้นะ แต่ต้องซื่อ Business Edition แทนครับ สำหรับใน Blog นี้จะใช้ตัว Community Edition ครับ อย่างที่เกริ่นไปจัดการ Container ได้ ทำอะไรได้บ้าง เช่น สำหรับ Blog นี้สอน 3 ส่วนครับ ติดค้างเรื่องกับคนที่เรียน Blog Docker เมื่อเดือนก่อนไว้ด้วย ติดตั้ง Portainer  การติดตั้ง Portainer ของจะเลือกใช้ docker compose นะครับ แต่สามารถใช้ Command ได้ครับ อธิบายกันสักนิด ผมจะอิงจาก docker compose หลังจากเตรียมอะไรเรียบร้อยแล้ว ผมใช้ docker compose เป็นหลักนครับ สามารถ Run คำสั่งตามนี้ได้เลย เมื่อเข้า https://localhost:9443 เป็น https นะ เพราะเราใช้ portainer generate self-cert แล้ว…

Event Sourcing Pattern

เรียกว่าจดไว้กันลืม และกัน หัวข้อจะประมาณนี้ ก่อนจะมารู้จัก Event Sourcing Pattern แบบเดิมทำอย่างไร เห็นไหมครับว่า ทั้ง OLTP และ OLTP มี Concept ที่ต่างกันไป Event Sourcing อยู่ตรงไหน Fcommand(state, payload) => [New State / events]; Event Sourcing ensures that all changes to application state are stored as a sequence of events. Ref: Event Sourcing (martinfowler.com) เอาอะไรมาเก็บ Event Store มี Open Source หลายตัวที่เก็บได้ อาทิ เช่น Update พี่ปุ๋ย Somkiat.cc มีมาเสริมนะ ถ้าไม่ซับซ้อนมากสามารถใช้ File System ได้นะ Use-Case Example – Blockchain – Microservice เอาแนวคิดของ Event Sourcing + CQRS เอา Event Sourcing ต้องดูอะไร เพิ่มไหม ? อีก Blog ที่แนะนำ Lightweight implementation of Event Sourcing using PostgreSQL as an event store 🚀🕗🔙🕘 – DEV Community มองการทำงานแบบ Event…

[C#] Dump Object as JSON (Visual Studio)

ทำไมต้อง Dump Object as JSON Dump Object as JSON ใน Visual Studio มีขั้นตอนดึงค่าใน Class / DTO / Object ออกมาเป็น JSON ง่ายๆ ดังนี้ ตอนนี้เราจะได้ JSON ที่สวยงาม พร้อมเอาเอาไปใช้งานต่อแล้วครับ เช่น ถ้าทำเอาไปทำ Test วาง TextFile แล้ว Deserialize กลับมาเป็น Object อีกทีครับ สุดท้าย เป็นไปได้ อยากทำให้ Object ที่ใช้เล็กที่สุดนะครับ Object ยิ่งใหญ่ มันซับซ้อนในการ Mock ครับ

ได้คอมบริษัทในรอบเกือบๆ 9 ปี

ตามหัว Blog แหละครับ ผมทำงานอยู่บริษัทเดิมมา 11.3 ปี ประมาณ แล้วเวลามีงานออก Site ต้องเอา Notebook ไป เหมือนบริษัทไม่มีให้ เลยเอาของส่วนมาใช้ ระหว่างนี้มีขอเครื่องไปนะ ไม่ได้ แล้วระหว่างนี้น่าจะปี 19-20 ได้ PC มาแล้ว PC นั้นอยู่กับผมได้ไม่นาน เพราะเกิด Covid แล้วยุคนั้นอุปกรณ์ IT หายาก มีงาน Project กับหน่วยงานแนวๆรัฐด้วย และค่าปรับแรง PM ก็นะ เลยเสียสละคอมตัวเอง ได้คำลอยๆว่า เดี๋ยวทำเรื่องเบิกใหม่ปีหน้า สรุปเบิกใหม่ ก็โดนตัด รู้งี้สู้ปล่อยโดนด่าปรับจังๆดีกว่า ค่าปรับเป็นล้าน กับคอม 2-3 หมื่น เราไม่คิดอะไร ใช่ Dell เครื่องเดิม ของส่วนตัวจนไม่ไหว ช้าอืดมากๆ ทำงานแล้วหงุดหงิด เลยซื้อ มาวันนี้ 2024-07-24 ได้และ แต่ต้องตกลงกับน้องอีก 2 คน น้องเลย น้องๆสละสิทธิ์ไป เพราะเห็นเราบ่นเรื่องคอมเยอะมาก เราเลยได้ Notebook เครื่องนี้มา แต่ไม่แน่ใจว่า ว่าเครื่องนี้ มันจะอยู่กับเราตามอายุที่ Office ปกติใช้งาน 3-4 ปี หรือ จะโดนดึงไปที่ไหนอีก เขียนไว้แหละ เพราะมันเป็น Fact นึงที่เราพบเจอ

จดๆจากงาน Agile Thailand 2024 #ATH2024

ปีนี้ที่จัดงานที่เดียวกับปีก่อนครับ True Digital Park West ครับ งานนี้เป็น Theme AI สำหรับผมรู้สึกมันใช้บ่อยไป แต่ละลองมาฟังดู เพราะเห็นหัวข้อที่สนใจมาจากในกลุ่ม Line ครับ เดี๋ยวรอดูที่จดมาได้นะ Recap ก่อนงานนี้เป็นงานที่แบบ AXONS Talk (คุณยงยุทธ) งาน agile ปีนี้จัดมา 10 ปีแล้ว ย้อนไปผมเอง ผมเองน่าจะรู้จัก CI/CD จากงาน agile + codemania นะ โดยการมาฟังงานพวกนี้เหมือน Connect the dot นะ AXONS เป็นบริษัทในเครือ CPF ซึ่ง Transform เป็น agile มาประมาณ 2 ปีแล้ว จากเดิมงานมองเป็น Project ทำไป แก้ปัญหากันไป จนมี App ภายใน 1800+ Apps และตอนพยายามปรับมาในมุมของ Product มากขึ้น Agile มาช่วยการสื่อสารนะ จากเดิม ทำอะไรไม่ตรงความต้องการ Shift Left ให้คนทำ Software ลองคุย กับคนหน้างานเลย ให้ requirement มัน valid ที่สุด และเป็นเสริมให้แต่ละคนกล้าที่จะเข้าหาคนทางฝั่ง business / stackholder มากขึ้น ใจเขาใจเรา พอคนทำใส่ใจ จากเดิมระบบหน้าตาจะยังไงก็ได้ เพราะเป็น Software หลังบ้านคนใช้ก็ไม่ได้เยอะ ก็จะเน้นไปเข้าใจการทำงานของ User มากขึ้น เอาพวก UX/UI ใน Software และสุดท้ายพยายาม connect the dot ให้มากที่สุดครับ “ทีมเงียบไม่พูด ตามไม่ตอบ…

How to add Podman as an Agent in Portainer

A Possible approach to adding Podman as an environment in Portainer is two ways. The first is to use the Portainer Agent. The other way is to call it through the remote API. Try1: Portainer Agent Start Portainer Agent I tried and it didn’t work. My Environment I found, it cannot read an agent container IP address when starting. The full error is below. Try2: Podman Remote API When the first method doesn’t work, we try another method using the Podman Remote API. The steps are as follows: Note: When I tested on Portainer > Podman, Some feature may not…

[DOTNET] GraphQL บน NET8 ด้วย HotChocolate Library #01 (Query)

สำหรับ Blog นี้ เรียกว่าลองทำ GraphQL ด้วย dotnet core 8 ครับ โดยใช้ library HotChocolate ชื่อมันดูน่ากินดีนะ 555 โดยของหวาน Set นี้มี 3 Lib สำหรับ Blog ช่วงนี้จะเน้นตัว Hot Chocolate ก่อนครับ แล้วค่อยขยับไปส่วนอื่นๆ โดยมีหัวข้อดังนี้ มาเริ่มกันเลย – Simple REST API (GET) ตอนนี้ API ของเราพร้อมใช้งานแล้วครับ -เพิ่มในส่วนของ GraphQL จาก Blog เดิม จดจาก Build GraphQL APIs (Go) พบว่าส่วนประกอบของ GraphQL มี Type / Field (method) / Argument(method parameter) / Resolver (Field Resolver) Test เห็นไหมครับ จริงๆ Graph API ใช่ร่วมกับ REST API เดิมได้นะ Code เต็มๆอยู่นี้ครับ : pingkunga/net8_graphql_HotChocolate_sample (github.com) สำหรับ Blog หน้าจะไปในส่วน CREATE / UPDATE / DELETE ครับ

ค่าปรับแต่ละแบบจาก TOR ของ โครงการ IT

ได้อ่าน และดู TOR มาหลาย Project แล้ว เลยขอสรุปดูหน่อย ว่าถ้างานมันช้า หรือ สะดุดไปไม่ตรงตามเงื่อนไขของการตรวจรับ มันมีค่าปรับอะไรบ้าง อันนี้จากที่ลองๆถามเค้ามาด้วยนะ เลยสรุปมาเป็น Blog สักหน่อย รูปแบบการคิดค่าปรับ ระวังการนับวัน อีกเรื่องที่ต้องระวังการนับวัน ผมในมุมของ Dev เจอ PM หลายคนพลาดตรงนี้มาเยอะ ถ้านับวันผิด ค่าปรับข้างต้นจะเดินโดยไม่รู้ตัวครับ ตัวอย่างการคำนวณค่าปรับ สมมติว่าเรามี Project AAA มีงานหลายส่วนเลยมูลค่าโครงการ 30 ล้าน ระยะเวลาโครงการประมาณ 100 วัน แล้วที่นี้ วันที่ 101 เรายังไม่สามารถ Delivery อะไรได้เลย จนมาถึงวันที่ 135 ล่าช้ามา 35 วัน เราจะโดนค่าปรับอะไรบ้าง รวม 1,855,000 บาท ซึ่งเราคงไม่อยากให้จ่ายแบบนั้นไป ตัวเงินเยอะเหมือนกันนะ 1.8 ล้าน ช่วงแบบ COVID อุปกรณ์ IT ขาด หลายที่อาจจะเอาคอมพนักงานนี่แหละ เอาไปวางเป็น Jump Host ไปก่อน เพื่อเลี่ยงค่าปรับพวกนี้ ให้ทำงานแบบ Remote ได้ซึ่งคอมเครื่องใหม่ที่ให้พนักงาน เอาไปทำ Jump Host แทน ลงทุนไป 2-3 หมื่น แลกกับค่าปรับจริงๆ 1,855,000 บาท มันคุ้มแหละ แต่อย่าลืมเอาคอมมาคืนให้พนักงานด้วยหละ แต่มีอีกหลายเคส พลาดเรื่องง่ายๆ วันทำการ วัน ปกติ ที่ผ่านมาที่เจอกันพวกฝึกอบรม หลัง 30 วันจากที่ได้รับจดหมายแจ้ง 30 วันปกติ หรือ วันทำการ ถ้าคิดว่าเป็นวันทำการ โดนค่าปรับไปเบาๆ 10 กว่าวัน

The Way of Testivus

พอดีไปเจอ Handbook เล่มเล็กๆ ที่อธิบาย เรื่อง การทำ Test ไวได้ดี และสั้นกระชับด้วย 12 หน้าเอง แต่มันใช้ได้ แม้เวลาจะผ่านหลายปีครับ โดยมี 12 ข้อ ดังนี้ครับ Resource