[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 5)

ช่วงนี้ผมอัพ Blog เกี่ยว Course Python ของทาง MITx รัวๆ นะครับ เพราะ ใกล้สอบ Final แล้ว โดยสำหรับใน Week นี้เป็นเรื่องของ OOP เป็นหลัก มาเริ่มกันเลย Object Oriented Programming ทุกอย่างใน Python เป็น Object แต่มี Type ของตัวเอง การทำเป็น Object มันเพิ่มตัว Data Abstraction มากขึ้นครับ โดยรวมสิ่งที่ใช้อยู่ด้วยกัน ผ่านทาง Data Attribute – สิ่วที่เราเก็บ เช่น ข้อมูลพนักงาน มีพวกซื่อ นามสกุล ตำแหน่ง เป็นต้น ครัช Interface – ช่องทาง ที่เราเรียกใช้งาน Object นั้น และเป็นกรอบของ Spec คร่าวๆ ให้สำหรับคนที่นำไป Implement ต่อ Class & Instance ตัว Python เอง มี Object พื้นฐานที่จำเป็นมาให้อยู่แล้ว อาทิ เช่น พวก Data Type ต่างๆ หรือ เป็นเฉพาะด้านอย่าง Math, String เป็นต้น ครับ ทำเป็น OOP แล้วได้อะไรบ้าง จัดกลุ่มเป็น Package ได้ – หา Pattern ที่ซ้ำกัน แยกออกมาเป็น Intercace Divide & Conquer – นอกแยก implement กับ…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 4)

หลังจากพักสำหรับการเขียน Blog ของการเรียน Python มานาน เพื่อไปเตรียมสอบ MCSD ตอนนี้ได้เวลามาอัพ Blog ต่อแล้วครับ สำหรับใน Week 4 เน้นไป 4 เรื่อง ดังนี้ การทดสอบ(Testing) การติดตามพฤติกรรมของโปรแกรม (Debug) การจัดการกับข้อผิดพลาด(Exception) การยืนยัน(Assertions) การทดสอบ(Testing) ที่มาของ ฺBug มันมีที่มาจากแมลงจริงๆ ที่ดันเข้าไปติดในคอมพิวเตอร์สมัยก่อนครับ ตอนแรกDev เองนึกว่า Code ผิด แต่ป่าวมีแมลงไปติดที่วงจรซะงั้น ในเรื่องนี้ผู้สอน เค้าได้นำเสนอแนวคิด Defensive Programming ครับ เมื่อไหร่ถึง Test หละ ทำงานเสร็จระดับนึง Code Complile ผ่าน ไม่มี Syntax Error มี Test Case คือ ชุดทดสอบที่มีการกำหนดข้อมูลนำเข้า(Input) และผลลัพธ์ที่ได้(Exprected Result) แล้ว ทุกอย่างมันอยู่ในมือเราแล้ว ทำอย่างไรให้มัน Testing และ Debug ง่ายหละ Decomposition – แบ่งให้มันเป็นชิ้นเล็กที่ทุกสุดเท่าที่จะทำได้สิ  ^__^ Document Constraints – ผมมองว่าเป็น Test Case Document Assumptions – ตอนนี้ทำไมถึงใช้ Algorithm นี้หละ แต่ปัญหาหลักที่เจอ คือ แม้แต่พระเจ้า ท่านไม่รู้หรอกว่า สิ่งที่เราทำไม เมื่อเดือนที่แล้ว เพราะอะไร จดไว้บาก็ดีครับ Class of Tests Unit Testing – Test ในจุดที่เล็กที่สุด ยิ่งแรกแบ่งส่วนของงานได้เล็กลงเท่าไหร่ เราสามารถเจาะเข้าไปได้ ให้มันได้ละเอียดมากขึ้นครับ Regression Testing – Test ซ้ำเพิ่มจากตัว Unit…

WordPress BKK Meetup July 2017

วันนี้เป็นวันที่สอบ Cert ของทาง Microsoft และตอนเย็นไปได้มางาน WordPress Meetup ครับ ซึ่งงานนี้จัดที่ Hangar Coworking Space ที่แอบซ่อนอยู่ใน Chamchuri Square ครับ (เพิ่งรู้ว่ามีพวก Co-Working Space ที่นี้ด้วย ตอนแรกเดินมืนๆ หาสักพักนึง) สำหรับหัวข้อในวันนี้ คือ How to use WP-CLI โดยคุณ Aum Watcharapol ครับผม จากการมางานครั้งนี้ ผมได้รู้อะไรเกี่ยวดัวตัว WordPress เยอะเหมือนกัน ได้แก่

