[C#] Guidelines for Exception Handling

หลังจากเขียน Code ในการทำงานมาหลายปี พอดีเจอบทความนึงที่น่าสนใจ ผมเลยทำความเข้าใจ และสรุป เกี่ยวกับ Exception ดังนี้ครับ Exception คือ อะไร ? Exception คือ การแจ้งข้อมูลข้อผิดพลาดที่เกิดขึ้น จากการทำงานของระบบครับ มันมีกลุ่มที่เราสามารถจัดการเองได้ ใช้ Try Catch เข้าช่วย หรือจัดการไม่ได้เลยพวกกลุ่ม Error Guidelines for Exception Handling – Catch only the exceptions that you can handle. เวลาเขียน Code ใน Method หรือ Class ให้จัดการ Exception ที่น่าจะเกิดขึ้นได้กับชิ้นงานที่ทำอยู่ และพยายามแจ้งกับ User ดูภาษาที่เข้าใจง่าย ส่วน Exception นอกเหนือจากนี้ ปล่อยให้ Caller เป็นคนจัดการ เข่น ถ้าทำ Component ในการอ่านไฟล์ สิ่งที่เราสนใจ – Don’t hide (bury) exceptions you don’t fully handle. ใช้ Catch เท่าที่จำเป็น บางเรื่องเราไม่จำเป็นต้องรับมาหมด โยน(Throw) ให้คนที่เกี่ยวข้องจัดการดีกว่า อย่าซ่อน Exception เพราะ คิดว่า User จะตกใจ เช่น – Use System.Exception and general catch blocks rarely. จาก Code นี้ ผมเรียก Exception ดังนี้ – Use throw; rather…

Artefact vs. Artifact

พอดีได้อ่านบทความนึงที่เกี่ยวกับ Software Engineering เจอคำศัพท์ที่น่าสนใจครับ “Artefact” คำนี้ไม่คุ้นเลยย ตอนที่ใช้ Hudson กับ Jenkins เจอแค่คำนี้ “Artifact” แล้ว 2 คำนี้มันแตกต่างกันอย่างไรหละ ในแง่ของภาษาเขียนกันก่อน ในแง่ของความหมายหละ ในแง่ของความนิยม ในแง่ของ Software หลังจากที่รู้แล้วว่า มันเป็นการเขียนคำคนละแบบสไตล์ British กับ American ลองมาดูในแง่ของ Software บ้าง – ผมเจอการนิยามที่น่าสนใจ ดังนี้ Artifact และ Software Artifact (ผมขอใช้ Artifact นะ แต่สำหรับคำที่ผมตัดมาจากต้นฉบับของไม่แก้ไขนะครับ) จบสักทีกับการลองนั่ง research เล่นๆครับ

ลองใช้ GParted จัดการ partition

หลังจากตอนแรกที่คิดว่า 10 GB น่าจะพอสำหรับ DB2 นะ แค่ลองไปแล้ว ไม่อ่า เกือบเต็ม ผมเลยติดสินใจว่าเพิ่ม Disk ใน VM อีก 5 GB ครับ (ขอ Host เองก็มีไม่พอแล้ว มี 500 GB ต้องใช้อย่างประหยัด) การเตรียมตัว Download GParted Live CD มาให้เรียบร้อย หรือใช้ Ubuntu Live DVD/USB ได้ครับ (ผมใช้ GParted Live CD เนื้อที่ HDD มีจำกัด) สำหรับ VMWare Player + VMWare Workstation ถ้าเป็นพวก Virtual Box สามารถ Config ในส่วน System ได้เลย อย่าลืม mount ไฟล์ Live CD ที่ CD Drive ถ้าเครื่องจริง ไป Set ที่ Bios ได้เลย และใส่ Live CD/USB รอเลย ทำไมต้อง GParted จาก Live DVD/USB หละ GParted ปรับๆ ย้ายๆ ทดสอบ หมายเหตุ: ถ้าใช้จาก Ubuntu Live DVD หน้าตาจะดูดีกว่ามาก พิมพ์หา gparted แล้วเรียกใช้ได้เลย

สรุป Note เกี่ยวกับ Bash Shell

หลังจากไม่ได้แค่พวก Bash Script มาปีนิดๆ วันนี้ลองมาเล่น ubuntu ปรากฏว่าลืม เลยมาเขียน Note นิดหน่อย บรรทัดแรก ต้องใส่ ถ้าไม่ใส่ชื่อ Error ว่า “command not found” ลอง Run แล้วขึ้น Error “Permission denied” ต้องเพิ่มสิทธิ Execute Beginners/BashScripting on Ubuntu

[DB2] Install DB2 11.1 on Ubuntu 16.04

พอดีอยากลองศึกษา DB2 กับตัว Docker แต่ความรู้พื้นฐานของ Linux ไม่ค่อยมีเลย ใช้แต่ GUI มาตลอด (Ubuntu GUI สวยนะ) ผมเลยลองมาศึกษา Linux ปกติก่อนและ เอาให้เชี่ยวระดับแล้วค่อยข้ามไป Docker มาเข้าเรื่องดีกว่า สำหรับการลง DB2 11.1 Ubuntu โดยใช้ตัว Command Line สิ่งที่ต้องเตรียม ลงมือเข้า Terminal ลุยติดตั้ง Verify DB2

Rewrite code is Refinance !!!

Blog นี้พยายามเขียนเป็น 2 ภาษา แม้ว่าผมจะรู้ภาษาอังกฤษแค่งูๆปลาๆนะครับ เข้าเรื่องเลยดีกว่าลองมาดูคำศัพที่คิดว่าควรรู้กันก่อน ทำไมต้อง Refinance แล้ว Refinance มันไปเกี่ยวกับ Rewrite code ยังไง ? ลองคิดดูทำไมเราต้องเขียน Code ใหม่หละ ? รู้จักกับ Technical Debt ก่อน แล้วที่เขียน Code ที่เขียนใหม่มันไม่ต่างกับ Refinance เหรอ  ? แล้ว อะไร คือ สิ่งที่ดีที่สุดหละ ปิดท้ายด้วย Code ที่คิดเอง ไม่รู้มีคนคิดซ้ำไหมนะ ลองอ่านดูครับ ^___^ Rewrite Code is Refinance,but Refactor is the best.

เพิ่ม keyboard ภาษาไทยให้ ubuntu

จะลองกลับมาใช้ VM Linux จริงจังและ เลยลงผ่าน VMWare Player ปรากฏว่ามัน Auto หมด อ้าวลืมลงภาษาให้ ที่นี้มาดูวิธีการตั้งค่าภาษาต่างๆกับ Keyboard ครับ การตั้งค่าภาษาให้ Keyboard เท่านี้พิมพ์ภาษาไทยได้แล้ว Reference

#เรามาเขียนโค้ดได้ไง

วันนี้เพิ่งมาเล่น FB เห็น Tag นึง น่าสนใจ #เรามาเขียนโค้ดได้ไง ผมเลยมาจดลง Blog ไว้ดีกว่า สำหรับรูป Featured ด้านบนเป็นเครื่องคอมเครื่องแรกที่ได้มาครับ Win 98 ไส้ในเป็น AMD จำรุ่นไม่ได้และ ความเร็ว 550 MHz HDD ตอนนั้น 10 GB มั้ง (เครื่องนีปุ่ม Turbo ด้วยนะ ผมกดมันตลอดเลย 5555) ช่วงแรกไม่เคยสนใจคอมเลย ผมเพิ่งมาสนใจพวกฝั่ง IT ตอนเรียน ม.2 มีคนชวนเข้าชมรม Robot เลยเรื่องเข้าโลกสายนี้มากขึ้น จนอยู่ยาวมาถึง ม.6 โดยตอนนี้สิ่งที่ได้ สอบตรง และ ยุค O-Net A-Net ทำไมวนมาสายคอมได้หละ เริ่มเข้าสู่โลกแห่งการ Debug (Coding) ทำงาน ต่อไปหละ

แก้ปัญหา 0x0000007B Blue Screen ใน VirtualBox

หลังจากบทความที่แล้ว “เปิดไฟล์ VMDK บน Virtual Box” คราวนี้ผมลองย้ายมาในที่อีกเครื่องนึง แล้วเปิด VM ขึ้นมาครับ โอ้วววว Microsoft Signature – Blue Screen of Dead ครับ การจัดการกับปัญหา Blue Screen สิ่งที่เราต้องทำ คือ ดู Error Code สำหรับเคสนี้ Error Code = 0x0000007B (มันหมายถึง มีปัญหาเกี่ยวกับ I/O ครับ ต่อไปมาดูวิธีแก้ใน Virtual Machine ครับ