Home » Archives for January 2013
โพสต์ก่อนๆ ผมเขียนถึงการพัฒนา application ด้วย Nodejs และ Socket.io และจำเป็นต้องใช้ร่วมกันกับ PHP ที่รันบน Apache ปัญหาที่พบก็ตามข้อ 3 ในโพสต์เก่านั่นแหละครับคือทำ ProxyPass จาก port 80 ของ Apache ไปที่ app ที่รันไว้ port อื่นไม่ได้เพราะ Apache ไม่รองรับ Websockets
1.Infrastructure
เนื่องจาก Websockets ยังเป็นเรื่องใหม่อยู่ web server ส่วนมากยังไม่รองรับ ลองเสิร์ชหาวิธีแก้ปัญหาตามเว็บต่างๆ ส่วนมากถ้าเป็น PHP, Apache นิยมใช้ HAProxy เป็น proxy ถ้าเป็น Ubuntu สามารถติดตั้งผ่าน APT ได้เลย
sudo aptitude install haproxy
เราต้องการติดต่อกับ internet ด้วย port 80 ซึ่งเดิมรัน Apache web server ไว้อยู่แล้วเลยต้องเปลี่ยน architecture ของ server นิดหน่อยคือวาง HAProxy ขวาง server, app ตัวอื่นๆ และให้ listen ที่ port 80 แล้วค่อยกระจาย request ไปที่ port ต่างๆ ตามรูปข้างล่าง
ออกตัวไว้ก่อนว่าผมเองก็ไม่ได้มีความเชี่ยวชาญเกี่ยวกับ Web UI ขั้นเทพแต่ก็มีโอกาสได้ทำงานด้านนี้มาบ้างพอสมควร พูดถึง Web UI หลายคนอาจจะคิดถึงการ design แต่นั่นไม่ใช่ทั้งหมดของ UI นะครับสิ่งที่ผมจะพูดคือฝั่ง coding ซึ่งประกอบด้วย HTML/CSS/Javascript ครับ
ขอเขียนไว้เป็นหัวข้อแบบไม่ได้เรียงลำดับความสำคัญก่อนหลังเท่าที่นึกออกแล้วกัน
ทำไมถึงเปลี่ยนจาก Gnome Shell เป็น MATE?
ผมใช้ Ubuntu 12.10 เป็นเครื่องทำงานประจำ default Desktop environment เป็น Unity แต่ขัดใจหลายอย่างเลยเปลี่ยนมาใช้ Gnome Shell ก็ใช้มาพักใหญ่ๆ ก็มีสิ่งที่ถูกใจและไม่ถูกใจหลายอย่างแต่โดยรวมก็ยังขัดใจอยู่เช่น
- ช้า ใช้ RAM เยอะ
- เวลาใช้ 2 จอแล้วกด ALT+F2 เรียกโปรแกรมจะย่อหน้าต่างลงเป็น thumbnail ให้กดเลือก ถ้าเปิดโปรแกรมเป็น full screen เช่น ดูหนัง หน้าจอก็จะถูกย่อลงด้วย
- กดเรียก xkill ไม่ได้เวลาโปรแกรมค้าง
ลองใช้หลายตัวทั้ง Pantheon, XFCE สุดท้ายมาจบที่ MATE
MATE เป็นโครงการที่ fork Gnome 2 มาทำใหม่เริ่มโดย Linux Mint หน้าตา, ซอฟต์แวร์เหมือน Gnome 2 มากแต่เปลี่ยนชื่อใหม่ (รูปข้างล่าง)
หลังจากงมๆ เล่นสนุกอยู่ 4 วันก็จบคอร์ส Ruby จากเว็บ Codecademy แล้วครับ ขอบันทึกไว้ซะหน่อย ผมว่าเขาทำสนุกดีนะ ถ้าสนใจก็ลองเข้าไปเรียนดูครับมีหลายเรื่องให้เลือกเรียน
วันนี้ใช้เวลาหัดเขียน Ruby อยู่หลายชั่วโมงจาก Codecademy แม้ว่าบทเรียนยังน้อยและเรียนรู้แค่ผิวๆ แต่ก็มีสิ่งที่ประทับใจพอสมควรครับ ภาษาง่ายต่อการเรียนรู้ อันนี้ความคิดเห็นตัวตัวนะคิดว่าง่ายกว่า Python อีกแน่ะ เป็นภาษาที่มี syntax สั้นเข้าใจง่าย เป็นภาษาที่ไม่ต้องใช้ { } นั่นคือไม่ค่อยได้กดปุ่ม shift พิมพ์มันมาก! ไม่ได้บังคับ indent เป็น syntax เหมือน Python ส่วนตัวชอบนะ บังคับ indent มากๆ แบบ Python ผมว่าเขียนยาก debug ยากไปหน่อย วน loop ใน range ที่ต้องการแบบ inclusive,…
Mongoose เป็น ODM (Object Document Mapping) ตัวหนึ่งของ Mongodb จริงๆ ก็ไม่ใช่อะไรใหม่ หน้าที่ของมันก็เหมือนกับ ORM ฝั่ง DBMS เลยครับแต่นี่เป็นของ NoSQL และที่เป็น “Object Document Mapping” เพราะว่า MongoDB เป็น NoSQL ที่เก็บข้อมูลแบบ Document Store ซึ่งเป็นรูปแบบหนึ่งของ NoSQL
การทำงานของ Object mapping คือ การสร้าง object ความสัมพันธ์, โครงสร้างของข้อมูลใน database เวลาเรียกใช้ก็เรียกเหมือนการ access class หรือ object ลดการเขียนคำสั่ง SQL หรือคำสั่งสำหรับ query ลง