CategoriesTechnology...My interestedToday..what i learn

CodingThailand : Kubernetes (k8s) สำหรับ Web Developer

นั่งเรียนเรื่อง Kubernetes มา 3 วัน กับอาจารย์เอก CodingThailand เกี่ยวกับการทำให้ระบบ server ของเรารองรับ Zero Downtime สำหรับการ Update Version ของ App เรา กับอีกเรื่องเป็นเรื่องเกี่ยวกับการ Auto Scale หรือทำให้ระบบของเรารองรับการขยายตัวเอง เช่น เมื่อเกิดเหตุการณ์ที่มีคนเข้ามาใช้งานเยอะๆในเว็บ ภายในช่วงเวลาหนึ่ง แล้ว CPU หรือ Ram สูงถึงค่าที่เรากำหนดไว้ ให้ไปเรียก Service ตัวอื่นมาช่วยกันรองรับ Load ในเวลานั้น

ความสนุกที่สุดในคอร์สนี้ น่าจะเป็นตอนที่เปิด Dashboard เพื่อ Check Service (pods) ของเรา ที่กำลัง Run อยู่ แล้วเห็นว่าจังหวะที่เรา Apply app version ใหม่เข้ามา ตัว App เดิม มันไม่ล่มจริงๆ (ตามภาพ)

คือจังหวะนี้ (จังหวะ Update Version ของ App เรา ) หากลูกค้าเข้ามาเรียกหน้า App ของบริษัท บางคนจะได้ App Version ที่ 1 บางคนจะได้ App version ที่ 2 ปนๆกันไป จนกว่า App Version ใหม่ทยอยเกิดขึ้นมาครบทุกตัวและปิด App version เก่าทั้งหมดทิ้งไป นอกจากนั้นก็จะเป็นเรื่องการสร้าง Services : Frontend,Backend,Database และใช้ Config file ให้แต่ละตัวคุยกันได้

หลังเรียนเสร็จ เริ่มมีความคิดว่า “ยิ่งเรียน ยิ่งไม่รู้” เพราะหากเราจะเรียนให้รู้ในเรื่องนี้ให้เข้าใจมากจริงๆ คือมันต้องขุดลงไปให้ลึก หรือเรียนเรื่องการ Config ให้รองรับงานในแต่ละแบบให้เป็น ซึ่งกว่าจะทำให้งานมันดีพอ กับ Production ได้คงต้อง Take อีกหลาย Course แน่ๆเลย…

But need alone is not enough to set power free: there must be knowledge.

Ursula K. Le Guin
CategoriesTechnology...My interestedToday..what i learn

Skooldio : Tactical Domain Driven Design

เลือกเรียนในหัวข้อนี้ เนื่องจากคำโปรยที่พูดเรื่องของการพัฒนาโซลูชันที่หากไม่สอดคล้องกับปัญหาทางธุรกิจ จะทำให้ระบบยากต่อการปรับปรุงหรือทำให้โปรเจคนั้นไปต่อได้ยาก โดยคอร์สนี้โฟกัสที่ Domain Driven Design ที่เน้นการเขียนโค้ดให้สอดคล้องกับโดเมนธุรกิจ

ในระหว่างที่เรียนไป ก็ยังสับสน เพราะส่วนตัวไม่ได้มาทางการเขียน Code ในแนว OOP หรือเริ่มโปรเจคจาก DDD มากขนาดนั้น คาดว่าหลังจากนี้คงต้องกลับมาเรียนซ้ำเพื่อเพิ่มความรู้เกี่ยวกับเรื่องนี้ให้เข้มข้นขึ้น และคิดว่าหากจะเรียนจนถึงขนาดนำมาถ่ายทอดได้ขนาดนี้ คงต้องใช้เวลาอีกสักพัก

https://www.skooldio.com/certificate/4442a44f-3fe8-4d78-a747-adadc3dc07d1

Everybody gets so much information all day long that they lose their common sense.

Gertrude Stein.
CategoriesTechnology...My interestedToday..what i learn

Skooldio : OOP The Right Way

คอร์ส “OOP The Right Way” เป็นคอร์สการสอนพื้นฐานของ Concept การเขียนโปรแกรมในรูปแบบ Object-Oriented Programming (OOP) และการนำไปประยุกต์ใช้กับการพัฒนาซอฟต์แวร์ขนาดใหญ่ ที่มีทีมงานในการพัฒนาหลายทีม

ผู้บรรยาย ได้บรรยายครอบคลุมตั้งแต่ความเป็นมา ความแตกต่างจากการเขียนโปรแกรมในรูปแบบอื่นๆ ปัญหาที่ OOP สามารถนำไปแก้ไข โดยยกตัวอย่าง Real World Case Study และการออกแบบระบบที่ดีตามแนวคิด OOP

ระหว่างที่เรียน มีการยกตัวอย่างการเขียน OOP ด้วยภาษา Type Script มาให้ผู้เรียนจะได้เรียนรู้ร่วมไปด้วย

เป็นคอร์สที่เรียนจบแล้ว อยากกลับมาเรียนซ้ำอีกครั้ง….

https://www.skooldio.com/certificate/f4369b9e-f84a-4fa7-8942-aad69e64532f

True ignorance is not the absence of knowledge, but the refusal to acquire it.

Karl R. Popper
CategoriesTechnology...My interestedToday..what i learn

Skooldio : Software Architecture Design

มาต่อกันที่ Course : Software Architecture Design

คอร์สนี้เป็นคอร์สที่เกี่ยวกับ Software Architecture Pattern ที่เน้นการร่วมมือระหว่างทีมในหลากหลายมิติ ตั้งแต่การทำงานของทีมพัฒนา, การทำงานร่วมกับทีมธุรกิจ , การออกแบบการทำงานร่วมกัน, การประสานงานในองค์กรขนาดใหญ่, เพื่อเพิ่มความเข้าใจและเลือกใช้ Pattern ที่เหมาะสมกับโมเดลและงานขององค์กร ที่จะนำมาใช้งาน

