Pragmatic series

ตอนเช้าเห็น tweet @visibletrap จิ้มเข้าไปดูแล้วลองกดๆ เลือกเล่มที่อยากได้ปรากฏว่าเยอะกว่าที่คิดเลยจดเก็บไว้ก่อนไว้มีตังค่อยไล่เก็บอีกที The Pragmatic Programmer เล่มนี้มีฉบับกระดาษแล้ว แต่ชักไม่อยากเก็บหลังจากที่บ้านน้ำท่วม เลยอยากได้ฉบับ e-book แต่ก็ยังไม่อยากซื้อใหม่ตอนนี้ The Definitive antlr reference แต่ก่อนเคยพยายามเอามา parse อะไรบางอย่างแต่ไม่เข้าใจเสียที อาจต้องไปเรียนเรื่องพวกนี้ใหม่หมดก่อนค่อยซื้ออีกที Pragmatic guide to GIT ส่วนตัวแล้วไม่ต้องใช้ แต่อยากให้คนใน Office อ่าน (จะอ่านกันป่าวอีกเรื่องนึง แต่ดูไปแล้วคงไม่อ่านกันเท่าไหร่มั้ง) The Passionate Programmer อยากอ่านเพราะชื่อหนังสือนี่แหละ Agile Coaching อ่าน Kanban แล้วอยากอ่านแนวนี้ต่อ เลยเลือกเข้ามาในโหมดรอซื้อ Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages อันนี้ก็อยากอ่านเพราะชื่ออีกอย่าง อยากเข้าไปในโลก DSL [...]

Read full story Comments { 0 }

Scrumboard

สองสามเดือนก่อน (ประมาณสิงหา – กันยา) เริ่มเข้ามาอยู่กับทีมเว็บใหม่ๆ ก็อยากทำของเล่นซักชิ้นเพื่อลองอะไรบางอย่าง ประกอบกับเบื่อ Trac ที่ทำอะไรหลายอย่างไม่ได้ดั่งใจไม่ถูกใจ UI ด้วยหาตัวเลือกอื่นก็ไม่ได้ที่ถูกใจเสียทีก็เลยเขียนเองเลย ต้นแบบที่อยากได้คล้ายๆก็ประมาณ Scrumy ก็เป็นระบบที่เสียเงิน อยากใช้ฟรี feature บางอย่างก็หายไป อีกอย่างคงเอา private project ภายในไปแปะไว้ภายนอกให้คนอื่นเห็นก็คงไม่ดีเท่าไหร่ ฉไนเลยเขียนเองซะ ได้อย่างที่ต้องการแน่นอน วันนี้มันก็มาถึงจุดที่น่าจะเอามาอวดได้แล้ว ชื่อที่เรียกเล่นๆ ตอนนี้เรียกว่า Scrumboard จากจุดแรกที่อยากเอามาใช้เพราะลอง Scrum process หน้าตาก็ประมาณด้านล่างนี้ ความอยากส่วนตัวตอนเริ่มทำก็ประมาณ อยากลอง Web storage อยากลอง Application cache อยากรู้ว่า Offline mode ของ Browser ทำงานยังไง Drag and drop ที่มากับ Javascript engine ของ browser ต่างจาก Drag and [...]

Read full story Comments { 2 }

น้ำท่วม ๒๕๕๔

หลังจากเป็นผู้ประสบภัยว่าจะไม่เขียนแต่ติดตามข่าวน้ำท่วมปีนี้แล้วขอจดไว้หน่อยเถอะ การสื่อสารสถานการณ์ต่างๆ ของรัฐบาลห่วยมาก ถึงขั้นเลวร้ายจนแทบไม่มีใครเชื่อถือแล้ว รัฐบาลจัดการปัญหาช้าไป อาจจะประเมินสถานการณ์ผิดหรือคิดไม่ถึงอย่างไรไม่รู้ แต่กว่าจะจัดการก็สองเดือนหลังน้ำเริ่มท่วมแล้ว การจัดการปัญหาเร่งด่วนเฉพาะหน้าห่วยแตกอีกนั่นแหละ ไม่สามารถบอกได้เลยว่าตรงไหนจะท่วมบ้างแน่ๆ ล่วงหน้าแล้วให้อพยพ การจัดการของช่วยเหลือผู้ประสบภัยก็แย่อีก แย่อย่างไรก็น่าจะเห็นตาม Twitter เป็นเหตุการณ์ที่ทำให้คนแตกแยกมากกว่าเดิมมากกว่ามั้ง เพราะตรงไหนท่วมปุ๊บ อีกฝั่งก็จะก่อกำแพงห้ามน้ำเข้าทันที แล้วก็ทะเลาะกันทั้งๆ ที่มันควรจะเจรจาว่าจะทำไรในภาพรวมได้ มีภัยพิบัติร้ายแรง ฝั่งธนช่วยตัวเองนะจ๊ะ! (ปีที่แล้วคงสงบสุขเกินไป มีแต่ฝั่งกลางกรุงที่วุ่นวาย ปีนี้เลยไปหนักฝั่งธน) ที่ฝั่งธนท่วมมีสองอย่าง 1.น้ำจากบางบัวทองหลากลงมา 2. กำแพงส่วนตัวในเขตบางพลัดแตก พื้นที่เอกชนทั้งหลายที่ไม่ให้สร้างกำแพงเมืองถาวรคงได้สร้างหลังจากเหตุการณ์ครั้งนี้ ไม่งั้นก็คงอยู่ในพื้นที่ไม่ได้หละ ประเทศไทยมีแต่กรุงเทพฯ จริงๆ ข่าวน้ำท่วมอีสานแทบจะไม่เห็นเลย คนที่คุมจังหวัดสุพรรณคงได้เลือกอีกสมัยแน่นอน ป้องกันน้ำท่วมได้เยี่ยมยอดขนาดนี้ (แต่ก็ไม่รู้ว่าจังหวัดอื่นจะชอบด้วยหรือป่าวนะ) กรุงเทพฯ สกปรกมาก ไม่เข้าใจว่าทำไมน้ำมันไหลจากคลองด้านเหนือลงคลองด้านใต้กทม.ช้านัก คลองด้านใต้พล่องน้ำจนแห้งแล้ว น้ำก็ยังมาไม่ถึงซักที ข้องใจสุดๆ การจัดการน้ำท่วมใน กทม. อำนาจเป็นของรัฐบาลหรือ กทม. กันแน่หรือจริงๆ กทม.ก็มีอำนาจเด็ดขาดที่จะเปิดปิดประตูระบายน้ำและช่วยรัฐบาลในการดึงน้ำลงทะเลได้? รัฐบาลประสานงานกับกทม.ยังไง เหมือนคุยกันคนละภาษาจนทำงานร่วมกันไม่ได้เลย การจัดการมวลชนในเขตกทม. อย่างคลองสามวาต้องให้ สส. ในเขตไปคุยหรือจริงๆ สำนักระบายน้ำ สก. [...]

