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

สำหรับ Blog อันนี้เขียนหลังสอบ Final Exam ครับ โดยการสอบครั้งนี้ น่าจะเป็น One Week Miracle มากๆ ครับ เพราะจากการที่ผมไปเน้นตัว MCSD เป็นหลักครับ ทำเหลือเวลาเตรียมตัวในการสอบครั้งนี้น้อยพอสมควรครับ จริงๆ อยากรีบให้มันจบไปด้วย ฮ่าๆ รู้สึกว่า Project ใหม่ ตัว Equity Rebalance เข้ามาบีบแล้ว เข้ามาที่ตัวข้อสอบเลยดีกว่าครับ สำหรับข้อสอบโครงสร้างคล้ายๆกับ Mid-Term ครับ คือ ตัวที่ยากสำหรับผมน่าเป็น Final-Exam Problem 4: ที่ให้หาค่ามากที่สุดใน Tuple ครับ โดยสิ่งที่โจทย์ให้มา ดังนี้ ที่ผมว่ามันโหด และยาก เพราะ ว่าตัว Final-Exam เค้าถึงว่า ผู้เรียนได้ผ่านบทเรียนเรื่อง Testing & Debugging ของ Week ที่ 4 แล้วครับ นั่นแสดงว่า เราต้องคิด Test Case เองครับ แต่นั่นทำให้ผมรู้ว่าตัว tuple มีลูกเล่นเยอะครับ เช่น และ Code ที่ผมได้เขียนตัว Method หลักๆ ผมยังใช้ Loop ครับ ในโจทย์ข้อนี้เน้นแนวคิดในการเล่นข้อมูลใน Tuple ที่มีความหลากหลายตาม Test Case ซึ่งผมพบว่าสิ่งที่ tuple กับ List มีเหมือนกัน คือ มัน Iterable ได้ ผมจึงทำ Helper flatten (เอา Recusive มาช่วย) เพื่อทำให้ข้อมูลมันแบนลง โดยใช้ Python Package Collection มาช่วยครับ ซึ่งถ้าใน…

Export ข้อมูลใน Task Manager ลง Excel(CSV)

หลายครั้งเวลาที่เราตรวจสอบอะไรบางอย่าง เช่น แรมที่ใช้ไป อย่าง Chrome เองเปิดไปเป็น 10 Process อยากรู้แล้วว่ามันกินทั้งหมดเท่าไหร่ ถ้าไปนั่งนับจาก Task Manager ก็ยากนิดหน่อยข้อมูลมัน Realtime วิ่งไปวิ่งมา ครั้นไปหาโปรแกรมมาก็ติดว่าไม่จำเป็น เลยลองส่องๆดูใน cmd ว่าทาง Microsoft ได้มีทำลูกเล่นอะไรไว้กับตัว Task Manager หรือป่าว ปรากฏว่ามีด้วย โดยพบว่ามีคำสั่ง tasklist และเปิด help ด้วยคำสั่ง งั้นลองมา Export ข้อมูลในหน้าจอ Task Manager ลง Excel ดีกว่าครับ โดยมีขั้นตอน ดังนี้ Reference

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 7) – Simple Plot

สำหรับ Blog อันนี้เป็น Lecture สุดท้ายสำหรับในการเรียน หลังจากการเรียนที่ผมเขียนไปใน Blog ตอนที่แล้ว ในตอนนี้เรานำข้อมูลมาแสดงให้เห็นภาพ (Visualize) โดยนำข้อมูลมา Plot เป็นกราฟ โดยใช้ Library ตัว PyLab ครับ สำหรับการใช้เรานั้น เราต้อง import ข้อมูลก่อนครับ โดยใช้คำสั่ง ดังนี้ ลองกำหนด Sample Data กัน 📊 การกำหนด Sample Data ใน Class นี้ คุณ Eric Grimson พยายามเชื่อมโยงไปถึงบทที่แล้วครับ โดยใข้ Code ดังนี้ Plot Graph กันเถอะ 📊 Version แรกครับ ใช้ Code แบบ Simple เลยครับ เอาให้มี Graph ขึ้นมาก่อนครับ โดยใช้ Code ดังนี้ 📊 ผลลัพธ์ที่ได้ 📊 จาก Version แรก พบปัญหา ดังนี้ 📊 มาดูผลลัพธ์ที่ปรับกันครับ 📶 ข้อสังเกตุ 1: อยากแยก กราฟออกจากกัน ใช้ Figure ช่วยได้ 📶 ข้อสังเกตุ 2: ปัญหา ใน Method Plot แรก คือ การกำหนดพื้นที่การเขียนครับ จาก Code ตัวอย่างคือ mySamples ตัว PyLab มันจองยาวจนกว่าจะปิดโปรแกรมครับ ถ้าอ้างอิงไม่ดีข้อมูลมาเขียนทับกันครับ ซึ่งสามารถแก้ไขแก้ไข โดยใช้คำสั่ง Clear ก่อน Plot…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 6) – Algorithm + Big O

