โค้ดที่เราไม่ได้เขียน เขียนขึ้นมาทำไมนะ

วันก่อนครับ เพื่อนร่วมงานผมบอกว่า PR ผมอ่านยากชิบหาย แม่งจริง เพราะว่าฟีเจอร์ที่ผมเปิด PR ไปนั้น ถ้าเป็นสมัยก่อนผมน่าจะใช้เวลาทั้งอาทิตย์แต่รอบนี้คือผมใช้เวลาแค่บ่ายวันเดียวกับ Agent ก็เสร็จ ผมยัดทุกอย่างลง PR ด้วยความภาคภูมิใจกับความสามารถในการคุม Agent ของผมทั้ง Spec ทั้ง Implementation เป็นร้อยๆ บรรทัด พอส่งให้รีวิว เพื่อนร่วมงานผมบอกว่า มันลำบากมากในการทำความเข้าใจโค้ด หรือไล่โค้ดอย่างเป็นระบบ เพราะว่ามันจะมี Spec หรือคำอธิบายที่ Agent เติมแต่งขึ้นมานอกจากโค้ดมาทำให้ไขว้เขว มาขัด Flow ในการทำความเข้าใจอยู่เรื่อยๆ สิ่งที่พังจริงๆ หลังจากผ่านมาซักพักใหญ่ ผมว่าผมเริ่มเข้าใจละว่ามันเกิดอะไรขึ้น และผมสามารถพูดได้เต็มปากว่า ต้นทุนในการผลิตโค้ดมันลดลงจนแทบไม่เหลือ แต่ต้นทุนในการทำความเข้าใจมันไม่ได้ถูกลงเลย ทุกๆ Practice ที่เราถูกสอนกันมา ถูกสร้างมาสำหรับโลกที่ “การเขียนโปรแกรม” คือส่วนที่แพงที่สุด ถูกสร้างจากสมมติฐานว่าโค้ดเกิดขึ้นได้เพราะผ่านการคิดมาแล้ว ในอดีตการคิดนั้นถูกส่งต่อผ่าน Code Review ที่ซึ่งคนในทีมจะได้ถ่ายทอดการเรียนรู้ให้กัน แต่พอปริมาณโค้ดที่ผลิตมีมากขึ้นเกินกว่าที่คนๆ หนึ่งจะรับไหว สิ่งนั้นแหละที่ทำให้เกิดช่องว่างทางการเรียนรู้ และมันขยายใหญ่ขึ้นมากเรื่อยๆ สิ่งที่ผมลองทำ พอผมรู้ตัวว่า PR ผมมันปนกันระหว่าง Spec กับ Implementation การทดลองแรกผมเลยลองแยก Spec ออกมาเป็น PR หนึ่ง ตามด้วย Implementation ออกมาเป็นอีก PR หนึ่งที่ Stack อยู่บน PR แรกอีกที ถ้าเพื่อนร่วมงานผมไม่สนว่า ผมสั่ง Agent ผ่าน Spec ยังไงบ้าง เค้าก็แค่ Skip PR แรกไปดูโค้ดเองได้เลย ...

August 12, 2026 · 2 min

The Deception of Indirection

