ที่มาที่ไปของ “This Week I Learned” คือมีแนวคิดที่ว่าอยากมาลองสรุปดูว่าในแต่ละอาทิตย์ หรือในแต่ละวัน เราได้เรียนรู้อะไรไปบ้าง ทั้งจากบทความ จากวีดีโอ และอื่น ๆ เขียนสรุปเอาไว้เป็นบทความแบ่งปันในทุก ๆ อาทิตย์ ถือว่าเป็นการฝึกเขียนไปในตัว 😊
Use a Gratitude Journal to Boost Your Happiness
การเขียนขอบคุณในบันทึกประจำวัน เราจะเขียนเกี่ยวกับอะไรก็ได้ที่เรารู้สึกขอบคุณสิ่งนั้น ๆ จะเป็นอะไรก็ได้ ไม่จำเป็นต้องมีมากหรือน้อย สิ่งสำคัญคือเราจะได้เห็นรูปแบบ หรือ pattern แล้วก็อาจจะพาเราไปสู่การเปลี่ยนแปลงในชีวิตของเราได้ การเขียนแบบนี้ยังช่วยให้เราสามารถที่จะเก็บความรู้สึกดี ๆ ไว้ได้เรื่อย ๆ ก็จะดีต่อสุขภาพจิตในระยะยาว
เคล็ดลับในการเขียน
ให้เจาะจงให้มากที่สุด ว่าเราขอบคุณอะไร ใคร เพราะอะไร
ให้เลือกเน้นไปที่คน มากกว่าสิ่งของ
เขียนสิ่งที่เราไม่คาดหวังไปด้วย เพราะสิ่งเหล่านี้เรามักจะลืมมันไปในอนาคต
หาความหลากหลาย ความแตกต่างในแต่ละเรื่อง
เขียนอย่างสม่ำเสมอ คงเส้นคงวา
https://www.success.com/gratitude-journals/
Action View Form Helpers - The collection_check_boxes Helper
เราสามารถใช้ Form Helpers ใน Rails สร้าง check boxes ได้ แล้วถ้าอยากจะ customize เช่น ใส่ CSS เพิ่มก็วนลูปประมาณนี้
<%= f.collection_check_boxes :venue_ids, Venue.all, :id, :name, checked: Venue.all.map(&:id) do |b| %> | |
<span> | |
<%= b.check_box %> | |
<%= b.label %> | |
</span> | |
<% end %> |
https://guides.rubyonrails.org/form_helpers.html#the-collection-check-boxes-helper
Culture Crush Ep. 70 | 7 กับดับการสร้างวัฒนธรรมองค์กร
ฟังแล้วน่าจะมี 6 ข้อตามนี้
ขาดความเป็นตัวตนขององค์กร เราต้องเป็นตัวของตัวเอง อย่าพยายามเป็นเหมือนคนอื่น
เน้นเปลือกมากกว่าแก่น อย่างกูเกิ้ลที่ทำออฟฟิสให้ดี เลี้ยงอาหารกลางวัน เพราะเค้าต้องการให้เกิด collaboration ขึ้น ไม่ใช่แค่ทำขึ้นมาให้ดูดีเฉย ๆ
ขาดการมีส่วนร่วมของคนในองค์กร ไม่เปิดโอกาสให้พนักงานมีส่วนร่วม เค้าจะรู้สึกว่าไม่ได้เป็นเจ้าของ
เข้าใจว่าเป็นเรื่องของ HR เท่านั้น พอเป็นแบบนี้คนอื่นก็มองว่าเป็นหน้าที่ของ HR ซึ่งจริง ๆ ควรเป็นหน้าที่ของทุก ๆ คน ส่วน HR เป็นแค่ facilitator
ความไม่เสมอต้นเสมอปลาย หลาย ๆ องค์กรเน้นเฉพาะช่วงแรก ช่วงเปิดตัว แล้วก็แผ่วปลาย การสร้างวัฒนธรรมต้องยิ่งเข้มข้นขึ้นเรื่อย ๆ
ผู้บริหารไม่ได้เอาจริง
Upgrade pipeline ของเราให้ Secure ขึ้นด้วย Trivy 🔍
เป็นการใช้งาน Trivy ที่เป็น open-source vulnerability scanner บน Jenkins ผ่าน Jenkinsfile
Value Stream Mapping | Atlassian
Waste จะเกิดเยอะตอนที่เรา handoffs งานกัน การที่เรามี value stream mapping จะทำให้เราเห็นภาพกระบวนการเดียวกัน ทำให้เราสื่อสารระหว่างกัน และร่วมมือกันได้ดีขึ้น ตัว value stream mapping ยังช่วยให้เราเห็น waste ที่เกิดขึ้นว่าอยู่ตรงไหนด้วย
https://www.atlassian.com/continuous-delivery/principles/value-stream-mapping
4 Steps How to Value Stream Map Your Software Pipelines
เป็นเครื่องมือที่ใช้ดู value streams ในรูปแบบขั้นตอนที่ต่อเนื่องในแต่ละขั้นตอนที่สามารถเข้าใจได้ง่าย ตอนที่เราทำก็ให้เลือกด้วยว่าเราจะวิเคราะห์ value อะไรบ้าง เช่น time to market, quality, stability, efficiency, security, satisfaction แล้วก็คอยดูจังหวะ handoffs ด้วย เพราะเป็นจุดที่เกิด waste มากที่สุด
What is the difference between :to and => in rails [duplicate]
เครื่องหมาย =>
เป็น hash ใน Ruby ซึ่งเวลาใช้ก็จะใช้กับ symbol ซึ่งเราสามารถเขียนได้ 2 แบบคือ
แบบ
:key => value
แบบ
key: value
https://stackoverflow.com/questions/39129751/what-is-the-difference-between-to-and-in-rails
Culture Crush Ep. 66 | บทบาทและแรงจูงใจ Change Agent
Change agent เป็น communicator คอยสื่อสารในโอกาสต่าง ๆ อัพเดทเหตุการณ์ที่เกิดขึ้น ช่วยให้เพื่อน ๆ เห็นว่าการเปลี่ยนแปลงนั้นดีต่อเค้าอย่างไร ตอบคำถาม แก้ความข้อข้องใจต่าง ๆ ในทีม
เป็นหูเป็นตาคอยแจ้งปัญหา
แสดงตัวเป็นแบบอย่าง ทั้งวิธีคิด และการกระทำ
คอยสังเกตการเปลี่ยนแปลง จากเฟรมเวิร์ค Aware (การรับรู้) Desire (ความต้องการอยากจะเปลี่ยน) Adoption (การนำไปปรับใช้) เกิดขึ้นจริงหรือไม่
เราต้องสื่อสารเป้าหมายให้ change agent ให้ชัดเจน ต้องติดอาวุธให้ สนับสนุนเครื่องมือ และอุปกรณ์ต่าง ๆ เราต้องดูแล change agent ด้วย เค้าจะได้พัฒนาตัวเองอย่างไร รวมไปถึงช่วยดูแลบริหาร workload ด้วย เพราะงาน change agent ไม่ใช่งานประจำ
Tags In Rails 7 With Many To Many Relationship | Ruby On Rails Tutorial
วิธีสร้าง tags ที่มี relationship แบบ many-to-many ใน Rails ตอนที่เซฟข้อมูลในฟอร์ม เราก็ต้องเพิ่มส่วนของการเซฟข้อมูลในตาราง bridge หรือ join ด้วยเช่นกัน โดยไปแก้ที่ controller
สรุปเนื้อหาคอร์ส Training from the BACK of the Room
ผู้เขียนได้ไปเรียนคอร์ส Training from the BACK of the Room แล้วมาเขียนแชร์เทคนิค และบางกิจกรรมในคลาสมา น่าสนใจเลยทีเดียว สามารถเอาไปปรับใช้ในการสอนของตัวเองได้ ชอบเรื่อง 6 Trumps ในการเรียนรู้ ที่แบ่งออกมาเป็นข้อ ๆ ได้ชัดเจนดี ส่วน gallery walk ก็โดยปกติถ้ามีโอกาสก็จะให้ทุกคนทำ ส่วนเรื่อง 4Cs นี่ถ้าได้ฝึกบ่อย ๆ น่าจะช่วยเตรียมเนื้อหาการเรียนการสอนได้ดีขึ้นมาก ๆ แน่
Devise authentication styled with Tailwind UI - Creator Platform.xyz - Part 3
ดูวิธี customize พวก views ต่าง ๆ ของ Devise ใน Rails โดยใช้ Tailwind UI โดยเอาโค้ดมา แล้วค่อย ๆ ปรับพวก route ต่าง ๆ ให้ตรงกับที่ Devise สร้างมาให้
กำแพง 7 อย่างที่กั้นหัวใจเราจากความรัก จากแนวความเชื่อของ Sufi
เป็นเรื่องกำแพง 7 อย่างที่กั้นหัวใจเราจากความรัก จากแนวความเชื่อของ Sufi
เรื่อง negative bias ถ้าใช้มากเกินไป ก็จะเป็นกำแพงกั้นไม่ให้เรารักสิ่งที่อยู่รอบข้าง
ถ้าเราสร้าง assumption ไว้ มันอาจจะปิดกั้นไม่ให้เห็นโอกาสความเป็นไปได้อื่น ๆ
การหาการยอมรับจากคนอื่น (validation) จะไม่มีวันจบสิ้น เพราะแต่ละคนมีประสบการณ์ที่แตกต่างจากเรา
การหลงใหลอยู่ในความฝัน ไม่กลับสู่โลกแห่งความจริง
เรากำลังไล่ตามของที่ไม่ใช่เป้าหมายของชีวิต
ความเสี่ยงจากการลงทุน จะเป็นกำแพงความกั้นไม่ให้เรามีความสุขได้ อาจจะแลกมากับอิสรภาพของเรา (อ้างอิงถึง หมีในกรงทอง)
การที่เราไม่ยอมรับ (acceptance) กับความทุกข์ที่เกิดขึ้นมา ถ้าเราไม่ยอมรับ เราจะก้าวข้ามไปอย่างอื่นไม่ได้
เปิด 7 เหตุผลว่าทำไมคนไทยมัก “แก่ก่อนรวย” | MM EP.1981
7 เหตุผลที่ทำให้เรา “แก่ก่อนรวย”
Present bias คนเราชอบมีความสุขเดี๋ยวนี้เลย แนว YOLO ทำให้คนไม่ค่อยออมเท่าไหร่
Status quo bias คนเราชอบยึดติดกับสิ่งที่คุ้นเคย มากกว่าที่จะไปศึกษาสิ่งใหม่ ๆ
Narrow framing เรามองทางเลือกเป็นกลุ่มย่อย ๆ แยกออกจากกัน ทำให้เรามักจะตัดสินใจทางเลือกที่ไม่ค่อยดีเท่าไหร่ ทำให้ไม่ค่อยออมสำหรับอนาคต
Loss aversion กลัวสูญเสียเกินเหตุ เห็นการออมเป็นการเสียความสุขในปัจจุบัน
Exponential growth bias คือการที่เราไม่เข้าใจผลตอบแทนทบต้น
Peer pressure ฟุ่มเฟือยตามเพื่อน
Over optimism มีความมั่นใจมากเกินไป ว่าเราจะหาเงินมาเพิ่มได้เรื่อย ๆ ไม่ได้คิดถึงพวกอุบัติเหตุ หรือการเจ็บป่วย
เราควรมาคิดเรื่องพวกนี้อย่างจริงจัง ลองนึกไปถึงตอนที่เราเกษียญแล้ว เราจะเหลือเงินเท่าไหร่ด้วย
Refactoring code that accesses external services
การ refactor code การดึงข้อมูลวีดีโอจาก YouTube โดยใช้ gateway pattern โดย gateway จะเป็นเหมือนช่องทางที่เอาไว้ส่งข้อมูลผ่าน boundary ระหว่าง bounded context (ใน domain-driven design) ที่ต่าง context ต่างใช้คนละภาษากัน การที่มี gateway ก็สามารถทำให้เราเปลี่ยนภาษาของคนอื่นมาเป็นภาษาที่เราใช้งานได้
https://martinfowler.com/articles/refactoring-external-service.html
Rails Migrations: Using bigint
ตอนแรกที่เริ่มสร้าง Rails app กับ SQLite ตัว primary ID จะถูกเซตเป็น int ปกติ แต่ทีนี้พอจะย้ายฐานข้อมูลไปเป็น MySQL/PostgreSQL เหมือนกับว่ามันจะใช้ bigint แทน ทำให้เกิด type mismatch มีคนอื่นเจอเหมือนกัน เลยต้องทำ migration บทความนี้สอนวิธีสร้างไฟล์ migration แล้วก็แก้ data type ของ column นั้น ๆ จาก int ไปเป็น bigint
https://www.beekeeperstudio.io/blog/rails-migration-bigint
How to clean up old Rails migration files
เราสามารถลบไฟล์ migration เก่า ๆ ทิ้งได้ หรือเก็บไว้ในโฟลเดอร์แยกก็ได้ แล้วก็ควรจะทำเคลียร์อยู่เรื่อย ๆ ด้วย เพื่อให้โปรเจคของเราดูแลรักษาง่าย แล้วก็เพราะเรามีไฟล์ db/schema.rb
ไว้อยู่แล้วด้วย ซึ่งจะเป็นเวอร์ชั่นล่าสุดของ database ของเรา แล้วก็เวลาที่จะ restore ก็ควรจะ restore จากไฟล์ db/schema.rb
นั่นแหละ โดยใช้คำสั่ง bin/rails db:schema:load
แล้วก็เวลาที่เราจะ setup ใหม่ ก็ใช้คำสั่ง bin/rails db:setup