Tag Archives: Presentation Summary

[Presentation Summary] A Tale of Three Trees (Git)

A Tale of Three Trees

Presentation นี้ ชื่อมันอาจจะไม่สื่อถึง Git และไม่ดึงดูดให้สนใจเท่าไหร่ แต่เนื้อหาดีมากครับ

ผู้พูดทำงานอยู่ Github และเป็นคนทำเว็บไซต์ 3 อันนี้ git-scm.comgitref.orgprogit.org 

ต้นไม้ 3 ต้นที่เค้าพูดถึง คือ 3 ต้นไม้ส่วนประกอบสำคัญของ Git ได้แก่

  1. ต้นไม้ HEAD
  2. ต้นไม้ Index
  3. ต้นไม้ Working directory

เค้าเริ่มจากการอธิบายต้นไม้ 3 ต้นนี้

จากนั้นอธิบายถึงคำสั่ง git reset ว่า default, –soft, –hard ทำงานภายในอย่างไร ทำให้เข้าใจว่าทำไมเค้าถึง design คำสั่งออกมาแบบนี้ (แต่ก็รู้สึกว่าเป็นวิธีคิดแบบโปรแกรมเมอร์จริงๆ ทำให้อาจจะไม่เหมาะสำหรับ first impression)

การทำงานของ –soft จะเป็น subset ของการทำงานของ default และการทำงานของ default จะเป็น subset ของการทำงานของ –hard

  • –soft จะอัพเดต HEAD และ current branch
  • default จะอัพเดต HEAD, current branch และ Index
  • –hard จะอัพเดต HEAD, current branch, Index, และ working directory

ผู้พูดได้ blog เรื่องส่วนนี้ไว้ที่ progit blog ด้วย

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

จากนั้น เค้าพูดต่อถึงเรื่อง git checkout ว่าคล้าย reset แต่เป็นการอัพเดต HEAD โดยไม่ได้อัพเดต current branch

จากนั้นก็เริ่มลงไปที่ internal command ของ git พร้อมกับการ demo บนจอซึ่งไม่ได้ capture มาด้วย + คนพูดๆ เร็วมากเลยฟังไม่ค่อยรู้เรื่องเท่าไหร่

ปล. ใครเจอปัญหา commit หายจาก reset –hard, git reflog และ git checkout ช่วยท่านได้นะครับ แต่ working directory หายนี่ ตัวใครตัวมัน

[Presentation Summary] Running a Startup on Haskell

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

วันนี้เริ่มต้นด้วย presentation นี้ครับ Running a Startup on Haskell

  1. ผู้พูดเป็น CTO mailrank เป็น startup เล็กๆ อยู่
  2. เขียน Desktop App ด้วย C# เพราะมันจำเป็นต้องเป็น Windows App และไม่ใช้ F# เพราะเค้ายังไม่มั่นใจในความรู้ .Net ของเค้า เลยเลือกสิ่งที่ popular
  3. Backend เขียนด้วย Haskell เพราะถนัด
  4. ก่อนมาทำที่นี่ เค้าเขียน Real World Haskell
  5. เค้ายังเป็นคนเขียน Mercurial: The Definitive Guide ด้วย แต่บริษัทเค้าใช้ Github นะ
  6. บริษัทเค้าเขียน library Haskell ใหม่เองเยอะมาก ผิดจากบริษัท startup ที่ยังไม่ใหญ่มากที่เคยเห็น ที่มักจะเลือกใช้ library ที่มีอยู่มากกว่าจะลงไปเขียนเอง
  7. ในช่วงแรกใช้ data store เป็น Riak
  8. แต่ต่อมาเปลี่ยนเป็น MySQL
  9. การเปลี่ยนใช้เวลาแค่ 2 วัน เพราะตอนเขียน Riak มีสังหรณ์อยู่แล้วว่าอาจจะต้องเปลี่ยน
  10. มีพูดถึงการรับคนว่าการที่มีคนที่บอกว่าเขียน Haskell, Scala, Clojure หรือ Erlang ได้ คนๆนั้นควรค่าที่จะสนใจ เปรียบเทียบกับคนที่มี C# ใน resume ว่ามันไม่ได้บอกอะไรเลย เค้าบอกว่าในยุคหนึ่ง Python ก็บอกได้ แต่ตอนนี้ไม่แล้ว slide

จำได้แค่นี้ ถ้าสนใจมากกว่านี้ เชิญติดตามกันเองครับ

Update: โปรดักของบริษัทคงไม่ได้ออกสู่สาธารณะชนแล้วนะครับ เพราะเค้าโดน Facebook ซื้อตัวไปแล้ว จากข่าวนี้ Founders Of Email Sorting Startup MailRank Head To Facebook