May 17, 2012

ต้องเรียกว่าโชคดีมาก

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

เมื่อวานซืน ผมตื่นเช้ามา เปิดกระเป๋าตังค์ดู บัตร ATM หายอีกแล้ว นั่งนึกย้อนไป ก็จำได้คร่าวๆว่า เบิกเงินก่อนออกจากที่ทำงานเมื่อวาน เลยรีบไปที่ทำงาน ยามเก็บบัตรไว้ได้อีกเช่นเคย โชคดี ได้คืน

วันเดียวกันกับที่ได้บัตร ATM คืน ผมนั่งแท็กซี่ไปกินกับที่ทำงานกันตอนเย็น ผมนั่งหน้า ผมเลยควักกระเป๋าตังค์ออกมาจ่ายตังค์ค่ารถ แล้วก็ลุกออกไป ไม่ได้ยัดเก็บกระเป๋าตังค์ เดินออกมานิดนึง พึ่งรู้ตัวว่า กระเป๋าตังค์หล่นไปบนรถแท็กซี่ และ แท็กซี่วิ่งออกไปแล้ว ในใจทั้งตกใจและคิดว่าทำไมมันซวยแบบนี้ 

รีบวิ่งออกไปที่ถนนก็๋ไม่ทันแล้ว ในหัวนึกไม่ค่อยออกว่าต้องทำอะไรก่อน คิดไปแล้วว่า คงไปซะแล้ว ในกระเป๋ามีเงินประมาณ 500 และไม่มีอะไรสำคัญ แต่ที่ไม่อยากคือ ต้องไปทำบัตรนู่นนี่ใหม่

แต่บังเอิญช่วงที่ นั่งแท็กซี่มา ก็รู้ว่าเค้าฟัง สวพ.91 อยู่ เลยลองโทรไปดู เบอร์​1644 เจ้าหน้าที่เค้าก็ถามรายละเอียด แล้วก็รับเรื่องไว้ และบอกว่า ถ้าแท็กซี่ โทรมาแจ้ง แล้วจะติดต่อกลับมา 

ผมไม่แน่ใจว่า เค้าประกาศให้ทางวิทยุให้ด้วยรึเปล่า เพราะไม่มีวิทยุฟัง จากนั้นก็ลองโทรไป จส.100 ก็ฝากเรื่องไว้เหมือนกัน 

จากนั้นผมก็นั่งรอที่โต๊ะ ไม่มีอารมณ์ enjoy กับคนอื่นเท่าไหร่ ในหัวคิดว่า จะต้องทำอะไรอีก ผ่านไปเกือบชั่วโมง ไม่มีการติดต่อใดๆ ผมก็เริ่มโทรอายัดบัตรเครดิต เว้น 15 นาที แล้วก็เริ่มโทรบัตร ATM

ช่วงที่โทรอายัดอยู่ ก็มีเบอร์มือถือโทรเข้ามา แล้วบอกว่า โทรจาก สวพ.91 แล้วจู่ๆ เค้าก็บอกว่า เดี๋ยวให้ คุยออกวิทยุ ห๊ะ!! แต่ก็ครับๆ ในใจคิดว่า เค้าคงให้ไปเล่าให้ฟังว่าหายที่ไหนยังไง ถือสายแป๊ปนึง ก็เข้ารายการ  มีเสียงผุ้ชายผู้หญิงนุ่มๆ 2 คน พูดขึ้นมา ถามคำถามอะไรซักอย่างที่ผมฟังแล้วงง ผมเข้าใจว่าเค้าเอามือถือไปเปิด speaker เพราะเสียงมันเบาและห่างไกลมาก ผมฟังไม่รู้เรื่อง ฟังไม่ออกว่า เค้าถามอะไร 

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

นัดพี่แท็กซี่ เอากระเป๋าตังค์มาส่งคืนให้ ผมก็ขอบคุณเค้าอยู่หลายที แล้วก็ให้ค่ารถเค้าไปพอสมควร พี่เค้าดูเป็นคนดี พูดจาดี 

ถึงตรงนี้ ฟังดูมันเหมือนง่ายๆ ฟังดูเหมือนผมเจอเรื่องซวยติดๆกัน แต่ต้องถือว่าผมโชคดีมาก ที่ได้คืนมาหมด แถมได้คืนเร็วมากด้วย ไม่ถึง  2 ชั่วโมง 

ต้องขอบคุณพี่แท็กซี่คนนั้นจริงๆ ผมไม่ทันจำทะเบียนรถ แต่ผมยังจำชื่อพี่ได้ มีคนบอกน่าจะถ่ายรูปกับพี่เค้าหน่อย ฮ่าฮ่า