We can solve any problem by introducing an extra level of indirection Developer หลายๆ คนน่าจะคุ้นเคยกับ Theorem ข้างบนมาบ้างจาก Fundamental theorem of Software Engineering (FTSE) ซึ่งหลายๆ คนก็น่าจะเห็นด้วย เพราะมันฟังดูเข้าใจง่ายมาก แค่เพิ่ม Interface หรือ Wrapper ขึ้นมาแค่นั้น แต่จริงๆ แล้วนี่เป็นความเข้าใจคลาดเคลื่อนไปมาก เพราะส่วนใหญ่ Developer เราจะสับสนระหว่าง Abstraction กับ Indirection ถ้าไม่ระวังให้ดี และไอความสับสนนี่แหละที่ทำให้ code เราเปลี่ยนจาก clean ๆ กลายเป็น Spaghetti ได้เลย Abstraction vs Indirection ความเข้าใจผิดมากที่สุดของเรื่องนี้คือ การที่คิดว่าสองสิ่งนี้มันเป็นสิ่งเดียวกัน เรามาลองดูนิยามมันคร่าวๆ ของสองสิ่งนี้กันครับ Abstraction is about “What” ตัว Abstraction ทำหน้าที่เป็นสัญญา ที่ซ่อนความซับซ้อน (complexity) ของการทำงานหนึ่งๆ ทุกครั้งที่เราใช้ Interface เป็นการบอกว่า “เราไม่สนนะว่าข้างในมันจะทำงานยังไง ตราบใดที่มันยังทำงานได้ตามกรอบที่เราวางไว้” เรียกว่าเป็นมุมมองแบบ Passive ก็ได้ Indirection is about “Where” ในส่วนของ Indirection สามารถอธิบายได้ง่ายๆ ว่าเป็นป้ายบอกทางมากกว่า โดยทำหน้าที่เป็นตัวกลาง (middleman) คอยบอกว่าให้เลี้ยวซ้าย เลี้ยวขวานะ ตาม Action ที่ได้รับมา หรือมองในอีกมุมของเป็นการตอบรับแบบ Active ครับ อีกจุดหนึ่งที่ทำให้ Indirection แตกต่างจาก Abstraction อย่างชัดเจนคือการต้องมี Registry ครับ ยกตัวอย่างกลับไปที่ Analogy ของป้ายบอกทางก็ได้ ถ้าเราอยู่ที่ 3 แยก มันต้องมีคนมาเขียนป้ายบอกว่า ถ้าเลี้ยวซ้ายไปไหน ถ้าเลี้ยวขวา แล้วจะไปถึงไหน นั่นแหละครับการ Registry ซึ่งนี่เป็นหลักการพื้นฐานไม่ต่างจากการที่เรามี DNS Resolver (เชื่อมระหว่าง Domain -> IP) หรือ built-in Python method อย่าง getattr() (เชื่อม String -> class method) ทุกอย่างมีราคา ย้อนกลับไปที่ FTSE ข้างบนครับ จริงๆ แล้วมันไม่จบแค่นั้น มันยังมีครึ่งหลังที่คนไม่ค่อยรู้อยู่ กล่าวไว้โดย David Wheeler ว่า ...

March 28, 2026 · 1 min

Review: DeepLearning.AI Data Engineering Professional Certificate

วันที่ 29 ธันวาที่ผ่านมาผมเพิ่งเรียนจบ DeepLearning.AI Data Engineering Professional Certificate มาครับ เป็น Coursera Specialization ตัวที่ 2 ในชีวิต หลังจากได้ตัวแรก Developing Application with Google Cloud เมื่อหลายปีมาแล้ว แต่เอาจริงๆ ผมก็ไม่ได้ตั้งใจว่าจะเก็บเป็น Specialization อะไรหรอกครับ จุดเริ่มต้นของเรื่องราวนี้คือ ผมรู้จัก Joe Reis จากหนังสือ Fundamentals of Data Engineering มาก่อนหน้านี้แล้วกับ Subscribe newsletter ของเค้าด้วย พอช่วงประมาณเดือนสิงหาถ้าผมจำไม่ผิดนะ อาจารย์ Andrew Ng เปิดตัวเว็บ deeplearning.ai ขึ้นมา แล้วผมก็เหลือบไปเห็นคอร์ส Data Engineering ในนั้นมาว่าจะเปิดตัวเร็วๆ นี้ แถมสอนโดย Joe Reis อีก ผมรอจนถึงเวลาเปิดตัวแล้วเค้าก็เลื่อนเปิด จนช่วงปลายๆ เดือนกันยาถึงเปิด ผมก็เริ่มเรียนตั้งแต่วันแรกเลย อาจารย์ Joe Course Format ตัวคอร์สนี้จั่วหัวว่า Specialization สำหรับคนที่ไม่เคยเรียน Coursera ตัว Specialization หมายความว่าจะเป็นชุดคอร์สที่จะประกอบไปด้วยคอร์สย่อยๆ หลายคอร์ส ถ้าเรียนจบครบทุกตัว นอกจากเราจะได้ Certificate ของแต่ละคอร์สแล้ว เราจะได้ตัว Cert Specialization เพิ่มอีกด้วยครับ ซึ่งโดยตัว Specialization เองสามารถมองเป็น Learning Path ได้ด้วย เพราะจากประสบการณ์ผมแต่ละคอร์สที่เรียงมาให้จะ support ความรู้ให้เราต่อยอดใน Course ถัดๆ ไปได้ครับ ...

December 31, 2024 · 5 min

ผมไปตรวจ VO2 Max มาครับ แล้วมันดีมากๆ

ขอย้อนความก่อน ถ้าใครสนใจแค่เรื่องการตรวจ VO2 Max จะข้ามส่วนนี้ไปเลยก็ได้ครับ ต้องย้อนไปว่าปีนี้ผมกลับมาวิ่งแล้วครับ หลังจากหยุดวิ่งจริงจังไปหลายปีมากๆ แล้วผมจะมีความคาใจอยู่นานตั้งแต่สมัยวิ่งไปถึง Half Marathon แล้วว่าผมไม่สามารถวิ่งยาวๆ จนจบได้เลย แต่เป็นวิ่งสลับเดินมาตลอด ถึงแม้จะพยายามเก็บระยะ จะพยายามซ้อมตามตารางแล้วก็เถอะ จนกลับมาวิ่งรอบนี้ผมตั้งเป้าหมายง่ายมาก (น่าจะง่ายแหละ) คือขอแค่วิ่งยาวๆ จบ ไม่ต้องหยุดเดินตามระยะที่ต้องการได้ก็พอ ทีนี้พอเข้าโปรแกรมซ้อมกับนาฬิกา สิ่งที่ค้นพบหลังจากผ่านไปไม่กี่สัปดาห์คือ ผมกลับมา Loop เดิมคือยังวิ่งตามโปรแกรมซ้อมจนจบไม่ได้ Pace ลั่น จนหมดแรงแล้วก็เดินอีกแล้ว จนเริ่มเรียนรู้ที่จะคุม Pace ให้เป็นซึ่งเป็นจุดเปลี่ยนมาก เพราะผมเริ่มวิ่งได้ไกล ได้นานขึ้นเรื่อยๆ แล้วพัฒนาการมันเพิ่มขึ้นแบบรู้สึกได้ แต่พอผ่านไปได้ประมาณ 3/4 ของโปรแกรมมันก็ถึงจุดที่ผมกลับมาคาใจอีก ผมเริ่มที่จะรู้สึกว่า Hit-the-wall เหมือนมีกำแพงที่ข้ามไปไม่ได้คือไป Pace ที่ต้องการไม่ได้ซักที อีกจุดที่คาใจคือ เริ่มรู้สึกว่านาฬิกามันโชว์ Heart Rate Zone แปลกๆ เวลาวิ่งคือไป Zone 3-4 ทั้งๆ ที่ผมรู้สึกว่าเอะ มันก็ยังไม่เหนื่อยนี่หว่า แต่บางวัน Zone 4 ก็เหนื่อยมากๆ เลยรู้สึกว่ามันมีอะไรผิดปกติละ จังหวะนั้นคือเริ่มมองหาตัวช่วยละ เลยไปเจอใน The Running Channel ว่ามันมีตรวจอะไรแบบนี้ด้วย หลังจากนั้นก็เริ่มหาข้อมูลเลยมาเจอของไทยมีหลายที่เลย แต่ผมเจอของ Health Performance Team กับคุณหมอแอร์ที่เป็นนักกีฬาด้วย เลยตัดสินใจนัดเลย ...

October 13, 2024 · 3 min

แชร์ประสบการณ์การเดินทางสู่ DIY Car Detailer ตลอด 1 ปีที่ผ่านมา

