Aug 30 2009

เขียนโค้ดละลายแม่น้ำ

Category: Directionm3rLinEz @ 10:19

ตั้งแต่เริ่มทำงานมา ตามลักษณะงานที่มันเป็นการเขียนโปรแกรมสั้นๆอยู่แล้วซึ่งส่วนใหญ่ก็เป็นการดัดแปลงโปรแกรมตัวอย่าง ทำให้ผมเขียนโค้ดน้อยลงอย่างมากเทียบกับสมัยเรียน (เลยต้องมาระบายอารมณ์ตามบลอกตามที่ท่านเห็น ฮะๆ)

ปัญหาที่ผมสังเกตเกี่ยวกับตัวเองคือ โปรแกรมจำนวนมากที่เคยเขียนในสมัยเรียนมันหายไปไหนหมดก็ไม่รู้! ตัวอย่างโปรเจคที่ “ละลายโค้ด” จำนวนมากลงไป เช่น

  • โค้ดสมัยเรียนค่ายโอลิมปิก
  • โปรแกรมรายรับรายจ่ายง่ายๆบน Windows Mobile และโปรแกรมอื่นๆที่เคยส่ง บ.สามารถ
  • โปรแกรม ChemLive! ที่ส่ง MS Imagine Cup
  • โปรเจควิชา Database + Software Engineering ที่คณะ
  • โปรเจคที่เคยส่งงาน RFID ของ NECTEC
  • โปรเจคย่อยๆมากมายในวิชาเรียนอื่นๆ เช่น Fund Dist, Computer Security, Operating System, Computer Graphics, Image Processing, ..

ถ้าถามถึงโปรเจคทั้งหมดที่ยกมา ผมแทบ “จำไม่ได้” เลยว่าทำอะไรไปบ้างและได้อะไรมาบ้าง งานที่ทำไปบางชิ้นเอาไปวางไว้ที่ไหนก็ไม่รู้เหมือนกัน

มานั่งคิดๆดู มันก็มีหลายปัจจัยที่ทำให้งานที่เคยใช้เวลาทำมาไม่มีประโยชน์อะไรในตอนนี้ เช่น

  • ผมไม่มั่นใจในงาน งานบางอันที่ต้อง “รีบปั่นรีบส่ง” หลังงานเสร็จ ผมจะคิดในใจ (ดังๆ) ว่า “ของมันไม่ดีจริง” แล้วหลังจากนั้นถ้ามีโอกาสอะไรที่จะเอาไป “ต่อยอด” งานได้ ผมจะรู้สึกหวั่นๆ เหมือนกำลังโดนจับผิด หลายครั้งมีโอกาสดีๆเช่น บ.ข้างนอก อยากให้เอาโปรแกรม ChemLive! ไปทำต่อ ผมก็ (น่าจะ) เป็นคนเดียวในทีมที่ไม่สบายใจเอาซะมากๆ ผมไม่อยากแบกรับภาระจากการซ่อมบำรุงงานที่ผมไม่มั่นใจ งานบางชิ้นในลักษณะนี้ก็เลยหายไปจากสารบบโดยปริยาย –..-‘’ เป็นนิสัยเสียที่น่าจะโดนเพื่อนๆร่วมทีมว่าอยู่เยอะเหมือนกัน
  • งานไม่มั่นใจในผม หลายครั้งการเอางานที่เราคิดว่า “นี่ทำมาดีมากแล้วนะ” ไปส่งประกวด แล้ว Feedback จากกรรมการมันไม่เป็นไปอย่างที่คิด มันก็ทำให้เสียกำลังใจและพาลไม่อยากทำต่อได้ครับ ตัวอย่างที่เข้าเคสนี้คือโปรแกรม RFID ที่ค่อนข้างจะทุ่ม effort กันสูงมากทั้งทีม แต่มีปัญหาเรื่องการนำเสนอ (อ่านต่อที่ “การนำเสนอสำคัญกว่าโค้ด”)
  • ผมกำลังทำการบ้านส่ง ผมไม่ได้เขียนโค้ด อันนี้เป็นพวกโปรเจคในคณะ ที่ส่วนใหญ่จะมีเดดไลน์และ scope ชัดเจน มันต่างจาก “ปั่นส่ง” ในข้อแรกตรงที่ งานในลักษณะนี้ มันเป็น “ปั่นส่ง” จากเริ่ม คือก็ทำให้เสร็จๆไปงั้น แต่ในเคสแรกตอนแรกอาจจะทำด้วยความสนุก แต่ตอนหลังโดนบีบให้ปั่น พอส่งเสร็จก็ลืมไปเลยว่าเคยทำ เช่นพวก Database หรือ Software Engineering