สำหรับ Blog ในตอนนี้ จากที่เรียนมาทั้งหมด พวกว่าทุกคนอยากให้ Code ที่เขียนขึ้นมามีแนวคิดการทำงานต่างกัน หรือที่มีคำเท่ห์ที่เรียกว่า Algorithm ส่วนทำได้มีประสิทธิผล( Performance) และถูกต้อง แล้วอะไรที่บอกว่าเร็วหละ ตอนนี้เน้นส่วนเรื่องที่บอกว่าเร็ว Performance ดี เรามองได้ใน 2 มุมมอง การมาวัดมันมีหลายแบบ เช่น จับเวลา, นับ Operation ที่ใช้ หรือแม้แต่การดูพื้นที่ที่ใช้ไป แต่มันมีปัญหาจุกจิกมากมาย ทั้งที่เรื่องจำนวนข้อมูลนำเข้า(Data Set) และ Enviroment(เช่น พวก Hardware ต่างๆ) ในทาง Computer Science ก็เลยมี Idea ในการวัดอีกแบบ คือ Abstract Notation Order of Growth ครับ Abstract Notation Order of Growth คือ อะไร ⚡แล้วเรามองมุมไหนดีหละ ⚡ปกติ เราสนใจเคสที่แย่ที่สุดครับ โดยตัว Order of Growth สามารถแบ่งกลุ่มได้ ดังนี้ ⚡เราตีความ Algorithm โดยใช้วิธีการที่เป็นมาตรฐาน โดยมีหลักการนับ ดังนี้ Note: สำหรับในเคส Loop ที่มีเงื่อนไขมาเกี่ยวข้อง เราต้องคิดแยก Case ฺBest Case และ Worst Case TIP: การดู Order of Growth เราไม่สามารถมองจุดเดียวแล้วบอกได้เลย เราต้องไล่การทำของ Code ในสาย Software  Engineering เรียกว่า Control Flow จากนั้นจึงค่อยมาจาก Best Case และ Worst Case ของโปรแกรม ⚡ตัวอย่างการคำนวณของ Fibonacci Note: เห็นว่าแต่ละวิธี…

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

ช่วงนี้ผมอัพ Blog เกี่ยว Course Python ของทาง MITx รัวๆ นะครับ เพราะ ใกล้สอบ Final แล้ว โดยสำหรับใน Week นี้เป็นเรื่องของ OOP เป็นหลัก มาเริ่มกันเลย Type Hint บอก Type ข้อมูล Lambda Function เอาไว้เขียน function สั้นๆง่ายรูปแบบ lambda arguments: expression โดยมีตัวอย่าง ปกติใช้ในการที่ต้องทำการ Function เล็ก ในการจัดการข้อมูล เช่น ใน List หรือ Stream ตัวอย่างเอามาช่วยหาที่เลขคู่ Object Oriented Programming 📌 ทุกอย่างใน Python เป็น Object แต่มี Type ของตัวเอง 📌 การทำเป็น Object มันเพิ่มตัว Data Abstraction มากขึ้นครับ โดยรวมสิ่งที่ใช้อยู่ด้วยกัน ผ่านทาง 📌 Class & Instance 📌 ตัว Python เอง มี Object พื้นฐานที่จำเป็นมาให้อยู่แล้ว อาทิ เช่น พวก Data Type ต่างๆ หรือ เป็นเฉพาะด้านอย่าง Math, String เป็นต้น ครับ 📌 ทำเป็น OOP แล้วได้อะไรบ้าง ลองมาสร้าง Object ของตัวเองดีกว่า 📌 สร้าง Class – ทุก Class สืบทอดมาจาก…

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

