วันจันทร์ที่ 24 พฤศจิกายน พ.ศ. 2551
Google Makes Major Interface Change To Search: SearchWiki
ตอนนี้ google ได้เพิ่ม feature ใหม่เข้ามาในการค้นหาข้อมูลคือ SearchWiki [ Make your own search result ] จาก blog ของคุณ pphetra บอกว่าถ้าต้องการเปิดใช้งานนั้นให้ใส่ * ในการค้นหาข้อมูลเช่น test * เมื่อกดปุ่มค้นหาจะสามารถใช้งาน UI ใหม่ของ Google Search Engine
อ้อ อย่าลืม set preference ของ UI เป็นภาษาอังกฤษด้วย
VDO สาธิตการใช้งาน
ที่มา ::
http://www.techcrunch.com/2008/11/20/google-makes-major-interface-change-to-search-searchwiki/
SearchWiki: make search your own
Related link from Roti
วันพฤหัสบดีที่ 13 พฤศจิกายน พ.ศ. 2551
Sequel, The Database Toolkit For Ruby
Sequel คือ OR Mapping Layer ซึ่งจะ mapping กับ Ruby Object ซึ่งเป็นอีกหนึ่งทางเลือกจาก ActiveRecord และ DataMapper
Features ต่างๆ ที่น่าสนใจของ Sequel ดังนี้
1. Connection Pooling
2. DSL สำหรับการสร้าง SQL
3. สนับสนุน prepared statements
4. Master/Slave Configuration
5. ตัวที่น่าสนใจคือ Database Sharding
ที่มา :: http://www.infoq.com/news/2008/11/sequel-ruby-db-toolkit
Related link from Roti
วันจันทร์ที่ 10 พฤศจิกายน พ.ศ. 2551
เริ่มต้น ActiveRecord with Merb
ตอนแรกคิดว่าจะลองใช้ DataMapper แต่ไปๆ มาๆ ยังไงไม่รู้เลยมาลองที่ตัว ActiveRecord ก่อนก็แล้วกัน
หลังจากที่ลองสร้าง Controller กับ View ไปแล้ว ตอนนี้มาขอพูดการสร้าง Model ตามแนวคิดของ MVC ใน merb
ในการจัดการ Model ใน merb นั้นแนะนำมา 3 ตัวคือ
1. ActiveRecord
2. DataMapper
3. Sequel
ผมเลือก ActiveRecord มาเป็นตัวแรก โดย ActiveRecord นั้นถูกสร้างมาด้วยแนวคิด Active Record Pattern ของคุณ Martin Fowler ซึ่งทำหน้าที่จัดการ RDBMS หรืออาจจะเรียกว่า O/R Mapping ก็ได้
ไม่พูดมากแล้ว มาเริ่มต้นกันเลยดีกว่า
ก่อนอื่นเริ่มที่การติดตั้ง ActiveRecord กันก่อน ด้วยคำสั่ง
$gem install activerecord merb_activerecord merb-helpers
ต่อมาทำการสร้าง merb application ด้วยคำสั่ง
$merb-gen app my_application
ผมเลือกใช้ DBRAS คือ mysql ครับ ดังนั้นอย่างแรกที่ต้องทำคือ การกำหนด database configuration ให้กับ merb application ดังนี้
- กำหนด orm ที่จะใช้ ซึ่งผมใช้ ActiveRecord จึงแก้ไขใน file file config/init.rb ดังนี้
dependency "merb-helpers"
use_orm :activerecord
- กำหนด database connection ใน file config/database.yml ดังนี้
:adapter: mysql
:database:
:username:
:password:
:host:
:socket: /tmp/mysql.sock
:encoding:
ต่อมาผมต้องการจะสร้าง Application ทั่วไปให้สามารถทำการเพิ่มข้อมูลและแสดงผลอยู่ในหน้าเดียวกัน ดังนั้นผมจึงเริ่มการสร้างดังนี้
1. ก่อนอื่นผมขอสร้าง table ขึ้นมาก่อนชื่อว่า post มี column ดังนี้
id int
body varchar(500)
create_date datetime
[ ผมชอบออกแบบ database ก่อนเสมอครับ ]
2. สร้าง Model ชื่อ Post ดังนี้ [ ชื่อเดียวกับ Table ]
$ merb-gen model Post
merb จะสร้าง file /app/models/post.rb ขึ้นมาดังนี้
class Post < posts =" Post.find(" order =""> "create_date DESC" )
render
end
6. ทำการแก้ไข View ที่ /app/views/posts/index.html.erb ดังนี้
http://gist.github.com/23498
โดยผมใช้ partial มาใช้ เนื่องจากผมชอบแนวคิดการ reuse ของ element ต่างๆ ซึ่งจากตัวอย่างนี้จะเป็นการ reuse ข้อมูลแต่ละตัวที่เพิ่มเข้าไปในระบบ
จากนี้สามารถลอง run merb ด้วยคำสั่ง $merb ได้ แล้วเข้าไปลอง run ที่ http://localhost:4000/posts
7. เพิ่มส่วนการเพิ่มข้อมูล ซึ่งผมจะเพิ่มในส่วน View ใน file /app/views/posts/index.html.erb ดังนี้
[ ผมเพิ่มไปที่ท้าย file ]
http://gist.github.com/23500
8. แก้ไข controller ใน file /app/controllers/post.rb ผมจะเพิ่ม action create เข้าไปเพื่อทำการเพิ่มข้อมูลลง table เมื่อทำงานเสร็จจะ redirect ไปยัง action index เพื่อแสดงผลข้อมูลทั้งหมด ดังนี้
def create
Post.create( :body => params[ :body ], :create_date => Time.now )
redirect url(:action => "index")
end
9. จะชักช้าอยู่ใยครับ run merb เลยดีกว่า แล้วเข้าไปทดลองใช้งานที่ http://localhost:4000/posts
10. สุดท้าย ผมมี css เพิ่มเข้าไปใน public/stylesheets/master.css ดังนี้
#posts.container {
border: 10px solid #eaeaea;
min-height: 240px;
position: relative;
}
div.post {
position: relative;
border-bottom: 2px solid #c0c0c0;
}
div.post p.body {
color: #3d4043;
}
div.post p.created {
color: #d5d5d5;
position: absolute;
top: 0px;
right: 10px;
font-weight: bold;
font-size: 15px;
}
form {
background-color: #d5d5d5;
padding: 20px;
}
form input[type=text] {
font: 17px "Helvetica", Helvetica,, sans-serif;
padding: 3px 5px;
color: #424242;
}
form button {
font-size: medium;
padding: 5px 10px;
}
คุณ @punneng บอกว่าแรกๆ ก็แบบนี้แหละครับ พอใช้ไป แล้วไปลอง deploy แล้วจะรู้สึกเองครับ อิอิอิ
ที่มา
http://www.socialface.com/slapp/
http://www.rubyinside.com/merb-tutorials-and-resources-716.html
Related link from Roti
วันอาทิตย์ที่ 9 พฤศจิกายน พ.ศ. 2551
เริ่มต้นกับ Merb
เห็นคุณ @punneng พูดถึง Merb มาตั้งแต่ยังไม่เป็น version 1.0 แต่ตอนนี้มันออก version 1.0 มาแล้ว เลยขอนำมาลองหน่อยว่าเป็นยังไงบ้าง
มาเริ่มการทดลองแบบคนไม่มีอะไรเกี่ยวกับ Ruby เลยครับ
My Environment
- OS : Windows
- ใช้ cygwin
Sotfware
1. Ruby
2. Ruby Gem
มาเริ่มต้นการติดตั้ง
1. install ruby
$./configure --prefix=/usr/local/ruby/myruby
$make
$make install
2. install ruby gem
[ RubyGems is the name of the project that developed the gem packaging system and the gem command ]
$ ruby setup.rb
3. install merb
$gem install merb
4. install mongrel [ Mongrel is a fast HTTP library and server for Ruby ]
$gem install mongrel
5. Hello Merb
$merb-gen app test_01
$cd test_01
$merb
ทดลองเข้า http://localhost:4000 ใน browser ก็จะเจอหน้า Merb
ลองทดสอบสร้าง controller
$merb-gen controller Hello
file Hello.rb จะถูกสร้างที่ app\controllers .ให้แก้ไขดังนี้
class Hello < Application
def index
'Hello Merb'
end
end
แล้วลอง start merb และเข้าไปที่ http://localhost:4000/hello จะแสดงคำว่า Hello Merb ใน browser
เท่านี้ก็ถือว่าเป็นการเริ่มต้นกับ Merb ของผมล่ะครับ
ต่อไปเดี๋ยวจะลองดู DataMapper ครับว่าเป็นยังไง
Related link from Roti
วันพฤหัสบดีที่ 6 พฤศจิกายน พ.ศ. 2551
Solved :: Hibernate + UTF-8
ผมได้ยินคำถามนี้มาจากหลายๆ ที่ว่าทำไมบันทึกข้อมูลภาษาไทยแล้วเป็น ?????? มีหลากหลายวิธีที่จำแก้ปัญหา แต่ผมขอแนะนำไว้ดังนี้
ทุกๆ อย่างๆ ในทุกๆ layer เป็น UTF-8 ดังนี้
- jsp file ก็ใส่ encoding เป็น UTF-8
- Servlet ก็ใส่ Servlet Filter ให้กำหนด request.setcharecterEncoding( "UTF-8" )
- URL Connection String จาก Hibernate ไป DBRMS ก็ใส่ encoding=UTF-8 ไปด้วย ถ้า RDBMS สนับสนุน
- และสุดท้าย DB ของคุณต้องเป็น UTF-8 ด้วยครับ ทั้ง DB, Table, Column
ถ้าคุณทำเพียงเท่านี้คุณก็จะไปเจอปัญหา ??? อีกแล้วครับ
^_^ ^_^ ^_^
Related link from Roti
สมัครสมาชิก:
บทความ (Atom)