หลายวันก่อน @somkiat เล่าว่าจะใช้ NoSQL ให้ศึกษาถึง Model ที่ใช้ก่อนที่จะเลือกว่าจะใช้ Database ตัวไหน วันนี้พึ่งเข้าใจหลังจากเล่น Redis อีกครั้ง เพราะเป็น Database ที่ต่างจากตัวอื่นจริงๆ โดยเฉพาะเวลาจะ query เลือก data ที่ต้องการ ทั่วไปแล้วก็มีสองแบบ Document Oriented – แบบแรกเวลาที่จะเอาข้อมูลขึ้นมาใช้ จะสามารถค้นหาผ่าน field ต่างๆ ได้โดยตรง สมมติมีข้อมูลแบบด้านล่าง DB ที่ใช้ Model แบบนี้สามารถหาผ่าน field แต่ละ field ได้เลยเช่นกำหนดว่าต้องการ query field name ที่มีค่าเป็น Lucy หรือ field age อยู่ในช่วง 12 และเราสามารถเพิ่ม field เข้าไปเพื่อค้นหาได้เลยด้วย DB กลุ่มนี้ก็พวก MongoDB, CouchDB [...]
@With @Before @Check @Playframework
หลังจากพึ่งพา Security module มานานและขัดใจกับ @With(Secure.class) ที่ method ทั้งหมดจะ access ได้ต้อง authen ก่อนแต่บาง method ไม่ต้องการอย่างนั้นเลยต้องสร้าง class แยก วันนี้ลองขุดๆ code security module ดูถึงรู้ว่าจริงๆ แล้ว @With มีหน้าที่อะไร และ @Before ทำอะไรได้ และ @Check จริงๆ แล้วมันทำงานยังไง @With ใช้สำหรับรวม method ของ Class เข้าด้วยกันทำให้ annotation ต่างๆ เช่น @Before @After… มองเห็นข้าม class ที่ถูกประกาศไว้ เช่น จาก code ด้านบนเมื่อเรียกมาที่หน้า B.show จะมีการเรียก setup และ tearDown ก่อนและหลังจากที่ [...]
Node.JS on FreeBSD 64 bit
เมื่อวานลงเครื่องให้น้องสำหรับลอง Node.js app ก็ดาวโหลดมาคอมไพล์ปกติดี ลองรัน node ปรากฏว่ามันค้างนิ่งๆ ก็คิดว่าปกติไม่ได้ทำอะไรต่อ จนมาวันนี้น้องทักว่ามันอาการไม่ปกติ เลยต้องมาหาวิธีลงใหม่ ขุดไปมาพบว่าเป็นเพราะ v8 ที่ทำให้ Node.js มีปัญหา วันนี้ก็เลยเอามาลองใหม่เริ่มจาก clone v8 มาก่อน ที่เลือก clone จาก git เพราะจะได้ switch branch สะดวกหลังจากได้ v8 มาก็ compile ออกมาเป็น library ก่อนที่จะ compile ได้ต้องติด scons ด้วยสำหรับ FreeBSD อยู่ใน /usr/ports/devel/scons compile เสร็จก็ copy library ไปที่ /usr/local/lib และดาวโหลด node.js และติดตั้ง compile node เสร็จก็ติดตั้ง จากนั้นก็ใช้ Node.js ได้ตามปกติ
LuaDBI in Debian6
อาทิตย์ที่ผ่านมาตอนเข้าไปถามเรื่อง roster ใน Prosody mailing list ได้คำแนะนำเรื่อง mod_auth_wordpress กลับมาด้วยเมื่อคืนเลยแก้ไขซักหน่อย เริ่มจากเปลี่ยน Database library ที่ของเดิมเรียกไปที่ MySQL library ตรงๆ มาเป็นเรียกผ่าน LuaDBI แล้วก็เจอ error ก่อนเลยเนื่องจาก package ใน Debian repository ของ prosody.im เก่าไปแล้ว ใช้ได้ถึงแค่ lenny ต้องหาทาง compile เองแทน ซึ่งก็ไม่ยากเท่าไหร่ แค่ตอน compile เสร็จไม่รู้ว่าต้องย้ายไปไว้ที่ไหนเลยต้องเข้าไปถามใน mailing list อีกที เริ่มจากเตรียม header ต่างๆ ให้พร้อมก่อน ขึ้นกับ Database ที่ใช้ถ้าเป็น MySQL ก็ติด libmysqlclient-dev เพิ่มด้วย สร้าง directory ไว้เก็บ LuaDBI [...]
Batch beautify java source
เวลาเขียนโปรแกรมร่วมกันเป็นกลุ่มโดนปกติแล้วก็จะกำหนด Code Convention ขึ้นมาเพื่อให้ทุกคนทำตาม ซึ่งทำให้ Code ภายในสามารถอ่านได้ง่ายแต่ละคนสามารถทำ module ร่วมกันได้เร็ว แต่หลังๆ เริ่มมีปัญหาเพราะต้องเอา Source ของ Project อื่นมาแก้ไขต่อและใช้ Convention ไม่เหมือนกันโดยเฉพาะ Space และ Tab ทำให้ปวดหัวมากเวลา DIff ทางแก้คือหาทาง Format Code ทั้ง Project ซะเวลาเอา Project นั้นมาใช้ที Code beautify ที่เป็นโปรแกรมแยกลองหาดูเหลืออยู่สองสามเจ้า สุดท้ายเจอ Blog นึงเขียนเมื่อสี่ปีที่แล้ว บอกว่า Eclipse สามารถทำได้อยู่แล้ว ไม่ต้องไปหาโปรแกรมที่เสียตังหรอก แค่สั่ง code format config สามารถเอาออกมาได้จาก Eclipse > Preferences > Java > Code Style > Formatter [...]