ระหว่างที่นั่งฟังไปแล้วจินตนาการถึงความเก่งของผู้บรรยาย ก็ถึงกับอึ้ง เพราะผู้บรรยายมีความรู้และยกตัวอย่างมาจากประสบการณ์จริง หลายเรื่องแล้วคิดว่า หากเราเสียเวลาไปอ่านหนังสือหรือศึกษาเอง อาจยังไม่ได้เท่ากับที่ผู้บรรยายคนนี้มาเล่าให้ฟัง

จบเรื่องนี้ ทำให้คิดว่าเราคงต้องเรียนเรื่องเกี่ยวกับการพัฒนาโปรแกรมฯไปอีกหลายเรื่องแน่ๆ

https://www.skooldio.com/certificate/fdabd1da-b100-435d-8e6e-a6a5ecb54dc6

Small minds have always lashed out at what they don’t understand.

–Dan Brown
CategoriesTechnology...My interestedToday..what i learn

Skooldio : Purpose-built Database

อยากรู้เรื่องเกี่ยวกับ Database ในโลกปัจจุบันว่าไปถึงไหน เพราะไม่เคยได้ Update ความรู้ใดๆ ตั้งแต่ใช้ Relational Database เป็น เลยเป็นที่มาให้มาเรียนคอร์สนี้

คอร์สนี้สอนเกี่ยวกับ Database แต่ละประเภท ว่ามีประเภทอะไรบ้าง , การเลือกใช้ Database ให้เหมาะสำหรับการใช้งานต่างๆ รวมไปถึงการนำ Best practice ที่สามารถนำไปใช้จริงได้ในงาน Production ปิดจบด้วยการประยุกต์ทฤษฏีและความรู้ทั้งหมดกับโจทย์จริงที่ทางผู้บรรยายได้เตรียมมา

หลังเรียนจบ ทำให้อยากไป Take Course NoSQL เพิ่มเติม…

https://www.skooldio.com/certificate/cf7eaa45-24ca-4cf4-b823-91a063f8c50a

I have always thirsted for knowledge, I have always been full of questions.

Hermann Hesse
CategoriesTechnology...My interestedToday..what i learn

Skooldio : How to Become a Better Programmer

จุดประสงค์การเรียนในครั้งนี้ คือหวังจะ Re-skill ทางด้านการเขียนโปรแกรมของตัวเอง ให้มันชัดขึ้นมาบ้าง

โดยคอร์สนี้เป็นคอร์สที่พูดถึงสิ่งสำคัญในการทำงานเป็น Programmer ที่ดี ไม่ว่าจะเป็น System Design , Keyword ต่าง ๆ , Technical Skill และ Soft Skill ที่สำคัญในกระบวนการพัฒนาซอฟต์แวร์ที่ดี ว่าจะต้องมีอะไรบ้าง และหัวข้อ Common Mistakes หรือข้อผิดพลาดที่ Programmer มักทำผิดพลาดกันบ่อย ๆ เช่น Overpromise , Under deliver , Avoid Test , Ignore Cleancode รวมถึงวิธีแก้หรือหลีกเลี่ยงปัญหาเหล่านั้น

ระหว่างที่นั่งเรียนประทับใจกับผู้บรรยายที่มาถ่ายทอดความรู้มากๆ เหมือนมานั่งฟังคนที่มีประสบการณ์ มาเล่าบอก Best Practice วิธีการทำงานในสายงานนี้ ว่ามีอะไรบ้าง เช่น เรื่องที่ควรรู้ หรือเรื่องที่ควรเลี่ยง

โดยรวมแล้วรู้สึกคุ้มค่ามาก

https://www.skooldio.com/certificate/19048b73-f76e-42fb-a9ed-553dd1332ede

There are in fact two things, science and opinion; the former begets knowledge, the latter ignorance.

Hippocrates.
CategoriesTechnology...My interested

Ubuntu Server

หัวข้อวันนี้ เป็นเรื่อง Ubuntu Server….

สาเหตุที่เรียน เพียงเพื่อที่จะปิด Gap ให้ตัวเอง เพราะ Ubuntu เป็น OS Linux ที่รู้จักตั้งแต่สมัยเรียน ป.ตรี แต่พึ่งมาทำความรู้จักกับ OS นี้เมื่อไม่นานนี่เอง ทำให้วันนี้ขอเสียเวลาเรียนรู้มันให้สิ้นสงสัยกันไป เผื่อในอนาคตจะต้องทำโปรเจคหรือว่าไปยุ่งกับ linux จะได้มีความเข้าใจมันบ้าง

จากที่ทำงานเดิม เป็นแค่พนักงานที่ใช้งาน Linux ได้ รู้จัก Linux Command เบื้องต้น ไม่ได้ลงลึกไปมากกว่านั้น สิ่งที่ทำได้กับ Linux คือแค่เปิดไปหน้านั้นนี่ได้ , Move file ได้ , ย้าย Folder เป็น , เปิดไฟล์ด้วย VI หรือ Nano ได้เท่านั้น แต่หากถามว่ารู้อะไรมากกว่านี้มั้ย กับระบบปฏิบัติการ Linux พวกนี้ ต้องตอบตรงนี้เลยว่าไม่

เลยเป็นที่มา ให้มา Take Course หัวข้อนี้ โดยในส่วนที่เรียนมีความยาวกว่า 16 ชั่วโมงประกอบไปด้วยรายละเอียดดังนี้

