CRUD

CRUD เป็นคำย่อมาจาก Create Read Update Delete ซึ่งเป็นการรวมการทำงานพื้นฐานบนฐานข้อมูลใดๆ คำนี้จะเจอบ่อยกับบรรดา Web Framework ทุกยี่ห้อ

วันนี้นั่งอ่านๆ ไปแล้วก็เพิ่งรูว่ามันมีคำอื่นด้วย

  • ABCD: add, browse, change, delete
  • ACID: add, change, inquire, delete
  • BREAD: browse, read, edit, add, delete
  • VADE(R): view, add, delete, edit (restore)

ที่มา – Wikipedia

note on django

Today, i try to write more sample application in django. While django is a great framework with simplicity. Many parts of its’ quite unstable. With many modules waiting for rewrite before version 1.0. I hit a quite simple bug in ORM mapper. (Bug #2918)

But the problem was not all bad. I has tried to find some GUI application to work with sqlite3 for awhile. (For I’m too lazy to read SQL which I hardly used.) Most application were written for win32. But at last I found sqlitebrowser, it’s simple and clean GUI administration for sqlite3.

The problem always come with solution and knowledge, doesn’t it?

Import

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

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

แต่ที่รำคาญมากหน่อยคือ Views ที่ดูเหมือนต้อง import สารพัดเข้ามาใช้งานจนดูเลอะๆ ชอบกล มันน่าจะมีวิธีรวมๆ กันที่สวยกว่านี้นะ

Prototype

ลองนั่งทำ 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 ให้ครบๆ