สมุด

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

  • ขนาดพอดีมือ ที่ชอบที่สุดคือ B5 แต่ถ้าใครชอบขนาดอื่นๆ ก็คงเป็นเรื่องแล้วแต่คน
  • กันน้ำได้บ้าง เป็นแบบ Spill Proof
  • ปกแข็งมากๆ พอที่จะเขียนได้โดยไม่ต้องมีอะไรรอง อาจจะเป็นไม้ พลาสติกแข็ง หรือเหล็กก็ได้
  • ปกต้องใหญ่กว่าตัวสมุดจะได้ช่วยป้องกันตัวเนื้อกระดาษได้ เวลาจับยัดใส่กระเป๋า
  • มีที่เก็บปากกา สำคัญมาก เพราะมีสมุดแต่หาปากกาไม่เจอมันไม่ช่วยอะไรเลย
  • มีเส้นตาราง แต่ควรจางมากๆๆๆๆ แบบเส้นร่างตอนเรียนเขียนแบบอย่างนั้นเลย
  • เติมกระดาษได้
  • ฉีกกระดาษออกได้ง่ายๆ
  • ออกแบบสวย สาวเห็นแล้วอยากซื้อให้ (อันนี้เริ่มออกทะเล…)
 

I’m now with GIT

โดยส่วนตัวแล้ว ใช้โปรแกรมประเภท SCM กระจายมาก คือมั่วไปหมดตั้งแต่สมัยเรียน จำไม่ได้แล้วว่าตัวไหน แต่จำได้ว่าเคยไปช่วยเค้าเขียนคู่มือเป็นภาษาไทยอยู่ทีนึง แล้วก็จับๆ ทั้ง SVN และ CVS ส่วนตอนทำงานใช้งาน CVS อยู่ 95 % ส่วนอีก 5% ใช้ SVN ในโครงการเล็กๆ ประเภท Utility ใช้เองในบริษัททั้งหลาย

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

แต่เมื่ออาทิตย์ที่แล้วได้ดูวีดีโอ Linus on GIT แล้วก็พบเรื่องน่าสนใจหลายอย่าง แม้จริงๆ แล้วจะดูวีดีโอนี้เพราะอยากฟังไลนัสพูดมากกว่า แต่สุดท้ายหลังวีดีโอจบ ผมก็โหลด GIT มาเล่นดู แล้วก็พบว่ามันลงตัวหลายๆ อย่าง นับแต่ความง่าย ความทรงพลัง ฯล

แต่วีดีโอของไลนัสก็สร้างแรงกระเพื่อมออกมาค่อนข้างเยอะ ที่น่าสนใจที่สุดคงเป็นบทความของ  Ben Collins-Sussman นักพัฒนาของ SVN เองที่ออกมาเขียนบทความว่า GIT นั้นแม้จะดูเจ๋ง แต่เอาเข้าจริงแล้วก็เหมาะสมกับ Alpha Geek เท่านั้น แต่ผู้ใช้งานทั่วไปที่เป็นคนพัฒนาโปรแกรมในหน่วยงานต่างๆ นั้นไม่ได้ยินดีที่จะเรียนรู้แนวคิดใหม่เช่นนี้ และยิ่งระดับผู้บริหารแล้ว การทำสำเนาประวัติการพัฒนาโปรแกรมทั้งหมดให้อยู่ในมือโปรแกรมเมอร์ทุกคนคงไม่ใช่เรื่องที่ยอมรับได้ง่ายๆ

แต่แนวทางที่ผมว่าน่าสนใจ และคิดว่าควรมีก่อนเลยคือ Offline Commit ที่ Karl Fogel เองก็ยอมรับว่าเป็นหนึ่งในประเด็นที่มีความสำคัญสูง ส่วนเรื่องการทำงานเร็ว และการสร้าง Local Branch นั้นแม้จะดีแต่ก็คงไม่สำคัญเท่า

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

ปล. ดูวีดีโอแล้วจะเข้าใจว่าคำพูดแรงๆ ที่ไลนัสที่เจอในเว็บนี่เป็นนิสัยปรกติของเค้า ไม่งั้นอ่านแต่ละทีแล้วตกใจเอาง่ายๆ

 

CSS วิบาก

เริ่มต้นเรื่องแนว Comp. Only ในเว็บนี้กันด้วยประสบการณ์แก้ CSS แล้วกัน

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