Install Ubuntu Server22.04 on VirtualBox
Lesson1 Introducing
Lesson2_Package Management
Lesson3_Access the Command Line and Help
Lesson4_Architecture File Systems
Lesson5_File and Directory
เสริม_Lesson5_File and Directory การใช้ vi_vi_nano  เพื่อจัดการไฟล์และไดเรคทอรี
Lesson6_Users and Groups Management
Lesson7_Configuration and Management sudo
Lesson8_Permission Users and Groups
Lesson9_Managing Files with ACL
Lesson10_Firewall with UFW
Lesson11_OpenSSH
เสริม Lesson11 OpenSSH_การเปลี่ยน port 22 บน Ubuntu Server
Lesson12_Archiving and Transferring Files
Lesson13_Networking Configuration
Lesson14_Managing disk partition
Lesson15_Managing Logical Volume Management(LVM) Storage
Lesson16_Log Management and Investigate Log with Splunk SIEM Product
Pro_Linux1
เสริม_ล็อกอินด้วย User root 
เสริม_สแกน port ด้วย nmap บน Ubuntu Server

หลังเรียนจบ พบว่าเราเข้าใจเรื่อง Permission บน Linux มากขึ้น เช่น User , Group , Other อะไรพวกนี้ พออ่านแล้วเข้าใจได้เลย ค่าเช่นพวก 777 บนไฟล์หรือโฟลเดอร์ ที่ก่อนหน้าเราไม่เคยรู้ “ทำไมต้อง 777 และ 777 มีที่มาที่ไปอย่างไร” ตอนนี้ก็ได้รู้ รวมถึงหลายๆคำสั่ง หลายๆ Lab ก็มีประโยชน์กับเรามาก ไม่ว่าจะเป็น
-man [command] > Command ที่ใช้สำหรับอธิบาย ว่าแต่ละ Command ทำหน้าที่อะไร ที่พอเรียนเสร็จแล้วสงสัย ว่าทำไมก่อนหน้านี้เราไม่รู้จักคำสั่งนี้มาก่อนนะ เพราะพอเรียนเสร็จรู้สึกว่า Linux นั้นง่ายไปเลย 5555

-history (vi .bash_history) คำสั่ง History ที่ใช้สำหรับเอาไว้ดู ว่าคำสั่งก่อนหน้าที่ User คนที่เรา login อยู่ใช้งานคำสั่งอะไรไปบ้าง อันนี้ส่วนตัวชอบมาก เพราะทำให้รู้ว่า User คนก่อน พิมพ์อะไรไปบ้าง เมื่อเข้าใช้ User นั้น login เข้ามา

-แก้ Port remote ssh > อันนี้ในระหว่างที่เรียน มี Lab ให้เปิด Port สำหรับ Remote แต่เนื่องจากใช้เวลาเรียนไปหลายวัน ทำให้ลืมไปว่า วันก่อนที่เราเรียนไป เราแก้ไปเป็น port อะไร 555

-เช็ค Log การ Login ด้วยคำสั่ง tail -f /var/log/auth.log

จริงๆมีอีกหลาย labs ที่น่าสนใจ แต่หากให้เล่าคงเล่าไม่หมด ขอเอาแค่ที่ประทับใจอย่างเดียวก็พอ

ตอนนี้มีไอเดีย หาเรื่องเสียเงิน ว่าจะซื้อเอา Raspberry PI5 Ram 8GB มาลง OS Ubuntu Server เอา Docker ลง แล้วสั่ง Run Website Project งานของเราไว้ในนั้น มีการกั้น NginX จากนั้นไปเปิด Static IP กับ AIS ผูกกับ Domain Name ให้มันเป็นเรื่องเป็นราว และลอง Load Test เข้ามาเข้าบ้านตัวเองดูว่า Raspberry PI มันจะลองรับ Load ได้แค่ไหนทำแบบเป็น Web Production ไปเลยได้จริงหรือเปล่า เผื่อจะได้ทำไปแชร์ให้คนอื่น (ยังไงก็กลัวกลุ่ม Hack ที่มา Scan Port แล้วเข้ามาควบคุม Server เราได้อยู่ดีนะ)

คอร์สนี้เหมาะกับใคร ?
คอร์สนี้เหมาะกับคนที่อยากรู้เรื่อง Linux เพื่มความเข้าใจเรื่อง Permission หรือนำไปต่อยอดกับงานด้าน Cloud หรืองานดูแล เช่นด้าน Infrastructure หรือใครที่กำลังสนใจในเรื่องเจาะระบบ คนที่กำลังจะไปเป็น Hacker ก็สามารถมาเรียนได้

หากใครสนใจอยากเรียนหัวข้อนี้ สามารถเข้าไปติดตามกันได้ที่ Line : @linux เพื่อที่จะสอบถามรายละเอียดและราคากับเจ้าของคอร์สในนั้นได้เลย (อยากเล่าประสบการณ์ความช้ำใจส่วนตัว คือตอนที่ซื้อคอร์ส มีการซื้อคอร์สอื่นๆร่วมด้วย และเราเองในตอนนั้นได้แต่ละคอร์สในราคาที่ถูก แต่หลังจากที่ซื้อไป พี่เจ้าของกลับไปลดราคาลงอีก ผมนี่เสียดายเงินจากที่ซื้อในตอนแรกเลย 5555)

There is no wealth like knowledge, no poverty like ignorance.

–Buddha.
CategoriesTechnology...My interested

OpenThaiGPT

ตั้งใจเพิ่มความรู้ให้ตัวเอง จากโจทย์ที่ว่า หากเราต้องการจะทำ AI Chatbot ขึ้นมาเอง เราต้องศึกษาเรียนรู้อะไรบ้าง เลยเป็นที่มาให้มาเรียนหัวข้อนี้

