อืมขึ้นเดือนใหม่แล้ว เดือนนี้ประหลาดใจมากเพราะว่า ยังไม่รู้เลยว่าจะต้องทำอะไร หรือ ทำตามแผนที่วางไว้ เพราะว่า เดือนนี้ยังไม่ได้วางแผนนั่นเอง => เดือนนี้ต้องหันมาใส่ใจกับคำว่า 'แผน' ซักนิด
ผมคิดว่า การวางแผน นี่ช่วยให้งานมีความคืบหน้าได้เยอะทีเดียว ถ้าเรามีระเบียบวินัยมากพอ การลงมือทำไปตามแผนที่วางไว้ ย่อมทำให้เกิด progress ไปเรื่อยๆ ท้ายสุดเราก็จะไปถึงจุดหมายที่วางไว้
ลองคิดดู เจเจไทย ก่อนหน้านี้ ก็วางแผนเอาไว้นะ วางกันเป็น ปีเลยทีเดียว ซึ่งพบว่า ไม่มีความคืบหน้า หรือ ได้รับการปฏิบัติตามแผนซักเท่าไร
แต่พอลองปรับปรุงตัว นั่งคิดแล้วปรับลดเวลาของแผนให้สั้นลง แล้วตั้งใจลงมือทำอย่างจริงจัง พบว่า 2 เดือนทีี่ผ่านมาก็ทำได้ ผลงานดีกว่า แผนรายปีของปีที่แล้วซะอีก
เอาเป็นว่า ถ้าเราใส่ใจกับคำว่าแผนซักนิด ค่อยๆปรับแก้ไปเรื่อยๆ แก้ปัญหาไปเรื่อยๆ (แต่คำนึงถึงระยะเวลาตามแผน) ผมว่า งานจะสำเร็จ แน่นอน
เล่าเรื่องการทำเว็บไซต์ด้วย Ruby on Rails จ้า พร้อมวิธีการปรับแต่ง Server จำพวก FreeBSD, debian จากประสบการณ์ในการทำงาน Admin
วันอาทิตย์ที่ 3 ตุลาคม พ.ศ. 2553
วันศุกร์ที่ 1 ตุลาคม พ.ศ. 2553
บทสรุป JJthai ใน 2 เดือนที่ผ่านมา
หลังจากเริ่มจริงจังมากขึ้นกับการปรับปรุง JJthai.net เรียกว่า การเปลี่ยนแปลงของ JJthai.net ในรอบ 2 เดือนที่ผ่านมาช่าง มากมายอะไรอย่างนี้ ทั้งการเพิ่มตำแหน่งโฆษณา การปรับปรุงระบบการล็อกอิน การเพิ่ม Feature ใหม่ๆ การเพิ่มร้านค้าออนไลน์ สิ่งที่สะท้อนกลับมาก็คือ การมีผู้เยี่ยมชมที่เพิ่มขึ้นอย่างต่อเนื่อง
ในเดือนหน้า ตุลาคม รับรองว่าจะยังคงมีการพัฒนา อย่างต่อเนื่องแน่นอน + Feature ใหม่ๆ เช่น การค้นหา (Full Text Search) สำหรับ ร้านค้าออนไลน์ ก็จะทยอยอัพโหลด Theme เพิ่มเข้าไปเรื่อยๆนะครับ
สดท้ายก็ต้องขอขอบคุณ ทุกท่านที่มายังเว็บไซต์ JJthai.net ทุกท่านนะครับ
ทีมงาน JJthai.net
ในเดือนหน้า ตุลาคม รับรองว่าจะยังคงมีการพัฒนา อย่างต่อเนื่องแน่นอน + Feature ใหม่ๆ เช่น การค้นหา (Full Text Search) สำหรับ ร้านค้าออนไลน์ ก็จะทยอยอัพโหลด Theme เพิ่มเข้าไปเรื่อยๆนะครับ
สดท้ายก็ต้องขอขอบคุณ ทุกท่านที่มายังเว็บไซต์ JJthai.net ทุกท่านนะครับ
ทีมงาน JJthai.net
วันอาทิตย์ที่ 26 กันยายน พ.ศ. 2553
ปรับ Rails เป็น 2.3.9 เข้าใกล้ 3.0 เข้าไปทุกทีๆ
อืม Rails 3.0 ใกล้จะออกตัว Release เข้าไปทุกทีแล้ว ดังนั้น คาดว่าในอนาคตจะต้องมีการปรับเวอร์ชั่นของ jjthai ให้เป็น Rails 3.0 แน่นอน ดังนั้นก่อนที่จะปรับเป็น 3.0 ก็ปรับความเตรียมพร้อมให้เข้าใกล้ (เพราะว่าเวอร์ชั่น 2.3.9 จะมีคำเตือน deplicate เยอะ) ก็ลองดูปรับดู เพราะเท่าที่ตรวจสอบแล้ว ไม่ได้มีการปรับแก้ code เลย มีแต่การปรับ version gem ซะมากกว่า
ก่อนอื่นก็ อัพเดต gem
# gem update --system
จากนั้น เพื่อความชัวร์ นะ อยากจะใช้ Rails 2.3.9 ก็ติดตั้ง เข้าไปซะเลย
# gem install rails --version=2.3.9
หลังจากรัน Rails 2.3.9 มีคำเตือนขึ้นมา เกี่ยวกับ config.load_paths ก็แก้ซะ ตามนี้
# Rails 2.3.x deplicated
#config.load_paths += %W( #{RAILS_ROOT}/app/sweepers )
# support Rails 2.3.x and Rails 3.x
config.autoload_paths += %W( #{RAILS_ROOT}/app/sweepers )
ตอนนี้กำลังทดสอบ Rails อยู่ตอนนี้ยังไม่พบปัญหาจ้า
ก่อนอื่นก็ อัพเดต gem
# gem update --system
จากนั้น เพื่อความชัวร์ นะ อยากจะใช้ Rails 2.3.9 ก็ติดตั้ง เข้าไปซะเลย
# gem install rails --version=2.3.9
หลังจากรัน Rails 2.3.9 มีคำเตือนขึ้นมา เกี่ยวกับ config.load_paths ก็แก้ซะ ตามนี้
# Rails 2.3.x deplicated
#config.load_paths += %W( #{RAILS_ROOT}/app/sweepers )
# support Rails 2.3.x and Rails 3.x
config.autoload_paths += %W( #{RAILS_ROOT}/app/sweepers )
ตอนนี้กำลังทดสอบ Rails อยู่ตอนนี้ยังไม่พบปัญหาจ้า
วันพฤหัสบดีที่ 16 กันยายน พ.ศ. 2553
อยากจะจัดการกับ log ให้มีประสิทธิภาพ
แก้ไข ไฟล์นี้ /etc/newsyslog.conf ไฟล์เดียว จบเกมส์เลย
/home/nutjang/log/xxx.log nutjang:wheel 640 10 * @T00 JN
FLAG ที่เป็นไปได้
J = bzip
N = ไม่ส่ง signal เมื่อ rotate log
Z = gzip
* ล่าสุด จากการทดสอบ พบว่า newsyslog สามารถ backup log ได้ แต่ ดูเหมือนว่า ต้องมีการส่ง signal เพื่อ ปิด process ด้วย ไม่งั้น ไฟล์ log อันใหม่มันไม่เก็บ ดังนั้น solution นี้ยังไม่พร้อมใช้งานจริง ต้องรอแก้ไขปรับ config ก่อน
/home/nutjang/log/xxx.log nutjang:wheel 640 10 * @T00 JN
FLAG ที่เป็นไปได้
J = bzip
N = ไม่ส่ง signal เมื่อ rotate log
Z = gzip
* ล่าสุด จากการทดสอบ พบว่า newsyslog สามารถ backup log ได้ แต่ ดูเหมือนว่า ต้องมีการส่ง signal เพื่อ ปิด process ด้วย ไม่งั้น ไฟล์ log อันใหม่มันไม่เก็บ ดังนั้น solution นี้ยังไม่พร้อมใช้งานจริง ต้องรอแก้ไขปรับ config ก่อน
วันอังคารที่ 14 กันยายน พ.ศ. 2553
ว่าด้วยเรื่อง subdomain ใน ruby on rails
อยากจะแจก subdomain ให้ user แต่ละคนไหม ?
ตัวอย่างเช่น เรามี user 2 คน มาเปิดร้านค้าย่อยที่ jjthai.net
user starwar1 ก็จะได้ URL ร้านค้าเป็น starwar1.jjthai.net
user starwar2 ก็จะได้ URL ร้านค้าเป็น starwar2.jjthai.net
อ่านนี่ซะ จะได้ทำเป็น
http://s2.diffuse.it/blog/show/49-Subdomain_routing_with_rails
ถ้าอยากอ่านเป็นภาษาไทยก็รอไปก่อน
ตัวอย่างเช่น เรามี user 2 คน มาเปิดร้านค้าย่อยที่ jjthai.net
user starwar1 ก็จะได้ URL ร้านค้าเป็น starwar1.jjthai.net
user starwar2 ก็จะได้ URL ร้านค้าเป็น starwar2.jjthai.net
อ่านนี่ซะ จะได้ทำเป็น
http://s2.diffuse.it/blog/show/49-Subdomain_routing_with_rails
ถ้าอยากอ่านเป็นภาษาไทยก็รอไปก่อน
1 Rails App สำหรับ หลายๆ โดเมน
โอ้วๆ หามานาน เรื่องมันมีอยู่ว่า นานมาแล้ว นั่งทำเว็บไซต์ด้วย Rails มาตั้งนาน เสร็จแล้วก็ออกแบบ ซะดิบดี ได้ออกมาเป็นเว็บหน้าตาดี 1 อัน ทีนี้ อยากได้เว็บที่มันใช้ Engine เดียวกันนี่เหละ แต่รายละเอียดมันต่างกันออกไปนิดนึง (อย่างเช่น layout ไม่เหมือนกัน) แต่ส่วนใหญ่ ใช้แนวคิดเดิมๆ ถ้าแยก Rails App กันซะ มันก็หมดเรื่อง แต่มันก็ ต้องแก้ bug ทั้ง 2 อัน
แล้วจะทำไงดีหล่ะ อยากจะรับจ้างทำเว็บไซต์ แต่ใครจะมานั่ง deploy & Bug fix ทุกๆอัน ก็เลยออกมาเป็น solution ดังนี้
1. ใช้ทริ๊กของ Rails Route โดยปรับให้รับเงื่อนไข เรื่อง request.host, request.domain เพิ่มเติมเข้ามา
2. จากนั้น สร้างเป็นไฟล์ เพื่อเข้าไปใน /config/initializers (ชื่อไฟล์อะไรก็ได้)
จากนั้นก็ลองทดสอบดูดิ ว่า ถ้า request host มาหลายๆแบบ แล้ว route ไปคนละ ทาง
# /config/initializers/multiple_domain_route.rb ################################
############################################################
# /cofig/route.rb ###############################################
############################################################
วิธีการทดสอบบน windows ที่จะชี้ไปว่าเป็น หลายๆ โดเมนก็ง่ายแสนง่าย c:/windows/system32/driver/etc/hosts
เพิ่มบรรทัดพวกนี้เข้าไป แล้วลองเปิด browser เรียก www.nutjang2.com, www.nutjang3.com ดู แล้วเทียบกับ log ของ Rails ว่า มัน route ถูกไหม
192.168.1.201 www.nutjang2.com
192.168.1.201 www.nutjang3.com
แล้วจะทำไงดีหล่ะ อยากจะรับจ้างทำเว็บไซต์ แต่ใครจะมานั่ง deploy & Bug fix ทุกๆอัน ก็เลยออกมาเป็น solution ดังนี้
1. ใช้ทริ๊กของ Rails Route โดยปรับให้รับเงื่อนไข เรื่อง request.host, request.domain เพิ่มเติมเข้ามา
2. จากนั้น สร้างเป็นไฟล์ เพื่อเข้าไปใน /config/initializers (ชื่อไฟล์อะไรก็ได้)
จากนั้นก็ลองทดสอบดูดิ ว่า ถ้า request host มาหลายๆแบบ แล้ว route ไปคนละ ทาง
# /config/initializers/multiple_domain_route.rb ################################
#
# This allows us to set up custom routes that depend on the domain or host of the request, ie:
# map.connect '', :controller => 'blah', :action => 'blah', :conditions => {:domain => 'blah'}
#
module ActionController
module Routing
class RouteSet
def extract_request_environment(request)
env = { :method => request.method }
env[:domain] = request.domain if request.domain
env[:host] = request.host if request.host
env
end
end
class Route
alias_method :old_recognition_conditions, :recognition_conditions
def recognition_conditions
result = old_recognition_conditions
result << "conditions[:domain] === env[:domain]" if conditions[:domain]
result << "conditions[:host] === env[:host]" if conditions[:host]
result
end
end
end
end
############################################################
# /cofig/route.rb ###############################################
ActionController::Routing::Routes.draw do |map|
map.connect '/', :controller => 'nutjang2', :action => 'index', :conditions=>{ :host=>'www.nutjang2.com' }
map.connect '/', :controller => 'nutjang3', :action => 'index', :conditions=>{ :host=>'www.nutjang3.com' }
map.root :controller => "welcome"
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
############################################################
วิธีการทดสอบบน windows ที่จะชี้ไปว่าเป็น หลายๆ โดเมนก็ง่ายแสนง่าย c:/windows/system32/driver/etc/hosts
เพิ่มบรรทัดพวกนี้เข้าไป แล้วลองเปิด browser เรียก www.nutjang2.com, www.nutjang3.com ดู แล้วเทียบกับ log ของ Rails ว่า มัน route ถูกไหม
192.168.1.201 www.nutjang2.com
192.168.1.201 www.nutjang3.com
วันจันทร์ที่ 13 กันยายน พ.ศ. 2553
เพิ่มประสิทธิภาพของ Rails ด้วย Nginx + Gzip
ไม่พูดพล่ามทำเพลง คือ พอใช้งาน google webmaster มันบอกว่าเว็บเราโหลดช้าไป โดบให้คำแนะนำมาว่า ให้ใช้ module gzip ไฟล์ text ต่างๆ อืม... พอมานั่งคิดๆดู มันจริงนะ เพราะ browser + cpu สมัยนี้ ใช้แตก gzip หน้าเว็บเนี่ยเป็บเดียวเอง แล้วมันก็เป็นการประหยัด bandwidth ในการเชื่อมต่อเน็ตด้วย (ทำให้โหลดเร็วขึ้นอย่างเห็นได้ชัด) ok ว่าไงว่าตามกัน เพิ่ม config ข้างใต้นี้เข้าไปใน nginx.conf แค่นั้นเอง จากนั้นก็ restart service nginx ทีนึง จบ.
# output compression saves bandwidth
gzip on;
gzip_buffers 16 8k;
gzip_http_version 1.0;
gzip_comp_level 9;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/css;
# output compression saves bandwidth
gzip on;
gzip_buffers 16 8k;
gzip_http_version 1.0;
gzip_comp_level 9;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/css;
สมัครสมาชิก:
บทความ (Atom)