แล้วก็ต้องขอบคุณ สวพ.91 ด้วยครับ ที่รับเรื่องและประสานงานให้ ฟังบนแท็กซี่มานาน พึ่งเจอกับตัวเองก็คราวนี้แหละ

May 13, 2012

BugDay Bangkok 2012

วันนี้ไปงาน BugDay Bangkok 2012 ที่ ม.ศรีปทุม มาครับ เป็นงานที่มีหัวข้อหลักคือ Software Testing อยากไปมาก เพราะปีก่อนไม่ได้ไป และพักหลังก็หันมาสนใจเรื่องพวกนี้ มากขึ้นเรื่อยๆ แต่ยังไม่ถึงขั้นหลงใหล แค่อยากรู้เพิ่มขึ้นมากกว่า

เนื่องจากงานจัดที่ ม.ศรีปทุม ซึ่งไกลจากบ้านผมที่อยู่ฝั่งธน พอสมควร กว่าจะไปถึง งานก็เริ่มไปแล้วครับ (ตื่นเช้า ง่วงนอนมาก) ไปถึงหน้างาน ยื่น Ticket ลงทะเบียน แล้วก็เข้าห้องเลย ห้องมี 3 ห้อง คือ NEWBIES, IN PRACTICE และ AGILE ครับ  มาไล่ทีละหัวข้อเลยละกันครับ ว่าเข้าไปหัวข้อไหนบ้าง เรื่องอะไร และได้อะไรกลับออกมาบ้าง

ช่วงเช้า

How to live with Agile  by Narupat Kumnurtrath (Aware Corporation Ltd.)

เข้าไปตอน เค้าเริ่มไปแล้วประมาณ 20 นาทีครับ แต่ผมพอจะเคยฟังแนวคิด Agile มาบ้าง เลย ไม่มีปัญหาในการปะติดปะต่อ หลักๆของ session นี้ก็คือ Agile คือยังไง เค้าทำกันยังไง โดยพูดถึง scrum ซะเยอะ ผมประทับใจ session นี้ ตรงที่ ผมรู้สึกว่า คนพูดอธิบายได้ดี ฟังรู้เรื่อง และได้เนื้อหาเป็นความรู้มากๆ ไม่ใช่แค่แนวคิดหรือ mindset และด้วยความที่ ผมไม่เคยอ่านหนังสือเกี่ยวกับ agile practice จริงจัง ครูพักลักจำซะเยอะ session นี้เลยทำให้ ผมได้คำอธิบายของคำศัพท์ต่าง scrum, sprint, backlog, grooming, sprint retrospective อะไรพวกนี้ แบบเป็นเรื่องเป็นราว ปะติดปะต่อ กัน เป็นภาพใหญ่ ต่อไปผมคงฟังคนชอบ Agile คุยกันรู้เรื่องมากขึ้นล่ะ

Seeking Hyper Productivity  by Chokchai Phatharamalai (Proteus Technologies Corporation Ltd.)

หัวข้อนี้ ลังเลว่าจะเข้าดีมั้ย เพราะไม่แน่ใจว่าเข้าใจชื่อหัวข้อถูกรึเปล่า และ อีกห้องก็ดูหัวข้อน่าสนใจ
เข้าไปแล้ว เป็นคุณ @juacompe เป็นคนพูดนี่เอง พึ่งเคยเจอตัวเป็นๆ ฟังช่วงแรก รู้สึกผิดหวังครับ ฟังถึงช่วงกลางๆ ก็ยังรู้สึกผิดหวัง ไม่ใช่ว่าเรื่องที่พูดไม่น่าสนใจ แต่รู้สึกเหมือนมานั่งฟังเค้าโม้ เรื่องคน มากกว่าที่จะเกี่ยวกับ software development ที่อยากจะฟัง ที่น่าสนใจก็มี Csikszentmihalyi's Flow Chart แต่ใจความสำคัญก็คือ Responsiveness, Motivation and Communication 3 อย่างนี้ แต่ที่หล่อก็คือ เค้ามา wrap-up สุดท้ายว่า 3 สิ่งนี้ คือสิ่งที่ทำให้ productivity สูงขึ้น และ agile พยายามจะสร้าง 3 สิ่งนี้

พักเที่ยง

ไปกินข้าวที่ศูนย์อาหารของมหาลัย ซึ่งเป็นศูนย์อาหาร ที่แปลกดี คือ มีบันไดเลื่อนขึ้นชั้น 2 แต่จะลง ต้องลงบันไดเอา

ช่วงบ่าย

Key Elements for Successful Automation  by Pakinai Thantranont (Enspry Technologies Co., Ltd.)

