Skip to content

2025

Goal for this year

อ่านหนังสือให้ได้ 2 เล่ม ทำสำเร็จ 🎉
dropped: เลิกเป็นคนดี แล้วจะมีความสุข by Tokio Godo
Productivity Hacks สูตรโกงของคนเก่งงาน by Emily Price
อ่านเร็ว เข้าใจ ไม่มีวันลืม by Mark Tigchelaar
หยุดอ่านไปก่อนชั่วคราว 😅
Algorithms Unlocked by Thomas H. Cormen
Merge sort
“master method” ใช้แปลง recurrence equation หลายๆตัวให้อยู่ในรูป non-recursive หนังสือไม่ได้บอกอะไรต่อ ต้องไป research เอาเอง
อ่านจบ Chapter 3 การ proof asymptotic annotation เริ่มถูกผลักออกไปเป็น “อ่าน CLRS เอานะ”
The Elements Of Computing System by Noam Nisan & Shimon Schocken
อ่านบทที่ 3 จบ คอร์ส provide DFF chip ให้ แต่อยากลองทำเองให้ได้
อ่านบทที่ 4 จบ ยังทำ project fill.asm ไม่เสร็จ
หาคอร์สเรียน 1 คอร์ส
ongoing:
The Elements of Computing Systems
unit test = function test ถูก แต่ไม่ครบถ้วน จริงๆแล้ว unit คืออะไรก็ได้ที่ทุกคนในทีมนิยาม แต่ด้วยความไม่มีเวลา ก็เลยตั้งไปเลยว่า function เป็น unit ซึ่งบางทีการตั้งแบบนี้อาจทำให้ unit test เสียคุณค่าเชิง business ไป (ไม่รู้เทสแล้วมัน benefit business ส่วนไหน)
integration test = test ที่ cover มากกว่า 1 unit
ถ้ามี unit test ในระบบที่รกๆจะทำให้แก้ไขยาก ยอมแลกไปทำ integration test ดีกว่า
ไม่ควรมีเทสที่ทดสอบเรื่องเดิมซ้ำๆในทุก layer (unit/integration) การจะเทสซ้ำหรือไม่ควรจะคำนึงที่ QA กับ business ว่ามัน critical มากขนาดไหนที่จะยกเคสเดิมที่เคยมีระดับ unit อยู่แล้วขึ้นมาเทสที่ integration อีกรอบ(หรือมากกว่านั้น)
ข้อเสียของการเทสซ้ำหลักๆเลยก็คือสิ้นเปลืองเวลาและถ้าพัง 1 จุดจะระบุแหล่งที่มาแทบไม่เจอ (คิดที่จำนวนเคสเยอะๆ)
การจะแบ่ง unit ของ application นั้นต้องเน้นประสบการณ์ แต่จะมี guideline อยู่ว่า
ถ้า application ที่กำลังทำอยู่มี “domain” ของส่วนประกอบแต่ละส่วนอยู่ (เป็นคำที่ domain expert รู้แล้วเข้าใจได้ว่าส่วนนั้นประกอบไปด้วยอะไร และสามารถบอก spec ได้ด้วยว่ามันทำงานยังไงเป็น step) ก็ควรออกแบบ unit ให้เข้ากันกับ domain (keyword: Domain-Driven Design)
ส่วนไหนที่เป็น 3rd party ก็ให้แยกออกไปเป็น unit อื่นเลย เพราะจะ detect ได้ง่ายว่าเวลาระบบล่มขึ้นมามันเกิดจาก core system หรือ 3rd party system (keyword: Clean Architecture)
ขนาดของ unit ต้องไม่ใหญ่หรือไม่เล็กจนเกินไป
ทำ
ของ course ที่ดองไว้ตั้งแต่ปี 2021 ให้มันเสร็จ ทำไม่สำเร็จ 😰
ฝึกใช้ game engine ทำไม่สำเร็จ 😰
กำลังเลือกระหว่าง Stride(Windows) กับ Phaser Editor(Windows/mac/linux) แต่ไม่ชอบ generated code ของ Phaser
ตัดสินใจไม่เลือก Phaser เพราะว่า Editor ควบรวมกิจการกับบริษัทที่ใหญ่กว่าแล้วเน้น subscription 100% ทำให้ license เดิมใช้งานบนเว็บไม่ได้แล้ว เลยกะไม่ใช้ไปเลย
เลือก Stride เพราะว่าตั้งใจจะ reimplement ด้วย C# อยู่แล้ว และ engine นี้ก็ใช้ C# ทำ script จะได้ลดเวลาเรียนรู้ภาษาใหม่ไปด้วย
มีโอกาสได้แตะ Unreal Engine นิดหน่อย แต่ด้วยความไม่ชินต้องใช้ AI assist อยู่เป็นส่วนใหญ่
15.54%
ทำไม่สำเร็จ 😰
ออกกำลังกายให้ได้อาทิตย์ละ 1 วัน ทำไม่สำเร็จ 😰
หลังหายจาก covid รอบ 2(?) สัมผัสได้ว่าร่างกายพังอย่างรุนแรง เลยออกไปเดินสวนสาธารณะ 2 รอบหลังเลิกงานเกือบทุกวัน
แต่ช่วงปลายเดือน พ.ค. ฝนตกทุกเย็น ทำให้ออกไปยากขึ้น
เดือน มิ.ย. ออกไปเดินแทบจะทุกวันที่เป็นไปได้ จะมีเว้นวันอังคารกับพฤหัสบ้าง เพราะติดเรียนตอน 2 ทุ่ม
เดือน ก.ค. ได้ออกไปเดินน้อยมาก ส่วนมากจะมีฝนตกตอนจะออกไปเดินเสมอ
เดือน ส.ค. ก.ย. ออกไปเดินน้อยมาก ประมาณอาทิตย์​ละ 1 วันได้ ติดทั้งฝนตกและไม่มีเพื่อนเดิน
เดือน ต.ค. พยายามตื่นเช้าเพื่อไปเดินออกกำลังแทนตอนเย็น ทำได้ 1 วันต่ออาทิตย์​
เดือน พ.ย. เพิ่งย้ายบ้าน อยู่ระหว่างหาพื้นที่สาธารณะเพื่อเดินออกกำลัง
เดือน ธ.ค. ไปเดินที่สวนสาธารณะ 2 ครั้งถ้วน
เอาหนังสือที่ไม่คิดว่าจะอ่านซ้ำขาย คิดว่าจะขายไม่ออกแล้ว แต่ก็มีคนซื้อ คนซื้อก็ดูจะสนใจด้วยว่าเนื้อหามันเป็นยังไง เพราะตอนเอาหนังสือไปส่งเขาถามว่าเล่มนี้มันเกี่ยวกับอะไร ไม่ได้อ่านบทนำมาก่อน ทำให้มีกำลังใจอยากจะสลายกองดองมากขึ้น
หนังสือขาย
ชื่อปก
สุดยอดธุรกิจเกษตรสไตล์ญี่ปุ่น
ใช้เงินอย่างไรให้มีเงินใช้ตลอดชีวิต
เลิกเป็นคนดี แล้วจะมีความสุข
self esteem bible
There are no rows in this table
หักห้ามใจ ทำสำเร็จ 🎉 PC มี minor upgrade เฉพาะ GPU ส่วนมือถือแค่เปลี่ยนแบตกับฝาหลังใหม่เอง

