What I actually do, when I have to go to work at 7.00



       เมื่อวานเป็นวันสุดท้ายที่ลีดเดอร์พี่แก้มกับนัทจะเป็นลีดเดอร์เลยมีเกมส์ส่งท้ายมาเล่นกัน เป็นเกมส์ให้สร้างคำจากตัวอักษรที่กำหนดให้ยาวที่สุด ใครยาวน้อยสุดคนนั้นจะโดนทำโทษจากกล่องทำโทษที่ทุกคนช่วยกันเขียนบทลงโทษกันมาทั้งทีม (ซึ่งปกติเอาไว้ทำโทษคนมาสาย) ทีนี้ผมแพ้เลยได้จับใบทำโทษมา 1 ใบโจทย์ คือ มาทำงานก่อน 7.00 แล้วห้ามนอนต่อ โอเค Challenge accepted

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

06.20 ฟัง Talk Python to me #130 - books Python developers should be reading

ตอนนี้แนะนำหนังสือน่าอ่านมา 10 + 1 เล่มบางเล่มเคยอ่านแล้วเช่น Pytest แต่เจอหนังสือที่ไม่เคยอ่านแล้วน่าสนใจในนี้อยู่ 4 เล่ม

  • About Face: the Essentials of Interaction Design
  • Thinking in Systems: A Primer
  • Thinking, Fast and Slow
  • plus one: learn You a Haskell for Great Good!
นอกจากหนังสือแล้วเจอ PyPi น่าสนใจอีกสองตัวด้วย

07:15 หนังใหม่ 12 Strong

โดยส่วนตัวเป็นคนชอบประวัติศาสตร์สงครามยุคใหม่อยู่แล้ว เพิ่งเห็นตัวอย่างนี้จาก Just ดู it เลย ดูจากตัวอย่างน่าจะ follow หนังสือ First In (https://www.amazon.com/First-Insiders-Account-Spearheaded-Afghanistan/dp/089141875X) ที่แน่ๆ แต่เห็น Jerry Bruckheimer กลับมาทำหนังแนวนี้ก็ตื่นเต้นละ


07:20 อ่าน Design It! ต่อ


       วันนี้อ่านเกี่ยวกับ Decide How Much to Design Up Front ก็ตามชื่อ เป็นเรื่องเกี่ยวกับการตัดสินใจว่าจะใช้เวลานานแค่ไหนในการ design architect ก่อนที่จะ implement จุดสำคัญเลยคือต้องหา Sweet Spot ที่จะทำให้ไม่ใช้เวลาในการ design มากไปแล้วทำให้เหลือเวลา implement น้อยลง
       ก่อนอื่นต้องเข้าใจก่อนว่า เวลาในการทำ software ทั้งโปรเจ็คเนี่ยมันมีเวลาเข้ามาเกี่ยวข้องหลายตัวมากเช่น เวลาในการ design architect เวลาในการ implement เวลาในการแก้หรือเขียนใหม่ ซึ่งทั้งหมดเอามารวมกันจะได้เวลาที่ใช้ development software จริงๆ ซึ่งการเพิ่ม / ลด เวลาแต่ละตัวเนี่ยก็จะส่งผลให้มัน เพิ่ม / ลด เวลาตัวอื่นด้วย แต่ก็มีจุดที่พอดีเหมือนกันที่จะไม่ให้มากเกินไปหรือน้อยเกินไป โดยเวลาเลือกเวลาที่จะ design architect เนี่ยสามารถประมาณได้หลายวิธี     
       วิธีแรกใช้ขนาดของ software เข้ามาช่วยประเมิน สรุปง่ายๆ ว่าถ้าโปรเจ็คใหญ่มากๆ ควรใช้เวลาประมาณ 37% ของเวลาที่ development ทั้งหมดมาช่วย แต่ถ้าเป็นโปรเจ็คเล้กๆ ก็ควรใช้เวลา design ซัก 5% เพราะมันน่าจะเร็วกว่าถ้าเรา rewrite ในส่วนที่ design วิธีอื่นๆ หนังสือไม่ได้ลงรายละเอียดมาก แต่ใช้ complexity กับ volatility เป็นตัวประเมินว่าควรจะใช้เวลาเท่าไหน

08:40 นั่งเล่น slippery

       วันก่อนไปเจอ pypi ตัวนี้แบบบังเอิญตอนกดๆ discovery ใน github เป็น lib ที่เอาไว้ใช้วัดเวลาของการ execution function ใน python มีประโยชน์มากๆ เวลาใช้ทำ profiling ผมเข้าใจว่ามันมี lib ที่ใช้ทำ profiling ของ python อยู่เยอะเต็มไปหมด แต่ตัวนี้ก็น่าสนใจเอามาเล่นขำๆ ได้ วิธีใช้ก็ เอา decorator ไปแปะ ไว้บน function ที่เราต้องการก็ใช้ได้ละ หน้าตาวิธีใช้กับผลลัพธ์ก็ตามข้างล่างโลด หรือจะไปดูเองที่ https://github.com/lk-geimfari/slippery/ ใช้ง่ายมากบอกเลย


08:55 กลับสู่วิถีชีวิตทำงานปกติ

       ก่อนอื่นเลย ผมไม่ได้ทำอย่างนี้ทุกวันครับ ตอนเช้าบางวันอาจจะแค่ฟัง Talk Python ตอนเช้าบางวันอาจจะแค่อ่าน Design It! ตอนเช้าบางวันอาจจะไม่ทำไรเลย แล้วแต่อารมณ์ ทั้งหมดทั้งมวลแค่อยากจะบอกว่า ถ้าลองตื่นเช้า เวลาตอนเช้าแม่งมีประโยชน์สัสๆ เลยครับ

Comments