[C#] ลองใช้งานตัว DebuggerDisplayAttribute

.NET Core

หลายครั้ง เราอยากดูค่าของ Property ต่างๆ ใน Object ที่สนใจ เมื่อก่อนเราต้องมาไล่ดูทีละตัว ซึ่งมันไม่สะดวกเลยครับ ตามรูปด้านล่างเลย หรือ ถ้า Advance ขึ้นมาหน่อยใช้วิธี Override ToString() เอาครับ ซึ่งมันตอบโจทย์ระดับนึง แต่ถ้าเราต้องการใช้ ToString() ในเคสอื่นๆหละมันไม่จะไปขัดกับตอนแรกที่ทำ เพื่อจะ Debug ครับ DebuggerDisplayAttribute พระเอกของเราครับ เจ้าตัว DebuggerDisplayAttribute เอามาช่วยให้เราดูค่าของ property ที่ใช้ประจำได้สะดวกขึ้น โดยเพิ่ม Attribute นี้ที่หัวของ Class และกำหนด Property + Expression ที่ต้องการแสดงครับ หลังจากใช้ DebuggerDisplayAttribute พบว่า Reference

Software Telemetry คือ อะไร

Earth observations taken by Expedition 44 crewmember

ตัวคำนี้ผมได้ยินมาตั้งแต่สมัยตอนทำ Thesis ว่ามันเอา metric ไปใช้ต่อ แต่คิดว่ามาเขียนให้เป็นรูปเป็นร่างดีกว่า เผื่อต้องมาลองย้อนนึกๆ อีกครับ โดยก่อนที่เราต้องมารู้จัก Telemetry สิ่งที่ต้องรู้อย่างแรก นอกจาก Software จะถูกออกแบบให้มันทำงานตาม Business ใน Domain นั้นๆ แล้ว สิ่งที่ตัว Software ที่ดีควรจะทำเพิ่ม เพื่อเอามาติดตามปัญหา หรือจะทำ Preventive Maintenance มี 3 ส่วน ได้แก่ แล้วที่นี้ตัว Software Telemetry คือ อะไร Reference

The Cloud Camp Week#04 (Agile)

สำหรับสัปดาห์นี้มาพักเรื่อง Technical บ้าง มาคั่นด้วยแนวคิด Agile กันครับ ที่เป็นแนวคิดมาแรงในยุคนี้ หลายที่ทำสำเร็จ หลายทีทำตาม หลายทีล้มเหลว อย่างบริษัทที่ผมทำอยู่ ทำเพราะ CMMI ใส่คำนี้ 55555 (เมาส์ได้ทั้งวัน เรื่องนี้) สำหรับ Blog นี้ที่จดๆมา จะมีหัวข้อ ประมาณนี้ Introduction to Agile Agile คืออะไร แนวทางการทำงานเป็นขั้นตอนและงานด้านเอกสารลง เน้นการสื่อสาร เปิดรับ Feedback มากขึ้น เพื่อให้ตัว Product ออกมาได้ตรงตามที่ต้องการมากที่สุด ส่วนตัวผมไม่อยากใช้คำว่า Agile แล้วไว เพราะมันเป็นคำที่ผู้บริหาร ฟังไปแล้วเข้าใจผิดมากที่สุดเลย แบบเดิมใช้ 4 เดือน Agile แล้วต้องเหลือ 2 เหลือ ลดลงจริง แต่เป็นคนทำงาน ฝ่างงงง สำหรับคนที่ทำงานสายนี้ มี Cert เหมือนกันนะ อันนี้เพิ่งรู้เลย มี 2 ตัว Doing Agile / Being Agile อันนี้เป็นคำที่ผมไม่เคยได้ยินจากใน บ นะ หรือ Consult CMMI โผล่มาคุ้ม Scrum เลย แล้ว 2 คำนี้มันต่างกันยังไงนะ ? ** ถ้า ผบห ระดับสูงลงมาใน Loop ด้วย นอกจากการสั่งๆ ให้ทำ จะดีมาก Why Agile? เพราะแบบเดิมที่ทำกันมาอย่าง Waterfall ซึ่งมีการทำงานชัดเจน เป็นลำดับขั้นตอน (Defined Process) ซึ่งมันให้ Feedback มาช่วยท้ายๆของ กระบวนการ ทำให้แก้ไขได้ยากขึ้น + Cost…

Windows11/10 OpenSSH Server Public Key authentication

empty train rail with light

ภาพรวมการทำงานที่ Client ใช้ ssh-keygen สร้าง Private + Public Key ขึ้นมา จากนั้นนำ Public Key ที่วางที่เครื่อง Server ในไฟล์ authorized_keys จากนั้นจะเป็นการทดสอบ Connect โดยมีขั้นตอน ดังนี้ How do you generate the SSH key pair ใช้คำสั่ง ssh-keygen เพื่อสร้าง SSH key pair ตอน Run คำสั่ง ssh-keygen จะใช้ Algorithm RSA ซึ่งอาจจะไม่ปลอดภัยในปัจจุบันแล้ว ถ้าต้องการใช้ Algorithm อย่าง ED25519 ตอนสร้าง SSH key pair แก้ไขคำสั่ง ดังนี้ โดยมันจะถาม Path ด้านล่าง ว่าให้เก็บที่ Path /home/<<YOUR_USERNAME>>/.ssh (C:\Users\<>/.ssh/) และชื่อไฟล์ id_rsa หรือ ถ้าใช้ ed25519 ก็จะเป็นชื่อไฟล์ id_ed25519 จากนั้นจะเป็นการกำหนด passphrase จะเป็นส่วนของ Password ที่ต้องใช้คู่กับ Key ถ้าไม่ต้องการกำหนดก็สามารถกด Enter ข้ามได้เลยครับ และรอระบบสร้าง public (.pub) และ private key ครับ โดยที่ทั้ง 2 ไฟล์นี้ ปกติแล้วจะถูกสร้างที่ Path C:\Users\<YOURUSERNAME>/.ssh Algorithm Default Private Key Name Default Public Key Name RSA id_rsa id_rsa.pub ed25519…

AZ-104: Prerequisites for Azure administrators

azure

สำหรับอันนี้จะเน้น Recap AZ-900 การใช้ Tools ต่างๆ ได้แก่ Azure portal / Azure Cloud Shell / Azure PowerShell และ Azure CLI Configure Azure resources with tools Use Azure Resource Manager Configure resources with Azure Resource Manager templates Automate Azure tasks using scripts with PowerShell Control Azure services with the CLI Deploy Azure infrastructure by using JSON ARM templates

XConf Thailand 2023

Note Blog นี้จดแบบตื่นเต้นไปครับ และอยู่ไม่จนจบงานด้วย เช้าแวะไปหาหมอ เสร็จเร็วเลยแวะเข้างาน และบ่ายงานเข้า เลยเป็นที่มาว่า Blog ออกช้า สำหรับหัวข้อที่จดๆมามี Green software: How can tech contribute to worldwide sustainability effort? – (Thai) by Chakrit Riddhagni Tech ปล่อย Carbon 2% ของโลก (carbon emission) พอกับอุตสาหกรรมการบิน โดยมาจากกลุ่มใหญ่ Data Center / Cloud Green Software แนวคิด SW ลด carbon emission โดยมี 3 มุม Energy Efficiency / HW Efficiency/ และ Carbon Awareness เดี๋ยวจะมีแตกย่อยไปลง ซึ่งทำได้แต่ต้องมีวิธีวัดที่ชัดเจน (measurement) Green Software: Energy Efficiency Green Software: HW Efficiency Green Software: Carbon Awareness 1kw ไม่เท่ากัน Spatial Facfor โรงไฟฟ้า solar ถ่านหนิน Carbon Hack 2022 project น่าสนใจ Org Carbon Model ถ้าสนใจด้านนี้ Self-service for delivery value with platform engineering -(Thai) Bhuridech Sudsee and Variya…

The Cloud Camp Week#03 (Container 101)

สำหรับ Week มองว่าการทบทวนเรื่อง Container ของตัวผมเอง ใช้งานมาระดับนึง มีเรื่องที่รู้ และไม่รู้ด้วย ตาม Style การเรียนของผม แบบลักจำมาจากงาน Meetup ครับ มาลองดูสรุปสำหรับสัปดาห์นี้กันครับ 1. Why Container? ก่อนที่เราจะรู้ว่าทำไมถึงต้องใช้ Container ต้องมา Recap กันก่อน ว่าเมื่อก่อนเอา Software ไปติดตั้งที่อื่นกันยังไงครับ จาก Code > Build > Executable File เจ้าตัว Executable File มาห่อเป็น Software Package เอาติดตั้ง ยุคต่างๆของการติดตั้ง Software Package เล่าไว้หน่อยเผื่อน้องๆจบใหม่อ่าน โผล่เข้ามายุค Container เลย โดยมี 3 ยุค Note: Magic ที่ช่วยให้ Container มีอิสระ (Isolation) โดย key ที่ทำให้ Container เกิดขึ้นมา เนื่องจากตัว Linux Kernel มีตัว C-Group / Namespace ขึ้นRef: – What Are Namespaces and cgroups, and How Do They Work? – NGINX- Understanding Linux Namespace Types | by Luis Soares | Medium 2. Containers Basics – Docker Architecture – Docker…

Git Command 101

ปกติผมจะไม่ค่อยใช้ Command เลย นอกจากเขียนพวก Script ต่างๆ จะไป Google / Chat GPT เอาครับ คราวนี้มาลองสรุป Git แบบ Command กันครับว่ามีอะไรบ้าง git init git config git add git rm git status git commit git reset git remote git push git clone git fetch / git merge / git pull git branch git switch / git checkout git switch มันมีจุดเด่นเหนือกว่า git checkout มันออกแบบมาแก้ปัญหา แจ้งเตือนกรณีมีไฟล์แก้ และยังไม่ Commit อ๋อ แล้วเจ้า git checkout มันมีความสามารถหลายอย่างเลย ลองไปดูได้จากอันนี้ ปิดท้าย สำหรับความสัมพันธ์ของ Local / Remote จาก Action ต่างๆ สามารถดูรูปนี้ได้เลย จริงๆ ตัว Git Command มีมากกว่านี้อีกครับ อย่างพวก git tag / git slash เป็นต้น อันนี้ลองให้เห็นภาพ จากเดิมที่ผมกดจาก UI หรือหน้าเว็บ เปลี่ยนมาให้ Command แทน ถ้าต้องการศึกษาเพิ่มเติม ลองไปเล่นจาก Interactive Web…

Optimize Container image size

Container ships

จาก Blog ตอนก่อนที่ไปพบว่า docker image มีขนาดใหญ่มาก และถ้าปล่อยไปนานๆ ไม่น่าจะดีแน่นๆ หลังจากแก้ปัญหาเรียบร้อยไป ผมขอสรุป Step การ Optimize Docker image ครับ //ดองไปหลายเดือนกว่าจะเขียนจนจบได้ Best Practice – Use Minimal Base Images พยายามเลือกใช้ Base Image ที่เล็กที่สุด และน่าเชื่อถือด้วยครับ ส่วนใหญ่จะเป็นพวกตระกูล ข้อสังเกตุ – Minimize the Number of Layers การ Run Command แต่ละรอบ COPY กับ RUN chowns นี้เพิ่ม Layer ได้เหมือนกันนะ เป็นไปได้ ยุบรวมกัน ยิ่งถ้า Copy Folder มาแล้ว มันมี Sub Directory เยอะ พอแยก Command กัน ได้เป็นหลายชั้นเลย แบบอันนี้ [Container] แก้ปัญหา docker image โต ADD กับ RUN สามารถ Optimize ได้นะ เคสนี้จะเป็นเคสที่เรา download package จาก remote มาทำอะไรสั่งอย่าง และ execute command ต่อ ส่วนคำสั่ง RUN เป็นไปได้ยุบให้เหลือน้อยที่สุดครับ โดยตัวอย่างจะอยู่ในเรื่องถัดไปพอดีครับ – Installing dependencies & Cleaning in same layer เป็นไปได้ ไม่จำเป็น ไม่ต้องไปลงอะไรเพิ่มนะครับ แต่ถ้าเสี่ยงไม่ได้…