จวบจนสองโปรเจคสุดท้ายก่อนเรียนจบ คือ Game Programming กับ Senior Project  ผมก็รู้สึกว่าได้สร้าง “คุณค่า” ไว้พอสมควร

อย่างแรกคือ Game Programming ผมไม่รู้สึกว่าโค้ดตัวเองที่เขียนร่วมกับเพื่อนๆอีก 2 คนมัน “เละ” ถ้ามีโอกาสให้กลับไปทำโปรเจค Ogre อีกรอบนี่จะเป็นที่แรกที่ผมกลับไปดู :) 

ส่วน Senior Project ถึงแม้ผลลัพธ์มันจะออกมาไม่ดีเท่าไหร่และได้ชมเชยใน NSC แต่ผมก็รู้สึกว่าได้ตั้งใจทำเต็มที่แล้ว และทุกอย่างที่ทำทุกวันนี้ก็เข้าถึงได้โดยง่ายเพราะเอาไปวางไว้บน Project Hosting หลายครั้งยังต้องเข้าไปดู Code C++ ที่ตัวเองเขียนอยู่เลย (เพราะบางทีจำไม่ได้ว่าเขียนยังไง - -‘’)

ผมมีแนวทาง (ที่ตอนนี้ใช้อยู่เอง) ในการเพิ่ม “คุณค่า” ให้โปรแกรมที่เขียนดังต่อไปนี้

    1. พยายามทำให้ Source Code ที่เขียนและงานที่ทำเข้าถึงง่ายที่สุด สมัยนี้มีเว็บประเภท Project Hosting ให้ใช้เยอะแยะ ทั้ง Git Hub, Google Code, Code Plex, Source Forge (แต่ก่อนประเทศไทยมี Code Bank ด้วย แต่ไม่รู้เจ๊งไปรึยัง)
    2. จดบันทึกสิ่งที่ทำอยู่ ไม่ต้องละเอียดมาก (แต่ก็อย่าแย่ถึงขั้น “โอ้ววว ไพธอนหล่อแสรดดด” –..-‘a) เอาแบบไว้อ่านคนเดียวก็ได้ จะ Tweet หรือจะ Blog ก็น่าจะเวิร์คเหมือนกัน อันนี้จะเหมือนการ Document ตลอดเวลา แล้วตอนหลังเวลาติดปัญหาเดียวกันจะได้กลับมาดูได้ นอกจากนั้นอาจจะได้วิธีการที่ดีกว่าเดิมจากเพื่อนๆที่มาอ่านอีก (แนะนำวิธีจด)
    3. วิ่งเข้าหาสิ่งใหม่ๆให้บ่อยๆ ในงานที่ทำเล่นๆหรือที่เดดไลน์มันไม่บีบคั้นมาก ลอง “เลือก” อะไรที่มันแตกต่างจากเดิม (และดูดีมีอนาคต :P) มาลองบ้างดีมั้ย?? สมัยนี้มีพวก Framework, Libraries, ภาษาใหม่ๆ ให้ลองใช้เยอะแยะ
    4. อย่าปั่นงาน ..ทำยากโคดว่ะ

ขอให้สนุกกับการเป็นนักเขียนโค้ด “เชิงคุณค่า”

Tags: , ,

Aug 18 2009

รวบรวม Tag Lines ของ Life On VM

Category: Directionm3rLinEz @ 22:34

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

  • .NET, Java, Object Oriented Design (พักหลังๆมันชักจะหลายเรื่อง - -‘’)
  • Where Garbages are Collected (เอามาจาก Concept เรื่อง GC ที่ VB ไหนๆก็มี)
  • Think Big. Start small. (เป็น Concept เรื่องธุรกิจ เอามาจากซักที่ แต่รู้สึกมันคล้ายๆกับ Lazy Loading หรือ JIT)
  • Pointers are Prohibited (ที่นี่ไม่มี * และ & )(จริงๆแล้วมี ฮะๆ)

Tags: ,

Jun 15 2009

อัพเกรดเป็น BlogEngine 1.5.0

Category: Directionm3rLinEz @ 21:56

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

ตอนนี้ทางทีมผู้พัฒนาเค้าก็เริ่ม “เงียบ” ไปแล้ว ไม่รู้ว่าจะ “ร้าง” ไปเลยรึเปล่า ถ้าเลิกทำไปเลยผมก็แอบเสียใจนิดหน่อยนะ แต่ก็ไม่รู้สึกว่าจะเป็นปัญหาเท่าไหร่ ด้วยความที่โปรเจคมันเล็ก ตับไตไส้พุงก็พอจะเคยเห็น เคยทำ localize ภาษาไทยให้ ก็รู้สึกมีความเป็นเจ้าของร่วมด้วยส่วนหนึ่ง :)