ผมมีรถของตัวเองได้ตอนนี้ก็เกือบๆ จะครบหนึ่งปีละครับ สิ่งหนึ่งที่ขาดไม่ได้เลยนอกจากขับมันคือการดูแลรักษามันครับ แล้วไม่รู้ว่าผมโชคดีหรือโชคร้ายที่โตมาจนอายุ 30 กว่าเนี่ย ไม่เคยต้องช่วยพ่อแม่ล้างรถที่บ้านเลย เลยกลายเป็นว่าผมไม่รู้ว่าวิธีล้างรถที่ถูกต้องมันคือยังไง แต่แรกสุดเลยเนี่ยผมก็ไม่ได้ตั้งใจจะล้างเองหรอกครับ ผมก็เหมือนกับทุกๆ คนคือ คิดไว้ว่าจะเข้าร้าน Car care ใช้เงินแก้ปัญหาให้คนจัดการให้ สิ่งที่ผมทำก็คือ ผมทักไปหาเพื่อนรักผมคนนึงว่า ผมจำได้แม่นเลยว่า ผมเกือบละ เกือบจะเข้าวงจรร้านล้างรถอัตโนมัติละ ที่เราแค่ขับเข้าไปในสายพาน แล้วปล่อยให้มันฉีดน้ำกับปั่นๆ ให้จนเสร็จ ผมจำได้ว่าจอดต่อคิวอยู่หน้าร้านแถวบ้านอยู่ประมาณ 5 นาที แล้วผมก็ทำการตัดสินใจที่ดีที่สุดครั้งนึงในชีวิตคือ ผมเลือกที่จะไม่รอแล้วขับกลับบ้านไปเลย ที่ผมบอกว่าเป็นการตัดสินใจที่ดีที่สุดในชีวิตเพราะหลังจากนั้นผมเลยได้รู้จักคำว่า รอยขนแมว หรือ Scratch & Swirl ครับมันคือ รอยข่วนเล็กๆ ในชั้นแลกเกอร์ซึ่งมองผ่านๆ อาจจะไม่รู้สึกอะไร แต่ถ้ามันสะสมนานๆ เข้าตัวนี้แหละครับที่จะไปหักเหแสงที่ตกกระทบผิวสีรถ แล้วทำให้รถไม่เงา ซึ่งการล้างรถโดยการพารถไหลผ่านเครื่องให้มันปั่นอัตโนมัติให้เนี่ย ตัวสร้างรอยขนแมวชั้นดีเลย ผมเป็นชาว Chemical Guys หลังจากนั้นก็เป็นช่วงเวลาที่ผมเริ่มศึกษาครับ ซึ่งผมเคยเล่าไปแล้วบางส่วนในบล็อก มือสมัครเล่นเมธอด ถ้าใครยังไม่ได้อ่านก็ลองไปดูได้ ในช่วงแรกๆ ผมมีเพื่อนอยู่ 2 คนครับที่ทำให้ผมรู้จักวิธีการล้างรถที่ถูกต้องสองคนนั้นชื่อว่า Joey กับ Henry จากช่อง Chemical Guys ครับ เพื่อนโจอี้ เพื่อนเฮนรี่ ...

November 4, 2023 · 3 min

Working how to work