ความสนุกเริ่มขึ้นเมื่อหนึ่งใน Requirement ที่ได้รับมาคือเมนู Drop-Down ซึ่งแน่นอนว่าผมไม่มีปัญญาทำเองครับ ยังดีที่มีคนทำโมดูล Nice Menus มาให้เรียบร้อยแล้ว แม้จะบอกว่าอยู่ในระดับ Experimental แต่ยังไงคงดีกว่าเขียนใหม่เองแน่นอน ว่าแล้วก็ไม่รอช้า ติดตั้งในทันใด

กระบวนการต่อจากนั้นเป็นการ Customize ให้เมนูนั้นเข้ากับตัวเว็บครับ ซึ่งก็สนุกสนานดีเพราะสุดท้ายแล้วมีบางส่วนต้องใช้ jQuery มาเพื่อนำ DOM Parser ของมันมาใช้ในการทำสวยงามด้วย ตลอดกระบวนการนั้นได้รับความช่วยเหลือจาก Firebug เป็นอย่างดี รอดตายมาได้หลายต่อหลายครั้งก็เพราะมัน

สุดท้ายมาอับจนปัญญาเอาตรงนี้ครับ

จริงๆ ก็ไม่มีอะไรมาก แค่มีการกำหนดสี Background เอาไว้เมื่อมีเมาส์ Hover ไปตรงลิงก์ แค่หา CSS ที่เกี่ยวข้องแล้วแก้ออกก็น่าจะหายไป ปัญหาคือผมไม่ได้กำหนด และผมไม่รู้ว่ามีใครไปกำหนดไว้ตรงไหน

ถ้าได้ศึกษา CSS มาบ้างจะรู้ว่ามันมีสิ่งที่เรียกว่า Pseudo Class เช่น “class_name:hover” ใน CSS ที่เอาไว้ทำหน้าที่กำหนดสีแบบนี้โดยเฉพาะ ความลำบากมันบังเกิดเมื่อผมพบว่า Firebug มันไม่รองรับ Pseudo Class เลยงานนี้เลยต้องนั่งงมกันเองว่าเจ้า CSS ที่ว่านี้มันมาจากตรงไหนกัน

วิธีการแก้ปัญหาแรกที่คิดออกเลยคือเอา jQuery มายิงสี Background ตอนทำ Hover ให้เปลี่ยนสีไปก่อนเลย เป็นการซ่อนปัญหาไว้ใต้พรมที่ดูน่าจะได้ผลดีที่สุดแล้ว แม้จะรู้ว่าไม่ใช่การแก้ปัญหาที่ดี แต่ผมก็ไม่รอช้าที่จะลอง แต่ถ้ามันเวิร์คคงรอไปอีกนานที่จะกลับมาแก้… :P

$(".menu-parent-id-2 li").hover(function(){ $(this).css(background:"#8FAF0F"); },function(){ $(this).css(background:"#000000"); }

งานนี้ลองเสร็จเว็บก็เละในทันที….

กลับไปนอนคิดอีกคืน ผลที่ได้คือในเมื่อ Firebug มันบอกไม่ได้ว่าสีนี้มาจากไหนก็ไม่ต้องรอมันบอก หาเองโลด เลยต้องหาที่พึ่งใหม่นั่นคือ


ColorZilla นั่นเอง….

ความสนุกยังไม่จบลงแค่นั้น หลังจากที่ลง ColorZilla แล้ว เมื่อลองใช้งานดูก็พบว่า


มันใช้ไม่ได้ครับพี่น้อง….

สุดท้ายก็มีแต่ The GIMP ที่เข้าใจเรา

เมื่อได้ค่าสีแล้วก็พบว่าสีแบบนี้มีใช้ในธีม Stylized Beauty ที่มุกเอามาใช้เป็น Base ในการสร้างธีม ก็ลบบรรทัดนั้นออกไปก็เป็นอันเรียบร้อย

และแล้วเมนูก็เสร็จตาม Requirement…..

 

one night

รูปนี้กับคนทั่วไปคงไม่มีค่าอะไร แต่กับผมเองมันมีค่าเป็นการนอนหนึ่งคืนเต็มๆ

ปล. เวลาเทรน neural อย่าใช้ค่าสัมประสิทธิ์เดียวกันทั้งระบบ เพราะมันจะไม่ออก