Tags:

Oct 28 2008

ไปสอบ Network Security Contest

Category: Directionm3rLinEz @ 10:52

เพื่อนโอปอล กับเพื่อนยิ้งชวนไป ก็ได้ได้ไปแข่ง o__O'

ตามที่พี่เค้าแจ้งมาบอกว่าข้อสอบจะออกยึดแนวของ CISSP หรือ Certified Information Systems Security Professional ก็ลองไปหาข้อสอบ (braindumps) มาลองทำดูแล้วก็พบว่าทำแทบไม่ได้เลย T__T ส่วนหนึ่งก็เป็นเพราะมันเป็นข้อสอบระดับ "นโยบาย" ก็เลยออกแนวท่องๆ จำๆ มากไปหน่อย ซึ่งก็คิดว่าวันสอบจริงคงไม่เอาข้อสอบแบบนี้มาออกมั้ง

เมื่อวันจันทร์ที่ 27 ที่ผ่านมาก็เป็นเปิดเทอมวันแรก แต่ก็ไปแข่ง NW Security แทน ข้อสอบก็แบ่งออกเป็นสองส่วนครับ ส่วนแรกจะง่ายกว่าส่วนที่สอง เป็น Multiple Choices และหลายข้อก็ตอบได้มากกว่า 1 ตัวเลือก เล่นเอางงไปพักใหญ่ ก่อนที่จะไปสอบ NW Security ก็พยายามหาข้อมูลในบลอกไว้บ้างเหมือนกันครับ แต่ไม่เห็นจะมีใครเขียนเลย ก็ขอโปรยคีย์เวิร์ดเท่าที่จำได้ไว้ตรงนี้แล้วกันเผื่อใครจะไปสอบ ส่วนตัวข้อสอบจำแทบไม่ได้เลยน่ะ

  • พ.ร.บ พระราชบัญญัติ พระราชกำหนด มาตราต่างๆ  โทษที่ได้รับจากความผิดแบบต่างๆ
  • Threats, Vulnerability, Risk, Risk Managment, Risk Mitigation, TCO
  • Trojan, Virus, Spyware, Worm, Spam Mail, Phishing, Pharming, Botnet, Adaware, Spybot, Anti-virus, System Restore, Back door, Virus Naming
  • Network Architecture, Screened Subset, PKI, IDS, NIDS, NIPS, KDC, Symetric Key, Signature-based, Anomaly-based
  • Man-in-the-middle, Adhoc, MAC Address Spoofing, Network Sniffing, Social Engineering, Shoulder Surfing, Dump Diving, Data Diddling, DoS, DNS
  • VLAN, IPSec, SSL, TLS, SNMP, ICMP, Community String, DMZ, Firewall, 0-day

ข้อสอบมีทั้งหมด 186 ข้อ ใช้เวลาประมาณ 3 ชม. ครับ ตอนแรกดูเหมือนจะน้อย แต่จริงๆพอทำจริงแล้วรู้สึกว่าบางข้อแทบไม่มีความรู้อะไรจะไปตอบเลย  เวลาก็เลยพอ - -''

ขากลับก็เจอแท็กซี่โดยบังเอิญ (จริงๆ) แล้วก็์นั่งรถกลับมาได้อย่างปลอดภัยครับ

 

 

Tags: ,

Jan 29 2008

เปิดบลอกใหม่ (อีกรอบ)

Category: Directionm3rLinEz @ 04:06

ตอนนี้เขียนอยู่สองที่แล้วคือที่ ...

  • Blogger อันนี้เน้นเรื่องแนวเทคนิคสุดๆ แต่เป็นภาษาอังกฤษทั้งแผงเลยนะ
  • MSN Space แนวชีวิต ไร้สาระ มีเรื่องเทคนิคเจือปนน้อยที่สุด

ส่วนที่นี่ที่จะเขียนต่อนี่ จะเขียนบทความเทคนิคแหละ แต่จะเป็นภาษาไทยล้วนๆ แล้วก็คงเน้นๆไปที่เรื่องแนวๆ OO แหละ อยากเรียนรู้ไปด้วยและเขียนไปด้วย เหมือนชื่อบลอกนั่นแหละ ตัว VM ย่อมาจาก Virtual Machine น่ะ

จะพยายามไม่ให้ล่มนะครับบบ Embarassed

Tags: