Benchmark ใน Go

ลองให้ทีมเล่น Code Kata จากโจทย์ที่อะกิเอามาให้ เป็นเรื่องให้ลองจับคู่วงเล็บดูว่า input ที่เป็น string ที่ใส่มามันจับคู่ถูกต้องหรือไม่ นั่นคือ ต้องจับคู่วงเล็บเปิด กับวงเล็บปิดเสมอ (ถ้าปิดมาก่อนเปิดไม่นับ เช่น “}{” หรือถ้ามีวงเล็บไขว้กัน เช่น “({)}” แบบนี้ก็ถือว่าไม่ถูก

Retrospective ด้วย Team Goal/Team Release

เป้าหมายหนึ่งของการทำ retrospective คือจะทำยังไงให้ทีม ได้เติบโต และพัฒนาขึ้นในฐานะของทีม มีวันหนึ่งได้มีโอกาสไป facilitate กิจกรรม retrospective ให้กับทีม เลยลองเอาไอเดียที่ได้มาจากตอนทำ product discovery คือการหา product goal และ product release มาประยุกต์ใช้กับทีมดู

ถูกต้องแต่ไม่ถูกต้อง

การที่โปรแกรมเราไม่มีบัก ไม่ได้แปลว่ามันเวิร์ค ทุกฟีเจอร์สามารถทำงานได้อย่างถูกต้อง ไม่ได้แปลว่ามันตอบสนองต่อธุรกิจได้จริง ทำไมล่ะ ทั้ง ๆ ที่เราทำของที่ถูกต้องทุกอย่างแล้ว ทำไมมันถึงไม่เวิร์คอีก ก็เพราะว่ามันถูกต้องแต่ไม่ถูกต้องนั่นเอง … อะไรวะ

แนวคิด Modernization/Westernization กับ Agile Adoption

ในยุคของพระบาทสมเด็จพระจุลจอมเกล้าเจ้าอยู่หัว รัชกาลที่ 5 ที่ทรงได้ทำการปฏิรูปบ้านเมืองและการบริหารราชการแผ่นดินเพื่อแสดงให้เห็นถึงการมีอารยะของประเทศ เพื่อแก้ปัญหาจากการล่าอาณานิคมจากชาติตะวันตกที่เอาความคิดที่ว่าคนขาวมีภาระที่จะทำให้ประเทศต่าง ๆ เจริญขึ้น รวมถึงการแก้ปัญหาที่เกิดจากความขัดแย้งภายในประเทศ การปฏิรูปนี้ใช้แนวความคิดที่เรียกว่า Modernization หรือ การทำให้ทันสมัย เช่น การยกเลิกระบบไพร่ ทาส การปรับปรุงด้านการศึกษาโดยการจัดตั้งโรงเรียน การให้ทุนการศึกษาต่อต่างประเทศ มีการนำวิทยาการทันสมัยมาปรับใช้ เป็นต้น ส่วน Westernization คือการทำให้เป็นชาติตะวันตก ในยุคหลังสงครามโลกครั้งที่สอง คำว่า Modernization กับ Westernization แทบจะมีความหมายเดียวกัน นั่นคือ การตีความที่ว่าการที่เราทำเหมือนชาติตะวันตก จะแปลว่าเราทันสมัย

F.I.R.S.T Principles ของ Unit Test

ถ้าพูดถึงคุณสมบัติของ unit test ที่ดี มันจะมีชุดของคุณสมบัติหนึ่งที่เรียกว่า F.I.R.S.T Principles ซึ่งเขียนอยู่ในหนังสือที่ชื่อ Clean Code ที่เขียนโดย Robert C. Martin (Robert Cecil Martin)

เพราะเราคุยกัน เราจึงเข้าใจกัน

มีโอกาสได้ลองทำ retrospective ให้กับทีม กิจกรรมหนึ่งที่เอามาให้ทีมได้เล่นคือ … แม่ง ยังไม่ได้ตั้งชื่อเลย ตอนเอามาให้เล่น คิดว่ามันน่าสนุกดี และน่าจะได้อะไรจากกิจกรรมอยู่ ส่วนเรื่องชื่อเรียก ช่างมันก่อน เลยยังไม่ได้คิดจนถึงวันนี้ (จริง ๆ แล้ว เคยให้ทีมช่วยคิดแล้ว แต่ลืมว่าวันนั้นทีมช่วยกันตั้งชื่อว่าอะไร ต้องขอโทษทีมด้วยครับ ลืมจริง ๆ)

ในฐานะ developer เราเรียนรู้อะไรจาก wildebeest migration

ตอนเช้าได้ฟังที่ดีเจเหมียวคลื่น Get 102.5 มาเล่าให้ฟังเกี่ยวกับที่ไปเที่ยวเคนย่า แล้วได้ไปดูฝูง wildebeest อพยพ ตอนฟังก็รู้สึกตื่นเต้นตามไปด้วย wildebeest เป็นสัตว์เลี้ยงลูกด้วยนมชนิดหนึ่ง รูปร่างคล้ายวัว มีเขาโค้ง และมีเครายาว อาศัยอยู่รวมกันเป็นฝูง การอพยพจะเริ่มต้นตอนที่เข้าหน้าแล้งของพื้นที่ที่มันอยู่อาศัย เพื่อไปยังแหล่งอุดมสมบูรณ์อีกแห่ง ตามทิศทางของกลุ่มฝนที่ตกก่อนหน้านี้ นั่นคือ เมื่อฝนตกในบริเวณถัดไป หญ้าอ่อนเริ่มขึ้น หญ้าตรงที่พวกมันอยู่ก็เริ่มหมด และพื้นดินเริ่มแห้งแล้ง พวกมันก็จะเริ่มทำการอพยพ และพอในพื้นที่ถัดไปเริ่มแห้งแล้งอีก พวกมันก็จะอพยพกลับมาอีก วนไปวนมาเป็นวงกลมทุก ๆ ปี ดังนั้นในทุกปี จะมีนักท่องเที่ยวจำนวนมากไปคอยดูการอพยพของพวก wildebeest เสมอ ๆ

ทำ reverse proxy ด้วย caddy

แต่ก่อนตอนจะทำ reverse proxy จะใช้แต่ nginx แต่พอมาเริ่มทำ cotton ก็ได้รู้จักกับ caddy ที่เป็น http server ที่มาพร้อมกับ ssl ซึ่งมันเจ๋งมาก ทีนี้อยากจะได้ reverse proxy ขึ้นมา ก็เลยสงสัยว่า caddy มันทำ reverse proxy ได้หรือเปล่านะ ก็ไปเจอวิธีมา ซึ่งง่ายโคตร ๆ

Bypass หน้า Setup Wizard ของ Jenkins

ความตั้งใจจริง ๆ แค่อยากได้ jenkins ที่เป็น docker แล้วมี go install ไว้ให้แล้วเท่านั้น พอลอง compose up (ด้วย docker compose) jenkins ขึ้นมาก็เจอหน้าอย่างที่เคย ๆ เจอ คือ หน้า setup wizard พอลอง compose up ตัว jenkins บ่อย ๆ ก็รู้สึกว่า ต้องมานั่ง unlock jenkins ทุกครั้งด้วนยการเอา initialAdminPassword มากรอก เสร็จแล้วต้องไปเลือก plugin ที่อยากลงอีก ซึ่งกว่าจะลงเสร็จก็ใช้เวลาสักพัก ถัดมาต้องมาสร้าง account อีก กว่าจะเสร็จทุกขั้นตอนนี่โคตรเสียเวลาเลย เลยคิดว่า มันมีวิธีไหนมั่งที่สามารถข้ามขั้นตอนพวกนี้ไปได้ เป็นแบบ compose up เสร็จปุ๊บ พร้อมใช้เลย เลยกลายมาเป็นที่มาของการ bypass […]

ลองเอา Cotton ขึ้น Homebrew ด้วย Tap

หลังจากเมื่อวานลองเอา cotton ขึ้น homebrew ไม่สำเร็จ ทาง commitay ซึ่งเป็น member ของ homebrew ก็มา comment ใน pull request ที่ถูก reject ซึ่งเป็นอะไรที่น่าสนใจดี เขาเขียนว่า