อันที่จริงนอกจากหัวข้อที่กล่าวไป คือบริษัทที่ตัวเราเองกำลังทำงานอยู่ตอนนี้ ได้มีการเอา AI Chatbot + Image Processing หรือ OCR ต่างๆเข้ามาร่วมใช้งาน จึงทำให้อยากรู้ว่า ในมุมของคนที่ทำงานเป็น QA Engineer ฝั่ง Software เนี่ย หากต้องการอยากจะประยุกต์การทดสอบร่วมกับการทำงานกับพวก AI , Machine Learning พวกนี้ มันจะเป็นไปได้ไหม (เท่าที่เรียนวันนี้ คนที่ทำงานฝั่งนักทดสอบระบบฯ ไม่น่าจะได้แตะงานส่วนนี้เลยนะ อาจมีได้แตะคือในส่วนงานการตรวจสอบพวก Train Data ว่ามีการใส่ค่ามาถูกต้องหรือเปล่า จากนั้นก็ไปทดสอบที่ทางปลายทางเลย คือ Input คำถามอะไรไป แล้วได้ค่าตามที่คาดหวังหรือเปล่า ประมาณนี้)

หัวข้อการเรียนในวันนี้ มีตั้งแต่
-Large Language Models ( LLM ) ,GPT-2 ,GPT-3 ,GPT-4 คืออะไร
-NLP ( chatGPT ) คืออะไร
-พื้นฐานการใช้งาน Colab
-Workshop : OpenThaiGPT-1.0.0-beta (GPT-3.5) + Gradio Web Interface
-Workshop : Fine-tuning OpenThaiGPT-1.0.0-beta ด้วย Dataset ของเราเอง
-Workshop : ทำ Gradio Web chatGPT

หลังเรียนจบไป ได้วิธีการ Train Data และการเรียกใช้งานมาเบื้องต้น แต่ถ้าถามว่าหากเราจะทำเองตั้งแต่ต้น และต้องสอนให้มันเข้าใจในบริบทต่างได้เองนั้น อันนี้ยังไม่มั่นใจ เพราะการทำเช่นนั้นได้ เราจะต้องเตรียมพวก Train Data เช่นหากเรามีผลิตภัณฑ์ภายในบริษัทของเรา เราคิดว่าเราจะเจอคำถามแบบไหน แล้วหากเราเจอคำถามแบบนั้นเข้ามา เราจะตอบกลับไปอย่างไร ซึ่งคิดว่าหากเรามีสิ่งต่างๆเหล่านี้เตรียมพร้อมไว้ การทำให้ AI (ตามที่เรียนในหัวข้อนี้) น่าจะตอบกลับไปได้

หรือใครอยากทำให้สิ่งนี้มีความรู้ในเรื่องของกฏหมาย หรือความรู้ของหมออะไรพวกนี้ ก็จะต้องสร้าง Data Train ดีๆส่งให้กับมัน จากนั้นค่อยให้มันเรียนรู้แล้วตอบเรากลับมา (ที่เรียนในวันนี้ เป็นตัวอย่างการถามตอบ โดยเอา Train Data มาจาก Website Pantip เว็บบอร์ดของไทย ทำให้เวลาที่ถามอะไรพี่เขาไป พี่เขาตอบกลับมาห้วนเหลือเกิน ฮ่าๆๆๆ)

หากใครอยากจะทำเรื่องต่างๆเหล่านี้ ต้องบอกเลยว่า ไม่ใช่แค่มีความรู้เรื่องการสร้างปัญญาประดิษฐ์ แล้วจะทำพวกนี้ขึ้นมาได้ เพราะสิ่งที่จำเป็นนอกจากนั้น คือผู้ทำจะต้องมีทรัพยากรเป็นเงินสำหรับเครื่องที่ใช้ในการ Train ข้อมูล , ต้องมีคนเพื่อช่วยกันสร้าง Train Data ที่ดี , ต้องมีเวลาเพียงพอเพื่อที่จะทำให้การ Train Data ออกมาได้คลอบคลุม รองรับการตอบคำถามด้วยดี

ซึ่งเรื่องนี้มันจะยากขึ้นมาเลยสำหรับใครก็ตามที่เป็นนักพัฒนา Individual ไม่ได้สังกัดองค์กร และอยากจะสร้างสิ่งนี้ขึ้นมาเพื่อใช้สนับสนุนงานอดิเรกของตัวเอง (Colab ของ Google น่าจะอยู่ที่ประมาณ 70 ชั่วโมงต่อการเทรนแบบ 16 Bit 7 tb ในราคา 300 กว่าบาท )

ถามว่าจะเอาความรู้นี้ไปประยุกต์อะไรได้บ้าง ?!
ต้องบอกเลยว่าตอนนี้ยังคิดไม่ออก แต่คิดว่าการรู้วิธีทำเรื่องนี้ตั้งแต่ต้น จนขึ้นโครงได้ น่าจะเป็นพื้นฐานการศึกษาที่ดี ที่เราจะเอาไปต่อยอดในเรื่องอื่นต่อได้ในอนาคต

ลืมบอกไปว่าตอนเรียนในหัวข้อเรื่อง “เขียนโค้ดยามว่าง : หลักสูตรพัฒนาบอทเกมส์ด้วยภาษา Python ร่วมกับ OpenCV และ LdPlayer” มีการประยุกต์ใช้งาน Python + Machine Leaning ที่ทำให้เราพอเข้าใจ Concept พื้นฐานในวันนั้น