session นี้ อธิบายถึงส่วนประกอบต่างๆ ที่สำคัญในการทำ Automation หรือ Automate Testing ครับ ฟังไปเรื่อยๆ เกือบหลับ คนพูดเค้าพูดโอเคนะครับ แต่มันเป็น concept ซะเยอะ อารมณ์เหมือนเนื้อหาในตำรา และส่วนตัวก็พอจะรู้บ้างอยู่แล้ว จริงๆ คาดหวังว่าจะมี case study หรือ pitfall ที่น่าสนใจ ให้ดู แต่ก็ไม่มีครับ

ATDD – Make Love, Not (QA/DEV) War to work (Rate R)  by Sinaporn Suebvisai and Kulawat Wongsaroj (Proteus Agility Co., Ltd.)

อันนี้ เข้าเพราะพี่ Kulawat โดยแท้ เพราะสมัยเรียนอาจารย์เคยพาไปฟังเค้า พูดเรื่อง Agile ที่ Reuters และนั่นเป็นครั้งแรก ที่รุ้จัก Agile เป็นเรื่องเป็นราว แล้วรู้สึกว่าพี่เค้าเป็นตัวพ่อ เรื่อง Agile ในเมืองไทย เลยต้องเข้าไปฟังซะหน่อย พึ่งรู้ว่า พี่เค้าออกจาก Reuters มาตั้งบริษัท Agile coaching เองแล้ว ชื่อ Proteus Agility กำลังทำ Agile tools อยู่ด้วย

เนื้อหา สนุกดี ครับ ฟังได้เพลินๆ สิ่งที่เก็บได้ และยังจำได้คือ
  • กำแพง ระหว่าง QA กับ Dev คือสิ่งที่น่าเป็นห่วง มันคือการจับผิด การกั๊ก
  • ATDD = Executable Requirement
  • ATDD => User (human-readable test) -> QA (Pseudo test) <-> Dev (real test + implement)
  • TDD = Design,  ATDD = Conversation
  • ATDD => Clear the definition of done
  • TDD มันเหมือนการเดินถอยหลัง สำหรับ Dev (ข้อนี้ โดนมากกกกก เพราะรู้สึกมากตอน ลองทำ TDD เคยเขียน blog ไว้เหมือนกัน)
  • ATDD เดินถอยหลังร่วมกัน
ช่วงหลัง มีพี่แป๋ม (พึ่งเคยเจอตัวจริง) มาโชว์การทำ ATDD ด้วย Robot framework กับ Selenium ได้เห็น Agile tool ที่พี่เค้าทำอยู่นิดหน่อยด้วย

Bug Preventive Medicine 2.0  by Twin Panichsombat and Piya Lumyong (Opendream Co., Ltd.)

อันนี้พูดโดยพี่ @roofimon พึ่งเคยเข้า session ของพี่เค้าครั้งแรก พี่เค้าดูเป็นคนตลกดี ส่ิ่งที่พูดคือ TDD และวิธีการทำ พี่เค้าคาดหวังจะให้คนเอาโน๊ตบุ๊กมา checkout code นี้ แล้วลองทำไปกับเค้า มีคนเอามานิดเดียว ผมเอาไป แต่ก็ใช้เน็ตไม่ได้ สุดท้ายก็ดูเค้าทำหน้าห้อง สิ่งที่พี่เค้าทำ และ เป็นหลักให้จำมี 3 อย่าง
  • เขียน test 
  • ทำ test ให้ผ่าน ให้เร็วที่สุด
  • Refactor 
จะทำอะไรเพิ่ม ก็ทำ 3 อย่างนี้อีกไปเรื่อยๆ สิ่งที่ว้าวตรงนี้คือ พึ่งรู้ว่าที่เคยทำมา ผมยังไม่เข้าถึง TDD อย่างเต็มรูปแบบ ก่อนหน้านี้ผมเข้าใจ TDD คือการเขียน test เพื่อกำหนดพฤติกรรมของ code ที่เราจะ implement ขึ้นมาหลังจากนั้น และสิ่งที่ได้ประโยชน์ก็คือ มันจะการันตีว่า change ที่เราเพิ่มเข้าไปอีก มันจะไม่ทำให้อะไรพัง เพราะมี test คลุมอยู่เสมอ ทำงานได้สบายใจ 

แต่สิ่งที่พึ่งรู้เพิ่ม คือ ทำ TDD เพื่อการ design โค้ดที่จะออกมา พี่เค้าบอกว่า 
  • เราต้องทำ test ให้ผ่านให้เร็วที่สุด ด้วยความฉลาดและความคิดแบบ minimum ที่สุด
  • อย่าทำอะไรเกินจากที่ test ต้องการแม้แต่น้อย   
  • อย่าเขียน method ที่ไม่มีใน test 
  • อย่าคิดจะออกแบบ หรือ คิดถึง design pattern โน่นนี่ ที่ไม่จำเป็น 
