Thailand Meetup: MongoDB Data Modeling Hands-on @SCK-Dojo

วันนี่้มีงานฟรี เลยไปฟังมา จัดที่ SCK Dojo ครับ ตอนไปผมหลง ลง MRT ผิดสถานี และตอนเดินมาเชื่อ Google Map เข้าผิดซอยด้วย 555 โดยสำหรับหัวข้อวันนี้จะประมาณนี้ครับ MongoDB คือ อะไร เป็น NoSQL แบบนึง โดยจะในรูปแบบ Document โดยที่ 1 Document อารมณ์ประมาณ 1 Record แต่มันทำได้ยึดหยุ่นกว่า เช่น ไม่ได้ Strick เรื่อง Field โดยที่ 1 Document จะใหญ่สุดๆได้ 16 MB ซึ่งจะจัดเก็บในรูปแบบ BSON (JSON ที่บีบอัดแล้ว) MongoDB Version ตัว Version ของ MongoDB มี Stable 5 6 7 8 / Rapid พวก .1 . 2 (มันของที่เอาไปใน Stable ถัดไป มาให่ลองก่อน) MongoDB Deployment Tuning อาจจะดู Data แยก Collection ออกมาก่อน แล้วถ้าไม่ไหวค่อยมาท่า Sharding ก็ได้นะ Data Modeling แนวคิดมันจะต่างกับ RDBMS มองตาม App usage (Read / Write Ratio) เน้นที่ใช้กัน 6 ตัว และมี Pattern อื่นๆด้วย สรุปตามภาพนี้ ซึ่งผมก็จิ๊กมากอีกที 55 อ่านเต็มๆที่นี่เลย…

จดๆ จาก Zero Trust Implementation on Cloud

อันนี้จดจากมุมมองของ Dev อาจจะมีจดมาผิด หรือ เข้าใจผิดไป ต้องอภัยก่อนนะครับ อ๋อและก็ผมมาถึงงานสายนิดนึง อาจจะจดไม่ครับ Vocab A zero trust architecture (ZTA) is an enterprise’s cyber security plan that utilizes zero trust concepts and encompasses component relationships, workflow planning, and access policies. Perimeter defense vs Zero Trust Zero Trust ถ้าทำที่ On-Premise ต้องใช้ตัว Software Define Network เข้าช่วย เมื่อก่อนทำได้ยาก อาจจะต้องมี coding จัดการ แต่บน cloud ทำได้ง่ายขึ้น กดจากเว็บได้เลย Core Zero Trust Component เริ่มจากตัว Continuous diagnostics and mitigation (CDM) เอาพวก Threat Inteligence + Complaince / Goverance เข้ามา ตัว Core Policy Enforement Pointโดยเริ่มจาก ตัว Policy Enforement Point ถ้าใน Cloud จะพวก IAM อย่าง Aws IAM / Azure AD เป็นต้น Ref: The Logical Components of Zero…