พอมาถึงวันนี้ การเรียนเรื่อง OpenThaiGPT ทำให้เรามีความรู้สึกดีใจ ก็เพราะว่าความรู้ที่ผ่านมาวันนั้นไม่ได้สูญเปล่า สามารถเอามาต่อยอดในสิ่งที่เรียนในวันนี้ได้ โดยสิ่งที่เหมือนกันของทั้ง 2 คอร์ส คือเรื่องของการใช้งานความสามารถของ Cuda บนการ์ดจอ + การส่ง Data ไปเทรนเหมือนๆกัน แตกต่างกันเพียง หัวข้อการทำบอทใช้การเทรนรูปภาพ ส่วนหัวข้อในวันนี้ ใช้การเทรนในส่วนของข้อความเท่านั้นเอง

หากใครอยากรู้ว่าหัวข้อนี้สามารถเรียนตามได้ที่ไหน? ต้องขอแนะนำว่าสามารถกดตามได้ที่ลิ้งค์นี้เลย > Soft Power Group

ก่อนจบไป ได้ Key Takeaways ดังนี้
-Cuda
-Pretrained
-Fine Tune
-Lora
-Lama
-Yolo7 , Yolo8 (อันนี้แถม แต่เอามาช่วยเรื่องทำความเข้าใจรูปภาพ)

เอาความรู้อีกจุดลงไปเพิ่มลงให้สมอง และภาวนาบอกกับสมองไปว่า “จง Connect , จง Connect , จง Connect”….

We are drowning in information but starved for knowledge.

John Naisbitt.
CategoriesTechnology...My interested

Skooldio : AWS: Cloud Essentials and Core Services

เป็นคอร์ส AWS จาก Skooldio ที่หากคุณเป็นคนชอบเรียนคอร์ส IT ภาษาไทย ที่มีมาตรฐานจาก Skooldio อยู่แล้ว เมื่อมีคอร์สใหม่ออกมา เชื่อว่าคุณจะเลือกลงเรียนโดยไม่ลังเลเลย

คอร์สนี้สอนเกี่ยวกับอะไร ?
คอร์สนี้เป็นคอร์สสอนการใช้งาน AWS เบื้องต้น มี Hand – On ให้ทำ โดยหลักๆแล้วคอร์สนี้จะพาไปรู้จักกับ Core Services ของ AWS แต่ละตัวไม่ว่าจะเป็น

-Account , Users & Permission ที่จำเป็นต้องรู้ก่อน เมื่อเริ่มใช้งาน AWS
-EC2
-S3
-RDS
-VPC


คอร์สนี้เหมาะกับใคร ?!
คอร์สนี้เหมาะกับคนที่อยากเรียนรู้เรื่อง AWS พื้นฐาน เพื่อที่จะไปต่อยอดเรียนรู้เรื่องบริการอื่นๆของ AWS ต่อไป

หลังเรียนจบ มีความรู้สึกอย่างไร ?
ตอนนี้คิดว่ายังงงๆอยู่ ในเรื่องของ Permission แต่ละตัว ที่ตอนแรกนั่งเรียน เห็นว่า AWS Provide มาให้เยอะเหลือเกิน Best Practice ที่ควรเลือกใช้จริงๆ เราควรเลือกอันไหนนะ ระหว่างเรียนยัง Config ไม่เป็น ก็เลือก Set แบบ FullAccess ไปก่อน แต่คิดว่าหากอยากเก่งในสายงานนี้หรือ Config ได้เก่งจนถึงขนาดมี Cer รับรอง คงต้องไป Takecourse มากกว่านี้แหล่ะ เพื่อจะได้เข้าใจ AWS แบบทุกอณู

เอาอีกจุดลงไปเพิ่มรอยหยักให้สมอง หวังว่ามันจะหาทางประยุกต์ได้ในอนาคตนะ….

Any fool can know. The point is to understand.

–Albert Einstein.

https://www.skooldio.com/certificate/6e0ab3ba-0286-422b-bbdc-0fe449ba4ac0

CategoriesTechnology...My interested

Skooldio : Mastering Application Development with Flutter

จากที่โพสต์ก่อนหน้า ตัวผมเองได้เขียนเอาไว้ ว่าเราไปลงเรียนเรื่อง Flutter ในหัวข้อ Skooldio : Building Hybrid Applications with Flutter มา แล้วในที่นี้ มีบางส่วนที่เราอยากรู้ แต่เรื่องพวกนั้นเรายังไม่รู้

แต่พอมา Take Course เรื่องนี้และเริ่มเรียนก็ไม่ผิดหวัง เพราะทันทีที่เริ่มเรียน ก็ได้รู้เรื่องราวที่มัน Advance ของ Flutter ที่มีประโยชน์มาก ไม่ว่าจะเป็น

-การติดต่อกับ Hardware ภายในเครื่อง : หัวข้อนี้สอนการใช้งานกล้อง การใช้งาน GPS การสร้าง Plugin โดย Code Native ในแต่ละภาษาเครื่อง คอร์สนี้จัดเต็ม ทำให้มองเห็นภาพกว้าง การพัฒนา Flutter ได้เข้าใจมากเลยทีเดียว

-การสร้าง Form เพื่อใช้งาน : หัวข้อนี้สอนการสร้างฟอร์ม ตั้งแต่พื้นฐานว่ามีที่มาที่ไปอย่างไร ต่อไปถึงการดึง Lib Forme จาก Pub.dev มาใช้งาน ทำให้การสร้าง Form สะดวกมากและเข้าใจในเรื่องการสร้าง Form แบบลึกซึ้งไปเลย