[Win10] เมื่อ Windows Search Service ไม่ทำงาน

วันนี้ผมทำงานไม่ได้เลย เพราะ Notebook คู่ใจทำงานช้ามากกกกกครับ เวลาเข้า Windows Explorer – เพื่อมาดู Folder และ File มันขึ้น แต่ว่า “Working on it” ลอง Search เมล์ใน Outlook กว่าจะมา รอเป็นวัน ลอง Windows Search (key WIN+Q) ช้ามากอีก แถมผลลัพธ์ก็โคตรมั่ว 5555 หลังจากดู Hint ที่ OS มันแจ้ง มันบอกว่า “Search Indexing was turned off” แปลกนะ ปกติ เราไม่เคยปิดนะ พอลองไปที่ Control Panel >> Administrative Tools >> Service มาดูที่ Service Windows Search ลอง Start ดูหน่อย อ้าว Error 3 : The system cannot find the path specified. หลังจากลองถาม Google ไม่มีคนบอกเลย เลยลองแงะๆ Registry ดู เจอ Key ที่ต้องสนใจใน 2 ตัว ดังนี้ DefaultApplicationsPath – Path จริงๆ ไม่มีซะงั้น TempPath- Path จริงๆ ไม่มีซะงั้น พอไปเข้า Path ที่มันต้องการจริงๆ อ้าววววววว ไม่มี หายไปไหนหว่า ตอนนี้คิดว่าน่าจะเกิดจากตอน Update…

[VS] รู้หรือยัง ว่าสามารถ Filter Error ให้เห็นเฉพาะที่สนใจจริงๆ ในตัว MS Visual Studio ได้นะ

Visual Studio

ช่วงนี้ได้มีโอกาสสอนทั้ง Dev เก่า และ ใหม่ ในบริษัทให้มาใช้ .Net แต่เจอปัญหาที่สำคัญมากเลย พอเจอ Error หลัง Build Code แล้วนี้ ออกมาเจอ Error 5,xxx กว่าอันก็ตามคนอื่นช่วยแล้ว ทั้งที่จริงๆ หลาย Error มันมีสาเหตุมาจากเรื่องเดียว เช่น Error Code CS0006 – Metadata file .dll could not be found สำหรับ Error  ตัวนี้สาเหตุหลักมันเกิดจาก Component บางตัวมันมี Error แล้ว ดันมี Component อื่นๆ เรียกใช้อยู่ พอมันตัวเอง Build ไม่ได้ Component อื่นๆ ที่ต้องใช้งานมัน หาไฟล์ไม่เจอเลยขึ้น Message นี้ครับ พอมันเยอะ ก็ตกใจกัน สิ่งที่ต้องทำอย่างแรก มีสติ ครับ จากนั้นไปที่ส่วน Error List ใน Visual Studio หารูปสามเหลี่ยม กดไปแล้วให้เอาตัว Error Code CS0006 ออกก่อนครับ แล้วลองหา Root-Cause อีกทีครับ ตามรูปเลย พอ Filter ตัว Error Code ที่ไม่จำเป็น มันช่วยลดความน่ากลัว และเพิ่มสติในการหา Error ที่แท้จริงครับ สู้ๆครับ และตัว Feature นี้น่าจะมีมาตั้งแต่ VS2003 นะครับ แต่ถ้าเอาชัวร์ IDE ที่ผมใช้อยู่ในปัจจุบัน คือ VS2012 – VS2017 มี Feature นี้หมดครับ

[WordPress] มาเปลี่ยนให้เว็บของเราเป็น https กัน