💡 TL;DR How I utilize Notion for everyday work จะนับว่าบล็อกนี้เป็นภาคต่อ ของต่อของต่อของซีรีย์บล็อกที่ผมเล่าว่าใช้ Bullet Journaling ยังไงมาตลอดหลายปีก็ได้ แล้วผมใช้ System นี้มาตั้งแต่ประมาณช่วงปลายปี 2021 จนถึงปัจจุบัน ถึงแม้มันจะมีการปรับเปลี่ยนรูปมาเรื่อยๆ แต่มันก็ได้พิสูจน์แล้วว่า มันช่วยผมจำและทำงานได้ดีมาตลอดหลายปีที่ผ่านมา และแม้กระทั่งบล็อกนี้เองก็เขียนอยู่บน Notion เป็น First draft เช่นกัน First Version ต้องบอกก่อนว่าก่อนหน้าจะมาอยู่บนนี้เป็นยุคที่ผม Hybrid อยู่บน Notion + Physical Notebook มาก่อน แต่ปัญหาหลักที่เจอคือ พอมันต้องแยกสองโลก ชีวิตจะเริ่มหาของยากขึ้นเรื่อยๆ ถึงแม้ผมจะเคยเชื่อว่าเราควรจะอยู่ในโลก Physical แต่ด้วยธรรมชาติของงาน Software ต้องอยู่บนคอมพิวเตอร์เกือบตลอด ต้องเก็บลิ้งค์หรือ Code snippet มันเลยทำให้ไม่สามารถไปใช้สมุดได้เต็มตัว จนถึงจุดนึงผมยอมแพ้แล้วย้ายกระบวนการในสมุดมาอยู่ใน Notion ทั้งหมด ด้วยความที่ทีมที่ผมทำงานด้วยยังอยู่บนรอบ Sprint เพราะฉะนั้นการแบ่ง Section หลักๆ จะยังเป็น Sprint based อยู่ แต่จะมี Highlight ว่าวันไหนเป็นวันหยุดด้วยการเปลี่ยนวันเป็นสีแดงไว้ด้วย แต่ก็จะมีความใช้ practices ของ Bullet Journaling อยู่คือเขียนวันของทั้งเดือนลงมาเลยทั้งหมดในหน้าเดียว วิธีนี้ช่วยให้เห็นภาพรวมของทั้งเดือนว่ามันมี Event อะไรบ้าง แล้วสิ่งที่ Notion มาช่วยเติมเต็มการทำ bullet journaling คือการที่เราสามารถ Merge ตัว Monthly Log กับ Daily Log เข้าด้วยกันได้แบบแนบเนียนมาก โดยการใช้ Toggle List ครับ ...

March 12, 2023 · 3 min

มือสมัครเล่นเมธอด

จุดเริ่มต้นของบล็อกนี้มันมาจากรูปข้างบนครับ มันเป็นประโยคที่แฟนผมถามวันนั้นแล้วทำให้ผมคิดอะไรได้บางอย่าง คือต้องบอกว่าผมเป็นคนที่มีงานอดิเรกผ่านมา แล้วผ่านไปในชีวิตเยอะมาก ลองไล่ๆ ดูเอาเฉพาะไม่กี่ปีมานี้ตั้งแต่ Skateboard, Flight Sim, Racing Sim, Keyboard, PC Building, เรื่อยมาจนถึง Car Detailing คือมันเยอะมาก แล้วพอมามองย้อนดูดีๆ ผมสังเกตุเห็นรูปแบบของการเรียนรู้ของตัวเองชัดมาก เดี๋ยวผมจะค่อยๆ เล่าให้ฟัง Passion มันบังคับกันไม่ได้ จั่วหัวอย่างแรกเลยวิธีนี้ใช้กับเรื่องที่เป็นความอยากจาก External Factor ไม่ได้ หรืออย่างน้อยก็สำหรับผมนะ ความอยากจาก External Factor ยกตัวอย่างเช่น จะไปสอบ Something หรือเป็นสิ่งที่คนอื่นที่ไม่ใช่ตัวเราเองสั่งมาเช่น “พี่อยากได้ … ไปดูมาให้หน่อย” อะไรแบบนี้เป็นต้น สิ่งหนึ่งที่ผมสังเกตุเห็นได้ชัดจากประสบการณ์ตัวเองคือ ของที่เราจะเรียนรู้ได้ยาวนานอย่างไม่เหน็ดเหนื่อย มันต้องเป็นของที่ผุดขึ้นมาจากความอยากรู้ อยากทำด้วยตัวเองจริงๆ ยกตัวอย่างเช่น “ผมอยากให้รถของผมมันดูเงาเหมือนใหม่อยู่ตลอดเวลา” หรือ “ผมอยากจะทำ Kickflip ให้ได้ซักครั้ง” ความอยากที่ชัดเจนจากภายในตัวเองแบบนี้มันจะโผล่มาแว็บๆ ตลอดเวลาครับ สิ่งที่มันต่างจาก “ความอยาก” อื่นๆ คือมันกลับมาในใจมากกว่าหนึ่งครั้ง บางทีมันเกิดจากความอยากทำแต่จังหวะ มันไม่ได้ แล้วพอเหมือนจังหวะมันจะมาอีกแล้วมันกลับมาอีกรอบ แสดงว่า “ความอยาก” นั้นมันมีความแข็งแรงพอที่จะไปต่อละ รู้ว่าเราชอบเรียนแบบไหน ผมเป็นคนเกลียดการอ่านหนังสือสอบครับ ผมนับครั้งในชีวิตได้เลยว่าผมอ่านหนังสือก่อนสอบแบบจริงๆ จังๆ กี่ครั้ง หลายครั้งในชีวิตผมจะลงเองด้วยการเล่นเกมในคืนก่อนสอบ แล้วไปอ่านเอาหน้าห้องเอา แต่ผมค้นพบมานานแล้วว่าผมชอบโมเม้นตอนกำลังเรียนอยู่มากสุด แล้วผมจำไม่ได้แล้วว่าผมได้ยินประโยคนี้มาจากใคร แต่มันยึดติดเป็นหลักชีวิตผมมานานมากว่า “ถ้าตลอดทั้งเทอมไม่ตั้งใจเรียน แล้วมาตั้งใจอ่านหนังสือแค่วันก่อนสอบ มันจะมีประโยชน์อะไร” (disclaimer: ผมก็ไม่ได้ตั้งใจเรียนตลอดหรอก แต่ผมสนุกตอนเรียนเยอะอยู่) ...

