May 25
ปิดเทอมหัดเขียน Django เล่นๆ พบว่าสนุกดีใช้ได้เหมือนกัน สำหรับคนไม่เขียนเว็บอย่างผม (เขียนแต่บล็อก และอ่านเว็บเยอะมาก)
ข้อเสียหลักๆ ของ Django ตอนนี้คือ API ที่ยังไม่เสถียรอยู่เยอะ ถ้าใครอ่าน Django Book จะเห็นว่ามีอีกสองสามบทที่ยังไม่ได้เขียนเพราะมีแนวโน้มสูงว่าจะโดนยกเครื่องทั้งกระบิ (พี่คนหนึ่งเคยบอกว่าเป็นนิสัยของ Python Programmer ที่ชอบโล๊ะโค้ดเก่าทิ้ง) ตอนนี้แว่วๆ ว่า Admin ก็จะโดนไปด้วยเหมือนกัน พวกนี้ยังพอทำใจได้เพราะถือว่าทำแล้วมันดีขึ้นจริง
แต่ที่รำคาญมากหน่อยคือ Views ที่ดูเหมือนต้อง import สารพัดเข้ามาใช้งานจนดูเลอะๆ ชอบกล มันน่าจะมีวิธีรวมๆ กันที่สวยกว่านี้นะ

written by lewcpe
\\ tags: django, programming, python
Apr 19
ลองนั่งทำ C PUZZLES ดู แล้วติดที่ข้อนี้ ที่ให้อธิบายว่าโค้ดข้างล่างนี้จะ Segmentation Fault เมื่อคอมไพล์บน IA-64 แต่ทำงานถูกต้องบน IA-32
int main()
{
int* p;
p = (int*)malloc(sizeof(int));
*p = 10;
return 0;
}
ปัญหาคือดันไม่มี IA-64 ให้เล่นอีก เลยต้องนั่งหาในเน็ตดูว่ามีเฉลยกันมั่งรึเปล่า แล้วก็เจอไม่ยาก จาก debian-list
เรื่องของเรื่องคือเมื่อคอมไพล์เลอร์ไม่พบ Prototype ของฟังก์ชั่น มันจะคิดเอาเองว่าฟังก์ชั่นจะคืนค่าเป็น int 32 เสมอ ในกรณีนี้ทำให้ core dump ได้ไม่ยาก วิธีแก้ก็ไม่มีอะไรเลย แค่ include ไฟล์ stdlib.h เข้าไปก็จะไม่มีปัญหาแล้ว
เขียน C มาเป็นปีๆ เรื่องพวกนี้ หลายๆ ครั้งก็แค่ตาม Best Practice ไปโดยไม่เข้าใจแฮะว่าทำไมต้อง include ให้ครบๆ
written by lewcpe
\\ tags: geek, programming
Mar 21
พอดีอ่านเรื่องที่ plynoi พูดถึงความขี้เกียจเอาไว้ คิดว่าอีกประเด็นที่น่าสนใจคือเรื่องของสัดส่วนการแบ่งเวลา
ผมเห็นโปรแกรมเมอร์จำนวนมาก มุ่งสร้างผลงานในเชิง “ปริมาณ” กันอย่างเอาเป็นเอาตาย คนกลุ่มนี้มักส่งงานชุดแรกเร็วที่สุดเสมอๆ ด้วยความคิด ง่ายสุด เร็วสุด ดีสุด
ผลที่ได้คือการไม่ยอมเรียนรู้ และ reuse สิ่งที่มีอยู่แล้ว เป็นจำนวนมาก เช่นฟังก์ชั่นวันที่อย่าง strptime ที่เห็นคนพยายามจะเขียนตัว Parse วันที่กันซ้ำแล้วซ้ำเล่า ไม่รู้่กี่ครั้งในอายุงานไม่มากนักของผม ผมเคยเห็นคนเขียน C++ ที่สร้าง LinkedList ใช้เองแทน Vector หรือจะเป็นการทำงานอย่างอื่นๆ อีกมากมายนับไม่ถ้วน
ผมมองเรื่องพวกนี้เป็นการแบ่งส่วนเวลา ระหว่างการอ่าน (เรียนรู้) กับการลงมือทำ
คนโดยทั่วไปแล้วมักจะแบ่งเวลาให้การลงมือทำเป็นเวลาส่วนใหญ่ เกินร้อยละ 75 มีหลายๆ ครั้งที่เต็มร้อย
แต่ความลำเค็ญจะเกิดขึ้นเมื่อต้องมีการ maintain ผลงานที่สร้างไว้ก่อนหน้า ด้วยความที่โค้ดมีปริมาณมาก จากการไม่ใช้งานไลบราลี สิ่งที่พบอย่างหลีกเลี่ยงไม่ได้คือปริมาณบั๊กที่ต้องดูแลกันเป็นเวลายาวนานและน่าทรมานอย่างไม่น่าเชื่อ
กับตัวเองแล้ว สมัยเรียนผมแบ่งเวลาอ่านหนังสือถึงร้อยละ 80 ใช้เวลาทำแค่ 20 แต่พอมาเจอโลกความเป็นจริงก็พบว่่ามันทำอย่างนั้นไม่ได้เสมอไป ด้วยเหตุผลทางธุรกิจหลายประการ เราต้องทำก่อน แก้ทีหลังไปเสมอๆ
มันอาจจะดีถ้าก่อนที่เราจะเพิ่มโปรแกรมเมอร์เข้ามาในโปรเจค แล้วให้สอบความรู้ด้านเทคนิคกันให้ผ่านก่อนนะ
written by lewcpe
\\ tags: programming
Feb 16
ถ - การเขียนโปรแกรมคืออะไร ระหว่าง วิทยาศาสตร์, ศิลปะ และไสยศาสตร์
ตอบ 1 - ไสยศาสตร์ และบั๊กเกิดขึ้นจากคำสาปหรือมนต์ดำ
ตอบ 2 - ศิลปะ มันเป็นทั้งศาสตร์และศิลป ทุกอย่างอธิบายได้ด้วยความสวยงามในเชิงสถาปัตยกรรม
ตอบ 3 - วิทยาศาสตร์ ทุกอย่างอธิบายได้ และมีทางแก้ไขที่ชัดเจน
คนตอบคนแรกทำงานเป็นโปรแกรมเมอร์มืออาชีพ เขียนโปรแกรมมาแล้วหลายปี
คนที่สองกำลังเรียนเขียนโปรแกรมอยู่ และพบกับความน่าตื่นตาของการเขียนโปรแกรม
.
.
คนที่สามเขียนโปรแกรมไม่เป็น….
written by lewcpe
\\ tags: geek, programming