Archive | ระบบ RSS feed for this section

NoSQL Model

หลายวันก่อน @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 [...]

Read full story Comments { 4 }

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 ได้ตามปกติ

Read full story Comments { 3 }

Remember git password when cloning from HTTP

Short note for GIT Create file .netrc in home directory Append machine record with username and password in that file with format In OSX, change username to login. Clone/Push again from netrc machine shouldn’t show any username/password prompt anymore.

Read full story Comments { 0 }

Redmine + Nginx

หลังจากใช้ Teambox มาได้ครึ่งปีและคอยตามอัพเกรดพบว่า Teambox นั้นยังไม่ Stable เท่าไหร่แถมทรัพยากรที่ใช้ก็มากพอดู เมื่อวานเลยมองหาทางเลือกอื่นอีกครั้งเพื่อเอา Teambox ออกจากระบบ เริ่มแรกคิดว่าจะย้ายไปใช้ Service นอกอย่าง Flow แต่คิดไปคิดมาทำไมต้องเสียตังด้วย เลยมาจบลงที่ Redmine นี่แหละ วิธีลง Redmine บน Nginx ถ้าค้นหาตัวไม่ส่วนใหญ่จะให้ใช้กับ Phusion Passenger™ ซึ่งถ้าเป็น Apache จะลงแล้วทำตามทันที แต่สำหรับ Nginx ความยากมันมีเพิ่มขึ้นมาเมื่อต้อง compile Nginx ใหม่เลยเปลี่ยนทางเลือกเป็น FastCGI แทน สำหรับสิ่งที่ต้องเตรียมลงก่อนล่วงหน้าคือ nginx, spawn-fcgi (ถ้าใช้ Debian 5.0 ต้องลงจาก lighttpd), redmine (จะใช้จาก apt หรือดาวโหลดมาขยายลงแฟ้มซักแฟ้มก็ได้) script สำหรับ start redmine ผ่าน spawn-fcgi ใน [...]

Read full story Comments { 1 }

GIT Sparse checkout

หลังจากเริ่มย้ายมาใช้ git ถาวรปัญหาหนึ่งที่เจอแบบไม่คาดคิดคือไฟล์บางไฟล์ใน *nix ไม่สามารถ clone ออกมาได้เพราะข้อจำกัดของระบบไฟล์ Windows ที่ห้ามให้ชื่อไฟล์มีตัวอักษร ‘:’ ซึ่งดันมีอยู่ในบางไฟล์ของ source FreeBSD (ยังมีเรื่องภาษาไทยอีกแต่นั่นต้องแก้อีกวิธี) จนเห็นพี่ @i_nook หา sparse checkout ก็สงสัยว่าใช้ทำอะไรจนมาอ๋อตอนที่เห็น tweet link นี้เข้า ขั้นตอนการทำก็เริ่มจาก Clone repository ด้วย เพื่อ clone ออกมาแต่ไม่ checkout ตามด้วยกำหนดให้ repository ให้ใช้ sparsecheckout กำหนดว่า path ไหนจะ checkout ออกมา สุดท้าย checkout ออกมา ข้อดีของวิธีนี้นอกจากจะประหยัดเนื้อที่แล้ว ยังสามารถเลือกไม่เอา path ที่มีปัญหาออกมาได้ด้วย พรุ่งนี้คงได้ลองกับ Tortoise ว่าจะทำได้หรือป่าว แต่ก็น่าจะมี Option ให้ตั้งเหมือนกัน ไว้ถ้าไม่ได้ค่อยมาเพิ่มอีกที

Read full story Comments { 6 }