March 4, 2023 · 2 min

2022

ผมคิดมาหลายวันละ ว่าถ้าปีแรกของอายุขึ้นต้นด้วยเลข 3 นี่ผมไม่ได้เขียน Year In Review ผมคงจะเสียใจมาก เพราะมันมีเรื่องราว เยอะจัดๆ แล้วหนักด้วย ถึงแม้ตอนนี้จะผ่านมาได้เกือบหมดละ แต่พอมองย้อนไปนี่มันไม่ง่ายเลย 👨‍🦳💰 Dad & Dept เรื่องแรกที่ใหญ่ที่สุดปีนี้เลยคือพ่อป่วยติดเชื้อที่ขาตอนช่วงต้นปี ทั้งๆ ที่เป็นคนออกกำลังกายทุกวัน หนักจนถึงระดับที่ว่าตอนหนักๆ นี่ไม่พูดไม่จาเลย แล้วยังจำได้แม่นว่าเป็นช่วงเวลาเดียวกันกับที่โควิดระบาดหนักสุดในปีนี้ ทำให้ช่วงสัปดาห์แรกที่พ่อป่วยไม่ได้เจอหน้าเลย แม่ก็ไปเจอหน้าไม่ได้เพราะโรงพยาบาลปิดวอร์ดหมด เป็นสาม สี่วันที่ระทึกมากตอนนั้นเพราะกลัวทั้งอาการที่พ่อป่วย กลัวโควิดมาแทรกซ้อนอีก แต่พ่อก็เอาตัวรอดมาได้พร้อมกับเรื่องเล่าความหิวน้ำที่ยังเล่าจนถึงทุกวันนี้ แต่ก็ยังไม่จบเพราะต้องพักฟื้นอีกเกือบๆ เดือนนึง ถึงได้กลับบ้าน ซึ่งตอนนี้ก็กลับมาพูดเสียงดังปกติ พร้อมกับน้ำหนักที่ลดไปจากจุดสูงสุดไปเกือบ 15 กิโล ในช่วงเวลาเดียวกันกับที่พ่อป่วย ตอนนั้นเลยได้รู้ความจริงอีกอย่างว่าที่บ้านที่หนี้สินอยู่จำนวนนึง อาจจะไม่ได้เยอะมากถ้าเทียบกับคนอื่น แต่ก็ไม่สามารถจ่ายให้หมดได้ภายในวันเดียว ซึ่งพอพ่อป่วยระบบที่พ่อคอยดูแลหนี้ตัวนี้มันรวนหมดเลย เพราะพ่อไปจ่ายเองไม่ได้ เลยทำให้ที่บ้านต้องช่วยกันจัดการกัน หลังจากตั้งสติได้แล้วก็คือต้องงัดทุกความรู้กับประสบการณ์ในการจัดการหนี้ตัวเองมาก่อนหน้านี้มาใช้ทั้งหมด จนได้แผนที่ตอนแรกถูก Projection ไว้ว่าหนี้ตัวนี้เนี่ย น่าจะหมดกลางๆ ปี 2025 แต่ Inspect & Adapt แผนมาเรื่อยๆ จนบอกได้เต็มปากเลยว่าหนี้ 95% ถูกจัดการหมดแล้วในปี 2022 นี้ ขอเล่าเรื่องหนี้ต่ออีกนิดนึงละกัน คือจริงๆ มันไม่ยากแต่เราต้อง Proactive กับมันแทนที่จะ Reactive ตอนบิลแจ้งหนี้มันมาถึงบ้านแล้วตลอดปีที่ผ่านมา Principle หลักๆ ที่ใช้ตอนจัดการจะมีอยู่ 3 อย่างเลยคือ cash flow ถ้าไม่มี cash flow เอาไปจ่ายหนี้อย่างเดียวจนหมดไม่มีตังค์กินข้าวทำอย่างอื่น เราจะไม่มีแรงไปทำงานหาเงินต่อเลย อันนี้คืออย่างแรก อย่างที่สองคือ Visualize คือตอนแรกที่เรารู้ว่ามีเรื่องหนี้นี้ไม่มีใครเห็นภาพเลยว่ามันมากแค่ไหน แล้วมาจากตรงไหนบ้าง พอเรา Projection ออกมาได้มันเลยทำให้วางแผนได้ง่ายขึ้นมากว่าจะจัดการยังไง อย่างสุดท้ายพูดไปข้างบนแล้วคือ Inspect & Adapt ทุกๆ 2-3 เดือนในปีนี้ผมกลับมารีวิวแผนที่วางไว้ แล้วแทบจะปรับใหม่ทุกครั้ง หลังเราเข้าใจธรรมชาติของหนี้หลายๆ อย่างมากขึ้นเลยทำให้ค่อยๆ ร่นเวลาเข้ามาได้จนหมดไปส่วนใหญ่ในปีนี้ ...