-การสร้าง App 2 ภาษา และการออกแบบ App ให้รองรับการใช้งานจากผู้พิการทางสายตาและอื่นๆ : หัวข้อนี้ พาไปรู้จักในเรื่องการออกแบบ ว่าเราจะออกแบบ App อย่างไรรองรับได้มากกว่า 1 ภาษา เมื่อเราเปลี่ยนภาษาภายในเครื่อง และในอีกหัวข้อ จะเป็นเรื่องการออกแบบ App ที่รองรับผู้พิการทางสายตา ทำให้ได้รู้จักกับ Widget semantics , MergeSemantics , ExcludeSemantics ที่เมื่อเรารู้จักการใช้งานแล้ว จะช่วยให้งานของเรารองรับกลุ่มผู้ใช้งานต่างๆได้ดีมากขี้น (ว้าวมาก ดู Advance มาก > องค์กรที่คิดถึงผู้ใช้ในแง่มุมนี้ด้วย น่านับถือมากๆเลย)


-การใช้งาน Firebase : หัวข้อนี้พาไปรู้จักับ Google Firebase ว่ามีที่มาที่ไปอย่างไร ช่วยให้เราได้รู้จักกับบริการนี้ ว่าทำมาเพื่อช่วยเหลือให้กับนักพัฒนาที่ไม่มีเวลาไปทำ Backend แล้วสะดวกอย่างไร จบด้วยการ นำเอาบริการ Firebase Login กับ Push Notification มาใช้งาน ดูจบแล้วมันง่ายจริงๆ (^____^”)


-การใช้งาน Google Maps : หัวข้อนี้ สอนกันตั้งแต่ติดตั้ง การใช้งาน การสร้างแผนที่ใน App ของเรา ใครอยากให้ App ของเราแสดงแผนที่ได้ ไม่ผิดหวังแน่นอน

-การใช้งาน Animation ใน Flutter : หัวข้อนี้ สอนการทำ Animation บน Flutter ว่ามีวิธีการเริ่มอย่างไร มีประเภทไหนบ้าง ไม่ว่าจะเป็น Animation in flutter , Hero Animation , Lottie , Rive ในหัวข้อนี้สอนแบบจับมือให้ทำตาม มีตัวอย่าง มีการดึงเอา Animation จากที่อื่นๆมาใช้ สะดวกและใช้งานง่ายมากๆเลย



-การ Deploy App ขึ้นบน App Store : หัวข้อนี้ สอนการเตรียมตัวสิ่งที่จำเป็นตั้งแต่ต้น จน Deploy ไป App Store , Play Store ว่ามีขั้นตอนอย่างไรบ้าง , Flutter Build Mode ต่างๆ เช่น Debug , Release , Profile ใครอยากรู้วิธีการส่ง App ไป Store ด้วยตนเอง ต้องดูเลย


ในที่นี้ยังมีหัวข้ออื่นๆ ที่ตรงกับสายงานที่ทำอยู่ในตอนนี้ คือ QA Engineer นั่นคือหัวข้อ Deep Dive into Flutter Debugging ที่ทางผู้สอนมาอธิบายเรื่อง Flutter Devtools โดยละเอียด ว่าเราสามารถใช้ Flutter Devtools นี้มาช่วยเพิ่มประสิทธิภาพให้กับงานที่เราทำได้อย่างไร โดยเริ่มตั้งแต่..
-Flutter DevTools คืออะไร
-How to Debug ผ่าน DevTools
-การจัดการ App Size
-การจัดการ Flutter Performance
-การเพิ่มความเร็ว ให้กับ App ด้วย Pre-Warmed Skia

มีเรื่องประทับใจอยู่เรื่องหนึ่ง คือระหว่างเรียนหัวข้อนี้อยู่ ทีม Dev ในบริษัทที่ทำงานได้คุยกันในเรื่องของการเช็ค “ว่าทำไมการดึงข้อมูลจากเว็บถึงได้ช้า” นี้พอดีและในบทสนทนา ได้พูดถึงตัว Flutter DevTools นี้ด้วย เลยทำให้ตัวเรายิ่งอินกับเรื่องนี้เป็นพิเศษ (อินมากสิ เพราะพึ่งเรียนมา 555)


เรื่องถัดมา เป็นเรื่อง Flutter Maintainalibity ซึ่งเป็นหัวข้อเกี่ยวกับการเขียน Test บน Flutter ว่ามีวิธีการเขียนอย่างไร

หากใครเคยเรียนเรื่องการ Test บน Flutter ทั้งจาก Udemy หรือหนังสือ Textbook เรื่อง Flutter ต่างๆ เหมือนกับตัวผมเอง จะเห็นว่าแหล่งต่างๆที่กล่าวมาจะพูดเรื่องการเทสในหัวข้อ Unit Test , Widget Test , Integration Test เพียงเท่านั้น และอาจมีบางที่ที่พูดถึงการทำ API Test ด้วยเช่นเดียวกัน

แต่ในคอร์สนี้ ผู้สอนได้นำเรื่องของ Golden Test มาพูดถึง ซึ่งเมื่อได้ยินครั้งแรก ผมรู้สึกไม่คุ้นเลย แต่หลังจากได้ฟัง ไปสักพัก ก็ได้ความรู้เพิ่ม ว่า “อ๋อ มันคือการทำ ​Snapshot Test นั่นเอง” (ความรู้ใหม่ จดๆ)

หลักการทำงานของ Golden Test คือ จะมีการเก็บหน้า UI ที่หนึ่งเอาไว้ จากนั้นหากมี Dev คนไหน เผลอลบ Code ส่วน UI นั้นทิ้งไป เมื่อเรามา Run Golden Test ด้วย Function expectLater หน้าจอที่ได้จะไม่เหมือนกัน ทำให้
การเทสด้วย Golden Test ไม่ผ่านนั่นเอง (Widget Test จะเทสได้แค่มีหรือไม่มี เจอหรือไม่เจอ แต่ Golden Test จะเทสในเรื่องของหน้าจอ UI ว่าหลังการเปลี่ยนแปลง Code ไป หน้า UI ยังเป็นแบบเดิมไหม มีการเปลี่ยนแปลงหน้า UI ไปหรือเปล่า) ซึ่งในคอร์สนี้ อธิบายเรื่อง Golden Test โดยละเอียดเลย