Read full story Comments { 1 }

Less behavior, more case

คำเตือน blog นี้เขียนเพื่อบ่นการทำงานโดยเฉพาะ! ช่วงนี้ประชุมเยอะ เลยคิดอะไรได้นิดหน่อยเนื่องจากพยายามจะจำกัดให้ Project ไม่โตเกินไปแต่รู้สึกจะห้ามไม่ได้เท่าไหร่ เคย Tweet ลอยๆว่าจริงๆ ควรทำระบบในรูปแบบกลับด้านจากเผื่อเหลือ ให้เป็นระบบที่ยังขาดบางอย่างอยู่ซะ แต่ก็ไม่ได้คิดต่อว่าเพราะอะไรจนช่วงนี้แหละที่ประชุมรวบรวมว่าระบบต้องทำอะไรบ้างถึงเขียนยาวๆ ได้ เนื่องจากระบบที่ทำอยู่ เป็นระบบที่ใหญ่มากประกอบด้วยการทำงานจากชั้นย่อยๆ หลายๆส่วน มีพฤติกรรมล้านแปดจาก Marketing เมื่อจะเริ่มทำเจ้าของระบบก็เอา Requirement ทั้งหมดมาแปลงเป็น Design ขนาดใหญ่เพื่อให้ระบบทำตาม Requirement/Bahavior ได้ทั้งหมดตั้งแต่เริ่มต้น!!! ซึ่ง Requirement ก็เปลี่ยนแปลงไปมาเพิ่มนู่นนี่จนปัจจุบันก็ยังไม่ได้ Finale design ที่สมบูรณ์พร้อมที่จะให้ Programmer ตาดำๆ ไปเขียนหรือแบ่งส่วนให้ชัดเจนเสียที เพราะรายละเอียดจุกจิกทั้งหลายมักจะโผล่มาจากคนนู้นทีคนนี้ทีจนมันไม่เสร็จ ก็เลยคิดได้ว่า จริงๆแล้วถึงแม้ระบบมันจะใหญ่ขนาดไหนก็ตาม มันควรจะตัด Behavior พื้นฐานแล้วค่อยๆทำก่อน ไม่จำเป็นต้องออกแบบหรือคิดถึง Behavior ทั้งหมด เมื่อได้ชั้นต่างๆ ที่มีหน้าที่ชัดเจน มี test(case) ครอบคลุมแล้วเราถึงค่อยทำ Behavior เพิ่ม การออกแบบก็ไม่ใช่ออกแบบทั้งหมดตั้งแต่ต้น แต่ต้องทำเพื่อให้มันค่อยๆ เพิ่มได้เพราะงั้นสิ่งที่ควรทำจริงๆ คือ [...]

Read full story Comments { 2 }

HTML5 Application Cache #2

จากภาคแรก สิ่งที่ยังไม่ได้เขียนถึงคือ event และ status ของ Application Cache สองอย่างนี้ใช้คู่กันเมื่อ manifest file มีการเปลี่ยนแปลงโดย browser จะยิง event มาหลังจากเทียบ manifest file และโหลดไฟล์ที่กำหนดให้เก็บไว้ event ต่างๆ ก็มี checking: event แรกที่จะถูกยิงออกมา เป็นช่วงที่ browser ดาวโหลด manifest มาเทียบว่าต้องดึงไฟล์มาใหม่หรือไม่ ตรวจสอบเสร็จก็จะมี 4 event ที่ยิงถัดมาคือ noupdate, downloading, obsolete, error noupdate: หลังจากตรวจสอบแล้ว manifest ไม่มีการเปลี่ยนแปลง Application Cache ก็ยิง event นี้ออกมา downloading: หลังจากตรวจสอบแล้วว่า manifest มีการเปลี่ยนแปลง browser ก็จะดาวโหลดไฟล์ใหม่และ Application Cache [...]

Read full story Comments { 0 }