December 31, 2022 · 2 min

ผม custom layout คีย์บอร์ดยังไงบ้าง

ตอนนี้น่าจะถึงเวลาอันสมควรละที่จะมาอัพเดทโพสในหมวดคีย์บอร์ดอีกครั้งหลังจากหายไปนานมาปีกว่า จนถึงตอนนี้ก็ใช้คีย์บอร์ดมา 4 layout physical layout + 3 logical layout โพสนี้เลยจะมาเล่าให้ฟังว่าปรับตัวเองให้ใช้คีย์บอร์ดที่มีอยู่แต่ละตัวได้ยังไง สลับไปสลับมาโดยที่ไม่บ้าไปซะก่อน โดยจะเริ่มจากตัวที่มีปุ่มเยอะที่สุดไล่ลงไปหาปุ่มน้อยที่สุดครับ Ergodox EZ ในบรรดาทุกตัวในรอบหนึ่งปี ตัวนี้เป็นคีย์บอร์ดที่มีวิวัฒนาการ layout เป็นหลักมาอย่างต่อเนื่อง เรียกได้ว่าปรับไปใช้โปรแกรมไหนก็มาปรับตรงนี้ตามเดี๋ยวเราค่อยๆ ดูไปทีละ layer เลย layer 0 - Dvorak ด้วยความที่ layout ภาษาอังกฤษหลังผมเป็น Dvorak เลยบังคับโดยปริยายว่า layer แรกต้องเป็น Dvorak ก่อนหน้านี้เคยใช้ Dvorak เป็น layer หลังๆ แต่ค้นพบว่ามันจำกัดการใช้งานคีย์บอร์ดลงเยอะมาก ถ้าเป็น layer รองๆ ซึ่งนอกจากจะใช้เป็น Dvorak ในตัว Base แล้ว Modifier ข้างๆ ก็ปรับตาม Ergodox เช่นกัน เพราะปุ่มน้อยลงตรงขอบๆ แต่มากขึ้นในส่วนที่เป็นนิ้วโป้ง ซึ่งพวก - = [ ] ที่ Dvorak เอาไว้ทางขวาบนผมก็แมพมาไว้ในแถวล่างสุด แล้วใช้นิ้วโป้งกดแทนครับ ...