[KBTG-GO#04] API Security

ทำไมถึงต้องมี Security เพราะการสื่อสาร (Communication) มันไม่เป็นความลับ หรือ ผู้ส่งกับผู้รับอีกต่อไป มือที่สามอ่านได้ และเอาไปทำอะไรต่อ เช่น หลอกในโอนเงิน ปลอมเป็นอีกคนเป็นต้น จึงการเพิ่มในส่วน ciphertext ซึ่งเป็นตัวเข้ารหัสนี่เอง โดยผู้ส่งเข้ารหัส (Encryption) / ผู้รับถอดรหัส (Decryption) ตอนนี้จะเป็นต้ว ตอนที่เรายิง request ไปยังเว็บ มันเกิดกระบวนการ Validate SSL/TLS ซึ่งมีพื้นฐานมาจาก Asymmetric cryptography (public key / private key) Secure connection is enough? ถึงแม้ว่ามีการเข้ารหัสของการสื่อสารแล้ว ยังไม่ปลอดภัยนะ ต้องมี Authentication (เราเป็นใคร) และ Authorization (เรามีสิทธิอะไร) – Authentication Type of Authentication ยีนยัน เราเป็นใคร จากอะไร Authentication method มีหลายแบบ เช่น – Authorization Component สำหรับระบบที่เจอกันมี Pattern 2 แบบ JSON Web Token (JWT) //เหมือนมี Blog ไว้นะ แต่หาไม่เจอ จดใหม่ 55 JWT – string ที่ถูกกำหนดเป็น และมาแก้ปัญหาเดิมๆของ Session ที่มันจำ Server (สมัยนี้ใครจะรู้จัก Session ไหมนะ 555) โดยตัว string เกิดจาก secret sign ด้วย – Why JWT? – JWT Structure…

[KBTG-GO#04] API Design

สำหรับ Week นี้ เป็นบทที่เยอะมาก 555 รอบหน้าแบ่งสอน 2 Week จะดีมาก ส่วนตัวแยก 2 Blog เหมือนกัน 1. REST API – Vocab Components of a URL HTTP verbs GET (ดึงข้อมูล Select) / POST (Create) / PUT (Update) / DELETE Resources พวก Path ที่เราอ้า่งอิงกัน เช่น /orders บราๆ ส่วนใหญ่ผมเรียก EndPoints 555 – RESTful Resource Naming Conventions เวลาไปทำงานกันคนอื่น พอจะเดา patterns และมี standard และก็ Coding เยอะขึ้น เห็นใน Discord มีแชร์ Coding Style Guide เลยเอามาแปะด้วย guide at master · uber-go/guide (github.com) 2. net/http Lib “net/http” ที่มากับ Golang ที่ช่วยให้ขึ้น Server ได้ง่ายๆ 3. Middleware Middleware เป็นตัวกลางที่มาช่วยเพิ่มความสามารถต่างๆ เช่น Logging ให้กับ Object ที่สนใจ Request / Response มี pattern First Class Function – ตัว Function…

How to fix error trustAnchors parameter must be non-empty

ลอง Deploy App แล้วเจอ Error ตามนี้เลย java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty Solution ปกติแล้ว java จะมี TrustStore Location อยู่ 3 จุด นำตัว Cert มาวางตาม Default Location หรือ ไม่สามารถ Custom Location ได้จาก Parameter -Djavax.net.ssl.trustStore และใส่ Password ของ Cert ได้จาก -Djavax.net.ssl.trustStorePassword

[DOTNET] Container cannot start on Podman 2.0.X, Failed to create CoreCLR, HRESULT: 0x80070008

Problem The container cannot start on the error message is Environment Solution Update Podman to Lasted Version, If Podman on RedHat 8.x. My Suggestion is to update RedHat to the latest version (Current 8.9) that comes with Podman 4.6.1. If you upgrade Podman without updating RedHat. Sometimes I found the container crashed when started or received some signal such request / Podman exec etc I assume that Podman in RedHat has dependency with conmon and many packages with OS RedHat, After Update RedHat 8.9. You can try Podman 4.9.x RHEL Upgrade Note Reference

[KBTG-GO#03] Software Testing

0. Go Basic เหมือนมันมา Go Testing เลย ลองอะไรแล้วสงสัยมาแปะในนี้ และกัน แต่อาจจะมีแซมๆที่จุดอื่นบ้าง และก็ Go เป็นภาษาที่ใช้ PascalCase มีกฏระดับนึง แต่อาจจะไม่ Strick เท่ากับ Space ของ Python – Package – Variable + Operator + Control Flow – Function – Loop – Pointers เหมือนย้อนกลับมาเรียน C ยังไงไม่รู้ 555 หลังๆภาษาพวก C# / Java มันจัดการเอง 1. Go Testing Convention Create Go 101 Enviroment ใช้เยอนะ ส่องการตั้งค่าประมาณนี้ Create Go 101 SubTest t.run บราๆ มันดู Copy แปะ ๆ ยังไงไม่รู้ ฝั่ง dotnet มันมี DataRow และ @ParameterizedTest ของ Java เหมือนมี testing – go – golang test parameterized – Stack Overflow เดวธาตุไฟแทรก 55 Test Command แต่กดจาก VS Code ก็ได้นะ ฮ่าๆ มันผ่านแล้วแหละ แต่อยากลองเดิมๆ อาจจะขัดใจสาย TDD ลอง main…

จดๆ จาก Software Architecture Meetup 2024#01

สำหรับวันนี้มี 3 หัวข้อตามนี้ครับ รอบนี้มาช้าหน่อย วุ่นวายกับงานประจำ และขอย่อยก่อน เดี๋ยวมืนเอง และมี มีเวอร์ชันเต็มๆใน Live ด้วยครับ เผื่อผมจดขาดไปครับ Architecture as Algorithm  – Software Architecture คือ อะไร ? set of structure needed to be reason about the system – อะไรสักอย่าง (Set of Structure) ที่มีอธิบายตัวระบบ A Computation is a process that obeys finitely decribable rules Rudy Rucker Rule กฏที่เรากำหนด ถ้าในงานเราเป็น Business Rule นะ โดยที่ Speaker ยกตัวอย่างง่ายๆ การ +1 ถ้าเราสังเกตุดีพบว่า finitely describable rules มันอยู่ในรูป A –(Process)–> B แล้วการทำงานของมันมี Cost นะ ซึ่งผลที่ได้มันขึ้นกับว่า และนั้นแหละครับ Cost ของ Computation ที่เป็นส่วนนึงของ Software Architecture มัน คือ Algorithm มีศัพท์ Computation Complexity ตัว Big O ที่เราคุ้นเคยกัน โดยที่ จริงๆแล้วทุกอย่างมันไปให้อยู่ในรูป A – action-> B หมดเลย Software Architecture ลึกมันก็เป็น Algorithm…

[KBTG-GO#02] Software Design

อันนี้เน้นจด Keyword เหมือนเดิม หัวข้อประมาณนี้ เกือบลืมสารบัญ 55 1. Software Development Approach Problem Domain alight with Solution Space 2. Design Step Understand the problem > Clarify requirement + Define Scope > High Level Design > Proposal & Validation > Deep Drive Design จากนั้น Iterative Increment Design วนซ้ำ 3. Visual Modeling Language Design สงสัยตัว PlantUML มีคนใช้ไหม หลังๆ ผมใช้ Draw.io / excalidraw / Mermaid ตัวหลังผมมองว่า DiagramAsACode 4. API Design at First 5. N-Tier Archtecture อ๋อแล้วมีของ N-Layer อย่างใน Spring แยก Controller(Presentation) / Service(Logic) / Repository (Data) มัน abstraction ไปอีกมุมนึง Note Tier = Physical / Layer Logical 6. Operational Model มีหลายแบบ ตอนนี้ที่ใช้กันเด่นๆ มี 4 แ 7.…