คอร์สนี้เหมาะกับใคร ?
คอร์สนี้เหมาะสำหรับคนที่มีความรู้เรื่อง Flutter มาบ้างแล้ว และอยากรู้ลึกในเรื่องของการเพิ่ม Performance การทำงาน หรือการทำงานตามหัวข้อต่างๆ ที่กล่าวไป จนกลายเป็นผู้เขียน Flutter ที่ครบเครื่อง

ตอนเรียนสวมหมวก 2 ใบในการเรียนคอร์สนี้
-1. QA พบว่ามีความรู้เรื่อง QA ในการใช้ Tools และ Technique ต่างๆ ที่มาช่วยให้ การ Test กับ Flutter มีประสิทธิภาพ เพิ่มมากขึ้น
-2. Developer พบว่าความรู้ต่างๆที่คอร์สนี้นำเสนอ เรียกว่าเป็นหัวข้อที่ Advance เลยทีเดียว ใครที่อยากประหยัดเวลาการเรียนรู้ด้วยตนเอง จากคอร์สออนไลน์อื่นๆ แนะนำให้มาลงเรียนคอร์สนี้ได้เลย


ก่อนจบหัวข้อนี้ไป ได้จด Key Takeaways เพื่อให้เราได้ไปศึกษาต่อ มาอีกเยอะเลย ไม่ว่าจะเป็น
-Profile Mode (–profile)
-Warm up with cache (–cache-sksl) (Pre-Warmed Skia ช่วยให้แอพทำงานเร็วขึ้น)
-Golden Test (Snapshot Test : flutter test test/golden_test.dart –update-golden)
-expectLater

Good Job!

https://www.skooldio.com/certificate/1d2011db-c04c-4039-9bd0-ae898534fc92

 I did then what I knew how to do. Now that I know better, I do better.

Maya Angelou.
CategoriesTechnology...My interested

เขียนโค้ดยามว่าง : หลักสูตรพัฒนาบอทเกมส์ด้วยภาษา Python ร่วมกับ OpenCV และ LdPlayer

มาลงเรียนคอร์สนี้ เพราะอยากได้ความรู้เรื่องของการทำ Bot + Computer Vision เอามาประยุกต์ใช้กับงาน QA ที่ทำอยู่ เพราะมีบางงานที่เราไม่สามารถทำให้มัน Automated ด้วยTools อย่าง Appium , Cypress , Selenium , Playwrigth ได้ จึงต้องศึกษาการใช้งาน Tools อื่นๆมาประกอบ โดยหันมาใช้ความสามารถของ Bot + Computer Vision เข้าร่วม

งานไหนที่ควรเอา Computer Vision มาใช้บ้าง ?
ตัวอย่างที่เคยเจอคืองานอย่างเช่น Line OA ที่ในหน้าจอ Rich View เราไม่สามารถไปเกาะที่ Element ในหน้านั้นๆได้ จึงไม่สามารถไปทำ Action ใดๆกับมันได้ เพราะไม่รู้ว่าส่วนไหนคือปุ่มกดในหน้านั้น หรืออีกตัวอย่างเช่นเกมส์ Ragnarok ตามเจตนาของผู้สอนที่ทำคอร์สนี้ทำออกมา ที่จะทำอย่างไร ให้คอมฯมันรู้ว่านี่คือ Poring นะ หากเจอมันเข้า ก็เข้าไปกดตีมันได้เลย !!! (มันจะฉลาดเกินไปแล้ว)

Concept คร่าวๆก็จะประมาณนี้

คอร์สนี้เป็นคอร์สที่ปูพื้นพื้นฐาน เริ่มตั้งแต่ Python 101 ไต่ระดับไปที่เรื่อง OpenCV กับการ Matching รูปภาพ
ไต่ระดับเพิ่มไปอีกกับการบังคับเมาส์และคีย์บอร์ด
ไต่ไปสูงสุดกับการทำ Deep Learning ทำให้คอมฯได้รู้จักกับ Poring และสอนทำ Bot ให้เล่นเกมส์แทนคน (เกมส์ทำมาเพื่อให้เราสนุก แต่ขนาดความสนุก คนพวกนี้ยังเลือกที่จะขี้เกียจ ให้ Bot ทำงานแทน เอากับคนประเภทนี้สิ 5555)

ความรู้สึกหลังเรียนจบ …คือคุ้ม และไม่ผิดหวัง เพราะได้รู้จักกับวิธีการทำ Deep Learning ที่สั่งให้คอมพิวเตอร์เรียนรู้จากรูปภาพ เพื่อทำความเข้าใจว่าวัตถุนี้-วัตถุนั้นคืออะไร (กว่าจะกดได้เอง ต้องหารูปภาพ เอามาเทรนโดยบอกว่านี่คือ Poring น้า อยู่นานพอตัว 55555)
ได้รู้จักกับ Pytorch ได้รู้จัก Anaconda ได้รู้จัก makesense.ai ได้รู้จักอะไรๆจากคอร์สนี้เยอะเลย คุ้มค่าคุ้มราคาจริงๆ

คอร์สนี้เหมาะกับใคร ?
-คอร์สนี้เหมาะกับคนที่อยากสนุก แต่ขี้เกียจ สร้างบอทมาเล่นเกมส์ (นั่นก็สรุปไวปายยยยย)
-คอร์สนี้เหมาะกับคน ที่อยากเรียนรู้เทคโนโลยีอะไรบางอย่างเพื่อนำไปสร้างเทคโนโลยีเกี่ยวกับ Computer Vision ช่วยให้คอมพิวเตอร์มองเห็น และเข้าใจในวัตถุได้ สามารถมีปฏิสัมพันธ์กับภาพนั้นๆ ผ่านทาง แป้นพิมพ์และเมาส์ได้นั่นเอง
-คอร์สนี้เหมาะสำหรับ QA ที่อยากเพิ่มความสามารถเรื่อง Computer Vision ที่นำไปประยุกต์กับงานตัวเองได้ (จบสวย)