August 12, 2022 · 4 min

👷📚 เล่าให้ฟัง: ย้ายสายจาก Software Engineer มาเป็น Data Engineer สามเดือนแรก

โพสนี้เหมือนเป็นภาคต่อจาก ลาออกยังไงไม่ให้บ้านบึ้ม ครับคือกระบวนการต่างๆ มันเริ่มตั้งแต่เรายังทำงานในที่เก่าอยู่ โพสนี้เลยจะมาเล่าให้ฟังคร่าวๆ ว่าก่อนจะเริ่มงาน Data Engineer และที่ผ่านมาสามเดือนนี้ผมผ่านอะไรมาบ้าง พร้อมวิธีการเอาตัวรอดในแบบของผมเองละกัน 💡 Disclaimer: ความเห็นต่างๆ ในโพสนี้เป็นความคิดเห็นส่วนตัว ไม่ได้เกี่ยวข้องกับบริษัทที่ผมทำงานอยู่ปัจจุบันแต่อย่างใดครับ ก่อนเริ่มงาน 1 เดือน จากตอนที่แล้วผมบอกไว้ว่ามันจะมีช่วงที่เรา lower your light ซึ่งเป็นเวลาที่ดีที่สุดที่เราจะเตรียมตัวกับงานใหม่ จังหวะนี้เป็นช่วงที่ผมหาข้อมูลงานใหม่ให้มากที่สุดครับ ซึ่งจากเท่าที่คุยตอนสัมภาษณ์ผมรู้แค่ว่า Tooling หลักคือ Dagster ช่วงแรกๆ ผมเลยดู Dagster เป็นหลักเลยซึ่ง ณ จุดนี้ถ้ามองย้อนไปผมบอกเลยว่า Tutorial ของ Dagster มันเป็นกับดักครับ 555 คือมันดูเหมือนจะเข้าใจง่าย job, ops, เขียนเทสได้ อะไรก็ว่าไป แต่ของจริงมันอยู่ใน Concept กับตัวอย่างใน GitHub ของ Dagster เองครับ อันนั้นคือถ้ากระโดดต่อมาจาก Tutorial ก็จะมีความช็อคน้ำหน่อยๆ แต่เดี๋ยว Dagster ผมมาเล่าต่อในอนาคต มีอีกหลายเรื่องเลยให้เล่าครับ นอกจาก Dagster แล้วผมต้องขุดความทรงจำว่าเพื่อนร่วมงานผมในอนาคต (ซึ่งเป็นเพื่อนร่วมงานในปัจจุบัน) เค้าทำอะไรมาบ้าง ซึ่งโชคดีมากที่เค้าเคยเล่าไว้ใน LINE Developers Podcast ไว้ถึง 2 ตอนเลย เพราะใน Podcast นี้แนะนำไว้ชัดเจนเลยว่า เราควรจะรู้จัก Hadoop ecosystem นะ ซึ่งผมไต่ไปหลายบล็อกมาก ช่วงนั้นเพื่อจะอัพเดทความรู้ Hadoop ตัวเองที่ถูกแช่ไว้ตั้งแต่ปี 2013 ซึ่งในบรรดาบล็อกทั้งหมดที่ผมไล่อ่านมา ผมประทับใจบล็อก Good Old Days Hadoop นี้มากครับซึ่งเล่าประวัติ Hadoop ได้เห็นภาพมาก รวมถึงพูดถึง YARN, Spark ไว้นิดหน่อยด้วย ซึ่งตอนนั้นผมยังจับภาพไม่ได้เลยว่ามันเกี่ยวกันยังไง ...

July 1, 2022 · 4 min