หลังจากดองเรื่องนี้มานานมากก Plan ไว้ว่าจะเปลี่ยนตั้งแต่ปลายปี 15 และ แต่ก็ยุ่งๆมาตลอดคิดได้ว่า ถ้าไม่เปลี่ยนอีกเดี๋ยวก็โดนบังคับอยู่ดี สู้เสียเวลาเปลี่ยนเลยดีกว่า จาก http:// เป็น https:// ทำไมต้องเปลี่ยนหละ ? อยากได้ความปลอดภัยเพิ่มขึ้น เพราะ ตัว Https มัน คือ HTTP over SSL โดยทำงานบน Port 443 ครับ ข้อมูลถูก้ขารหัส มีผลกับการทำ SEO เพราะ Google มองว่าเว็บที่มี Https มีภาษีดีกว่าเว็บที่ไม่ได้มีครับ มันดูน่าเชื่อถือ รำคาญ Chrome ที่มันแจ้งเตือนครับ – ที่ผมเปลี่ยน เพราะ เรื่องนี้แหละ 5555 มาปรับกันเถอะ เมื่อเรารู้แล้วว่าเจ้า https:// มันดีอย่างไร แล้วขั้นถัดมา คือ การปรับ WordPress โดยมี 3 Step ใหญ่ (อ่านให้จบก่อนทำนะครับ) เตรียมตัว บังคับปรับ WordPress เป็น https:// เก็บกวาดตัวอื่นๆ ที่อยู่รอบข้าง 1. เตรียมตัว ต้องมีตัว SSL certificate ถ้าเมื่อ 2-3 ปีก่อน น่าจะเสียเงินพอสมควรเลย แต่ตอนนี้มีพระเอมาแล้วครับ คือ Let’s Encrypt (ต้องขอบคุณทาง THZHost ที่ช่วย Guide และทำให้ครับ) ก่อนจะทำอะไร อย่าลืม Backup ครับ จดไว้กันลืม พวก App หรือ Social Service ต้องไปปรับเปลี่ยน อย่าง Facebook หาใครจะแชรฺ์ค้องทำ app id อย่าลิมไป Update URL ด้วย Google…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Mid-Term)

ช่วงต้นเดือนนี้เป็นเดือนที่งานแน่นมากครับ ไม่แน่ใจว่าจัดเวลาไม่ดี  หรือป่าว เพราะว่า เตรียมงานให้น้องฝึกงาน ทำงานยก Lagacy Code เดียว เตรียมสอบ Cert MCSD จ่ายเงินค่าเรียน Course นี้ครับ เรียน และเตรียมสอบ Mid-Term Course นี้ครับ สำหรับงานเลือกที่เผาให้เร็วที่สุด เป็นการเรียนใน Python ในส่วนของ Week 4 และรีบสอบ Mid-Term ให้จบๆไปก่อน เพื่อดึงเวลาไปอ่านสอบ Cert MCSD ครับ สำหรับผมก่อนเลือกเรียนเนื้อหาใน Week 4 ก่อนครับ เพราะ มันเหมือนทวนสอบไปในตัว จากนั้นลุยลอบ Mid-Term ตัวข้อสอบ Mid-Term ผมมองว่ามันไม่ได้ยากมาก ถ้าเรียนสาย Com มาอยู่แล้วครับ อารมณ์เหมือนตอนปี 1 ที่มาทำโจทย์ครับ แต่ข้อสอบแบ่งสัดส่วนได้เป็น 80% เป็นการเขียน Code ตามโจทย์ที่ให้มาครับ โดยมีโอกาศให้ Submit Code เข้า Grader ได้ 10 ครั้ง 20% เป็นพวก Choice แต่แอบโหดนะ บางข้อ มีได้มากกว่า 1 คำตอบ และบางข้อได้ 5 คำตอบ อ๋อ และถ้าใครอยากได้ Cert ของ Course นี้ สามารถจ่ายเงินได้ สำหรับ Course 49 USD แปลงเป็นไทยปะมาณ 1,700 บาทครับ (แปรผันตามอัตราแลกเปลี่ยน) จ่ายเงินแล้วต้องยีนยันตัวตนด้วย โดยต้องใช้ Web Cam ย้ำว่าต้องใช้ โดยต้องถ่ายรูป รูปที่ 1: หน้าเรา รูปที่ 2:…

เมื่อฉันฝากประจำครบ 24 เดือน รอบที่ 2 ครับ