หลังจากพักสำหรับการเขียน Blog ของการเรียน Python มานาน เพื่อไปเตรียมสอบ MCSD ตอนนี้ได้เวลามาอัพ Blog ต่อแล้วครับ สำหรับใน Week 4 เน้นไป 5 เรื่อง ดังนี้ การทดสอบ(Testing) 📚 ที่มาของ ฺBug มันมีที่มาจากแมลงจริงๆ ที่ดันเข้าไปติดในคอมพิวเตอร์สมัยก่อนครับ ตอนแรกDev เองนึกว่า Code ผิด แต่ป่าวมีแมลงไปติดที่วงจรซะงั้น 📚 ในเรื่องนี้ผู้สอน เค้าได้นำเสนอแนวคิด Defensive Programming ครับ ❓ เมื่อไหร่ถึง Test หละ 📚 ทุกอย่างมันอยู่ในมือเราแล้ว ทำอย่างไรให้มัน Testing และ Debug ง่ายหละ 📚 Class of Tests Testing Approach 🗳️ Black Box Testing – โยน Input เข้าไป ดูผลลัพธ์ที่ออกมา 🥛Glass Box Testing – เรียกยังไงดี บอกว่ามันดีจากภายใน เพราะ การ Test เราต้อง Design Test Cases มาจาก Code ที่เขียน การติดตามพฤติกรรมของโปรแกรม (Debug) 🐞Runtime Bug นิยามของคำว่า Debug  = การติดตามพฤติกรรมของโปรแกรม อันนี้ผมเขียนขึ้นมาเองนะ จริงๆ การ Debug มันเหมือนว่าตัว Dev เอากำลังสวมบทบาทเป็นคุณหมอวินิจฉัย และผ่าตัดเอาสิ่งที่ผิดปกติออกจากโปรแกรมที่เขียนขึ้นครับ 🐞 แนวทาง Debug เพื่อจับ Bug Note: นำแนวคิดของ Defense Programming…

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 คู่ใจทำงานช้ามากกกกกครับ เวลาเข้า หลังจากดู Hint ที่ OS มันแจ้ง มันบอกว่า “Search Indexing was turned off” แปลกนะ ปกติ เราไม่เคยปิดนะ พอลองไปที่ Control Panel >> Administrative Tools >> Service มาดูที่ Service Windows Search ลอง Start ดูหน่อย อ้าว หลังจากลองถาม Google ไม่มีคนบอกเลย เลยลองแงะๆ Registry ดู เจอ Key ที่ต้องสนใจใน 2 ตัว ดังนี้ พอไปเข้า Path ที่มันต้องการจริงๆ อ้าววววววว ไม่มี หายไปไหนหว่า ตอนนี้คิดว่าน่าจะเกิดจากตอน Update Windows 10 ให้เป็น Creator แน่ๆ เลย แต่ก็ช่างมันก่อน เพราะตอนนี้ต้องทำให้ Notebook มันทำงานเร็วขึ้นก่อน มาแก้ไขให้ตัว Windows Search Service ทำงานก่อนครับ แบบที่ 1: ใช้ Tools Troubleshoot search and indexing ช่วยก่อนครับ โดยมีขั้นตอน แบบที่ 2: ถ้า Tools จากแบบที่ 1 มันใช้ไม่ได้ ต้องจัดการเองครับ จากปัญหาเรื่อง Windows Search Service มีหลายเว็บในไทย แนะนำให้ปิด ผมว่าอย่าทำเลย เพราะ ถ้าทำทีมันมีงานหลายๆอย่างมันพันอยู่กับ Service เช่น ถ้าช้าจริง แนะนำลอง Rebuild…

[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:// มันดีอย่างไร แล้วขั้นถัดมา คือ การปรับ WordPress โดยมี 3 Step ใหญ่ (อ่านให้จบก่อนทำนะครับ) 1. เตรียมตัว 2. บังคับปรับ WordPress เป็น https:// (อ่านให้จบก่อนทำ) 3. เก็บกวาดตัวอื่นๆ ที่อยู่รอบข้าง Google Service ถ้ามี Service อื่นๆ อย่าง เช่น Bing Webmaster Tools อย่าลืมไปตามแก้ด้วยนะครับ หรือ กำหนด Url ให้ทำเป็น Relative Path ได้ หลังจากทำมาทั้งหมดนี้ เว็บของเราดูน่าเชื่อถือในสายตาของ User และบรรดา Bot ของ Search Engine แล้วครับ ^__^