เพราะถ้าทำ มันจะทำให้เกิดอะไรที่ไม่จำเป็น  ใช้ test เป็นตัว drive code ที่จะออกมา อย่างแท้จริง ตรัสรู้เลยทีเดียว สิ่งที่น่าเสียดายคือ แนวคิดนี้ ทำไม่ค่อยได้กับ dynamic language หรือทำแล้วอาจจะไม่สนุกเหมือนเกม เพราะ compiler จะ detect แล้วขึ้นตัวแดงไม่ได้    

สุดท้าย ถ้า code ที่ drive ออกมาด้วย TDD ไม่น่าพอใจ ก็ Refactor ซะ(นั่นเป็นหลักข้อที่ 3) แล้วก็รัน test ที่คลุมไว้อยู๋แล้ว

จบ session ง่วงมาก  จริงๆ มี session discussion ต่อ แต่ง่วงมาก เลยกลับบ้าน เป็นอันจบงานวันนี้ครับ
ส่วนตัว อยากให้งานปีต่อๆไป เน้นหัวข้อ Practical หรือหัวข้อ Advanced ขึ้นอีกหน่อยก็ดีนะครับ

วันพรุ่งนี้ เป็นวันที่ 2 เป็น Training Day แต่ คงไม่ไป เพราะตื่นเช้าไม่ไหวแล้ว และมีอะไรต้องทำมากมาย

Update: เพิ่ม slide บางหัวข้อที่หาได้

May 7, 2012

ใช้ Dropbox กันยังไงบ้าง

หลายวันก่อน Google เปิดตัว Drive เป็นบริการที่เอา Google Doc มาต่อยอดกลายเป็น Cloud storage service ก็ลองเข้าไปเล่นตามปกติ แล้วก็พึ่งเอะใจว่า ผมเองก็มี Dropbox account อยู่ นานแล้ว แต่จนทุกวันนี้ ก็ได้แต่ลงไว้ในเครื่อง ปล่อยให้รันไว้เฉยๆ แต่ไม่ได้ใช้มันมาซักพักแล้ว

ในสมัยก่อน เคยใช้ Dropbox ไว้เก็บ session ของ Firefox และ note บางส่วน เวลา กลับมาเปิด Firefox ที่บ้าน Tab จะได้ตามมาด้วย แต่สุดท้าย พอย้ายมา Chrome ก็หันไป save เป็น bookmarks แทน แล้วก็ sync ผ่าน Chrome เอา

เคยพยายามจะใช้ Dropbox ในลักษณะ เอาไฟล์ PDF ไปใส่ไว้ เผื่อจะเปิดอ่านบนมือถือ แต่สุดท้ายก็ได้แค่ใส่ไว้แบบนั้น ไม่ได้เปิดอ่านอะไรอยู่ดี

วันก่อนก็เลยสงสัยว่า คนอื่นเค้าใช้ Dropbox พวกนี้กันยังไง เลยไปถามใน FB ซึ่งก็ได้คำตอบมาบางส่วน
  • ใช้ sync ไฟล์ระหว่างที่ทำงาน และ ที่บ้าน พวก documents
  • ใช้เก็บไฟล์เป็นหลักเลย ส่วนความปลอดภัย ก็ลง encryption layer เพิ่มเอา
  • ใช้ส่งไฟล์ หาเพื่อน เพราะมันง่ายกว่า ส่งผ่านอีเมล์
  • ใช้เป็น shared drive ในที่ทำงาน
  • ใช้ sync ไฟล์​กับมือถือ

โดยแนวคิดแล้ว มันคงจะดี ถ้าไฟล์ใน Home (หรือ My Documents บน Windows) ทั้งหมด อยู่บน cloud สามารถ sync ข้ามเครื่องได้ เวลาไปลงเครื่องใหม่ หรือไปเครื่องไหนก็มีไฟล์ให้ใช้ แต่ในใจก็รู้สึก ตะหงิดๆ และทำใจไม่ค่อยได้ ที่ไฟล์เรา รูปเรา ไปอยู่บน Cloud อยู่ที่ไหนไม่รู้ รู้สึกไม่ปลอดภัย รู้สึกเหมือนควบคุมไม่ได้

แต่มันก็แปลกอีก ที่ผมไม่รู้สึกแบบนี้กับ Mail service เช่น Gmail ใช้ได้อย่างสบายใจ ทั้งๆที่ ผมก็เอารูป เอาไฟล์สำคัญๆ นู่นนี่ ส่งผ่านอีเมล์​ และเก็บไว้ใน mailbox อยู่บ่อยๆ

ยังนึกไม่ออกว่า อะไรทำให้รู้สึกต่างกัน