Projects

ทำ load testing tool ที่ขึ้นโครงจาก โดยที่โปรแกรมจะรับ argument เป็น path json file ที่เก็บ configuration ของแต่ละ load test (load test api endpoint, mock api endpoint, request per sec, duration, content type, ...) โดยที่ตัว body ของ request สามารถ custom ได้
tool ตัวนี้ทำให้ไม่ต้องเขียน jq เอง (ตอนเริ่มต้นเขียน jq เองเพื่อทำ custom body)
tool ตัวนี้สามารถทำ custom multipart body ได้ ถ้าใช้ vegeta binary จะทำ custom body ไม่ได้ แค่ส่ง multipart เฉยๆก็ลำบากแล้ว
เขียน go ที่เอาใช้จริงจังเป็นครั้งแรก
ได้ทำ docker image หลายตัวสำหรับ load testing ด้วยตัวเอง และเอาไป deploy ให้ทีมใช้
research/develop postgresql database backup/restore tool
เปรียบเทียบระหว่าง Barman กับ pgBackrest ว่าควรจะใช้อันไหน
ได้เข้าใจว่าการ backup/restore มันทำยากขนาดไหน และมันทำงานยังไง(ต้องเช่า cloud db ลองทำ backup/restore เอง 1 วัน)
เข้าใจความแตกต่างระหว่าง Barman กับ pgBackrest
ทำ docker image เพื่อตอบโจทย์ความต้องการลูกค้า
research postgresql query optimization
ได้มีโอกาสทำ GET API ที่ต้อง return JSON ก้อนใหญ่มาก (paginate แล้ว/ดั้งเดิมเป็น graphql แล้วจังหวะ rewrite ไม่ได้มีแผนที่จะทำ GET API ใหม่แต่ ณ จุดที่มีการใช้ข้อมูลกลับทำเหมือนกำลังใช้ graphql API ที่ทำเลยต้อง return ข้อมูลใหญ่มาก) เลยต้องพยายามหาทางทำ query ที่ execute ไว และต้องประกอบข้อมูลให้ตรง
ได้ลองใช้ EXPLAIN ANALYZE เพื่อดู planner cost และได้เปิดโลกหลายอย่างว่าข้อมูลหลายตัวที่บอกเป็นทริกให้ query ไวมันไม่จริง
ได้ลองใช้ feature deep research ของ gemini ช่วยหาข้อมูล
ได้เห็น sql clause ใหม่ๆที่ไม่เคยเจอมาก่อน เช่น FILTER clause