หลังจาก Blog ตอนแรก “เมื่อฉันฝากประจำครบ 24 เดือน” จาก Blog นั้นไป ก็ผ่านไปครบ 2 ปีนิดๆ อีกครัังครับ ช่วงเดือนเมษายน 58 จนถึง กรกฏาคม 60 (จริงๆ มันครบรอบไปแล้ว แต่ผมลืมไปถอนครับ 5555) โดยสำหรับรอบนึ้ผมเพิ่มเงินจากเดิมจากเดือนละ 2,000 บาท ไปเป็น 3,000 บาทครับ ในอัตราดอกเบี้ยคงที่ 2.55% สำหรับการคำนวณผลตอบแทน (ดอกเบี้ย) สามารถดูได้จากตารางนี้ครับ โดนตอนนั้นที่วางแผนไว้ คือ เตรียมเงินไว้สำหรับเรียน “ปริญญาโท” ครับ ตอนนี้ได้ใช้แล้วครับ สำหรับการลงทุนรอบนี้ ผลตอบแทนลดลงจากคราวก่อนครับ รอบแรกอัตราดอกเบี้ย 3.3 % ครับ รอบนี้เหลือ 2.55% ครับ ตอนนี้ผมออมต่อไปครับ เดี๋ยวอีก 24 เดือนมาดูต่อครับ ว่าผลมันจะเป็นอย่างไร จริงๆน่าจะเขียน Blog เทียบกับการลงทุนด้วยวิธีอื่นๆด้วยนะ รอมีเวลาก่อน 555 และก็อ๋ออย่าลงทุนไว้ที่ช่องทางเดียวนะครับ สำหรับผมก็แบ่งไว้หลายๆช่องทางครับ ^___^

[MSSQL] สรุปงาน SQL Server Community Thailand Meeting #02

สำหรับมางาน SQL Server Community Thailand Meeting งานนี้จัดเป็นครั้งที่ 2 แล้ว ส่วนงานแรกผมพลาด เพราะติดสอบพอดี SQL Server Performance Tuning Essential โดยคุณ Chulladej Aramsri หมายเหตุ: เขียนในมุมของ Developer หากมีอะไรผิดพลาด ขออภัยมา ณ ที่นี้ครับ – Root-Cause ของ Performance หลักๆ ที่พบบ่อยๆ จากมากไปน้อย – แล้วปกติที่ไปจัดการกับ Data ที่ทำผ่าน SQL มันมีแบบไหนบ้าง ? – Common Approach ในการ Optimize Performance เริ่มจากสิ่งที่ควรทำมากที่สุด – Wait Statistic Performance Tuning Approach – Back to Basic ก่อนจะรู้เรื่อง Wait Statistic เราควรรู้อะไรบ้าง >> DB Engine มันประกอบด้วยอะไรบ้าง NOTE: ผมเพิ่งรู้ว่าตัว MSSQL Server มัมี OS ชั้นนี้ ปกติสนใจพวก Query Execution Plan มากกว่า >> NUMA System เวลามี Query เข้ามาจาก Client / App Server หรือ Web Server มันจอง 1 Session เอาไว้ โดยที่ – Preemptive vs Non-Preemptive Note: ถ้า MSSQL ต่ำกว่า…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 3)

หลังจากผ่าน Week 2 ไปแปบเดียว บทเรียนของ Week 3 มาแล้วครับ โดยใน 2 Week แรก เราได้รู้พื้นฐาน และโครงสร้างของโปรแกรมไปแล้ว ได้แก่พวก Primitive Data Type (พวก int, float, boolean และ String เป็นต้น) Condition :  if-else I/O: input. print และ File Function (def) สำหรับใน Week นี้เป็นไปในส่วนของลักษณะโครงสร้าง จริงๆ มองให้บอกว่าเรามีตัวช่วย ในการแทนลักษณะของปัญหา มาลงโปรแกรมของเราอย่างไรมากกว่า ซึ่งถ้าดูในบทเรียน ใน Course นี้เรียก รวมๆ ว่า Stucture Type ได้แก่ Tuple () – ตระกร้า เอาอะไรมาใส่ก็ได้ ยัด int string จิปาถะอื่นๆลงมาได้ แต่ยัดแล้ว ห้ามแก้ไข List [] – เก็บข้อมูล ที่สนใจลำดับ และเก็บข้อมูลชนิดเดียวกัน สรุป String, Tuple, Listมามีอะไรที่มัน Common บ้างครับ Functions as Objects – เราส่ง Function เข้าไปใน List ได้เลย แล้วให้ทำงาน โดยการเขียนแบบนี้ เรียกว่าเป็น higher order programming โดยในตัว Python มี 3 แบบ (จริงเค้าสอน map อันเดียว แต่ลอง Google ดูเห็นเป็นตัวที่นิยมใช้กัน เลยเอามาแปะไว้รวมกันครับ)ได้แก่…