จบไปอีกคอร์สในปีนี้ รู้สึกดีที่ได้ฟังวิทยากรเก่งๆ ที่ถ่ายทอดความรู้ออกมา ได้เข้าใจง่าย
หลังเรียนจบ ได้ความคิดว่า “มันได้เวลาปรับปรุงคอร์สของตัวเองสักที” โดยเอาหัวข้อนี้ไปรวมกับคอร์สตัวเองด้วยดีกว่า รวมเรื่อง OCR ลงไปด้วยก็น่าจะดี เขาจะได้ไม่หาว่า “เราไปลอกเขามา” 5555

หมายเหตุ :

ใครอยากรู้เรื่องนี้ เข้า Facebook พิมพ์หา Page ด้วยคำว่า “เขียนโค้ดยามว่าง” จะเจอเพจฯ ปรากฏขึ้นมา
อยากบอกเลยว่าคนสอนสอนดีมากกกก ราคาไม่แพงด้วย แนะนำเลย


The true delight is in the finding out rather than in the knowing.

–Isaac Asimov​.
CategoriesTechnology...My interested

Skooldio : Building Hybrid Applications with Flutter

เลือกลงเรียนคอร์สนี้เพราะอยากปรับพื้นฐานในเรื่องของ Flutter รวมไปถึง อยากเป็นผู้ที่มีความรู้ในเรื่องนี้จนถึงขนาดถ่ายทอดออกมา เลยเป็นที่มาให้มาลงเรียนในคอร์สนี้

ต้องบอกเลยว่าคอร์สนี้จากทาง Skooldio ก็ไม่ทำให้ผิดหวัง หลายเรื่องจากผู้บรรยาย คุณ ขจรศักดิ์ พีรพัฒนานนท์ senior developer จาก Agoda ที่ได้มาบรรยายให้ฟัง เป็นเรื่องพื้นฐาน เหมาะสำหรับคนที่อยากรู้ว่า Flutter คืออะไร มีที่มาที่ไปอย่างไร มี Mini Project ให้ทำเรื่อง Todo List ที่ทำให้เรารู้จักการทำงานในรูปแบบ CRUD ร่วมกับ sqflite ของ Flutter + การใช้งาน Navigater 2.0 และ 1.0 + มีการนำเอาความรู้เรื่อง State Management มาใช้สอนร่วมกันไปด้วย ซึ่งถือว่าเป็นเรื่องที่ไม่ง่ายและไม่ยากจนเกินไป หากใครที่นั่งฟังและทำตามไปด้วยจะทำให้เข้าใจหลักการทำงานของ Flutter ได้ขึ้นมากเลยทีเดียว (ใครที่พิมพ์ตามไม่ทัน ทาง Skooldio ก็มี Git เตรียม Source Code ไว้
แต่เชื่อเถอะว่าหากเราพิมพ์ตามไปด้วย จะเข้าใจหลักการทำงานมากกว่าการ Clone เอา Code มาทำตามมากกว่ามากๆ)

หลังเรียนจบรู้สึกว่าคุ้ม เพราะมีหลายเรื่องที่เรายังไม่รู้ …

แต่หากถามว่าจบคอร์สนี้แล้วเรามั่นใจมั้ยที่จะออกไปถ่ายทอดเรื่อง Flutter นี้ให้คนอื่นต่อ ?

ต้องตอบเลยว่า ยังมีอีกหลายเรื่องที่เรายังต้องฝึกอีกมากจริงๆ ทั้งเรื่องเทคนิคการจัดการ Code , เทคนิคการใช้งาน State Management , เทคนิคการออกแบบหน้าตาแอพฯให้ดูสวยงามตรงตามความต้องการของผู้ใช้ , เทคนิคการจัดการ State แต่ละ State เพื่อให้แอพฯของเราทำงานได้ดีขึ้น เทคนิคการเขียนเทสลงไปใน Flutter โดยการแยกส่วนประกอบและรองรับการทำงานแบบ Data Driven และอื่นๆ ที่ภายในคอร์สนี้อาจไม่ได้ลงรายละเอียดในส่วนนี้มากนัก


เอาจริงแอบท้อบ้างนะ เพราะตอนที่เรียนตั้งเป้าเอาไว้ว่าจะเอาเรื่องนี้ไปถ่ายทอดกับคนอื่นต่อให้ได้ แต่พอเรียนกับคนสอนที่เก่งในเรื่องนี้จริงๆ คือมีอาการไหล่ห่อไปเลย 555

คือเหมือนพวก Senior Dev แต่ละคน ทั้งในที่ทำงานของเราเอง และจากอาจารย์ผู้สอนท่านนี้เอง ที่ทำให้รู้สึกว่า คนพวกนี้เก่งจริงๆ นะ และเราก็ดูกระจอกไปเลย หากเราคิดจะทำเรื่องเหล่านี้ออกมาถ่ายทอดให้คนอื่นต่อ คืออายในความรู้ตัวเองนั่นแหล่ะ 5555

แต่ก็นะ นั่นคือเราในแบบที่เราอยากเป็นนี่


ขอบคุณทุกๆความรู้ ขอบคุณทุกๆผู้ที่ถ่ายทอดความรู้ครับ

https://www.skooldio.com/certificate/49a31ee9-9548-4e05-b78d-abebc227a04e

Wind extinguishes a candle and energizes fire.

From the book of “Antifragile” by Nassim Nicholas Taleb.