Collaboration & mentorship

มีส่วนร่วมใน meeting กับลูกค้าเยอะขึ้น ได้ถาม/present progress ในแต่ละ sprint ในเฉพาะของส่วนที่ตัวเองได้ดูแล
Knowledge Sharing จากคลาส
The Elements of Computing Systems
แชร์เรื่อง

Design & documentation

Company building

What I learned

research หัวข้อที่ได้รับมอบหมายด้วยตัวเอง
เขียนภาษา go (แบบ newbie)
เขียนภาษา perl (แบบ newbie)
ได้เปิดใจใช้ AI สำหรับช่วยในการ research และมองเห็นอันตรายจากการเชื่อผลลัพธ์แบบหมดใจ
ลองใช้ gemini deep research เพื่อวางแผนอ่านหนังสือสองเล่มให้จบภายในปี *รอดูผลลัพธ์​

Outside of work

ทำ ebook checkout plugin สำหรับ Koha version 17.11 (เก่ามาก)
migrate line notify ไปใช้ line messaging API (ทำให้โบสถ์)
migrate api ตารางรับใช้ของโบสถ์ไปเป็น bun และ dockerize ทั้ง project
มี services เป็น app ที่เป็นตัว api กับ database ที่ใช้ postgresql v15 แล้ว (upgrade มาจาก v10)
ทีแรกตั้งใจว่าจะใช้ pgBackrest/Barman ในการ backup database แต่ว่าทำไม่ได้เพราะติดไม่รู้ password user postgres เลยต้อง pg_dump เอา เหมือนที่เคยทำมา
ตั้งใจว่าจะหา cloud free tier มาใช้แทน vps เก่าที่เก่ามากๆ ที่เริ่มงอแงมากในช่วง 2 เดือนให้หลัง(มี.ค.-พ.ค.)
ตัวที่มีปัญหาชื่อว่า passenger ซึ่งก็เพิ่งได้รู้จักตอนที่มันพัง ถ้ามีเวลาอาจจะลองหาอะไรไปใช้กับมันดู
ค่อนข้างติดใจ concept 1 program type per 1 desktop ที่หลายคนใช้ใน i3-wm หลังจากลองใช้ i3 ใน zorin os มาหลายเดือนแล้วก็หาทาง setup macos/linux de อื่นให้มันทำแบบเดียวกันได้

Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.