วันอังคาร, ตุลาคม 27, 2552

กำหนดขนาดไฟล์ upload ใน nginx

ให้เพิ่มบรรทัด client_max_body_size ไปใน http ครับ

http {
    include conf/mime.types;
    default_type application/octet-stream;
    ....
    client_max_body_size 10m;
    ....
}

ในตัวอย่างใส่ไว้ 10MB แต่หลายเว็บบอกว่าไม่ถึงครับ ถ้าสนใจการคำนวนแนะนำให้อ่านบนเว็บ nginx:client_max_body_size อีกที

นอกจาก client_max_body_size แล้วยังมีค่าอื่นๆให้ set ได้อีก เช่น

  ## Size Limits
  client_body_buffer_size     128K;
  client_header_buffer_size   128K;
  client_max_body_size         10M;
  large_client_header_buffers 1 1k;
ให้ลองอ่านใน คู่มือนะครับ

ที่มา: calomel.org

วันพฤหัสบดี, ตุลาคม 22, 2552

ไม่ให้ terminator กระพริบ

หลังจากลง xubuntu บนเครื่องก็เจอปัญหากับ terminal ว่ามันจะกระพริบทุกครั้งที่เราทำอะไรผิดเล็กๆ น้อยๆ เช่นกด Backspace เกิน ซึ่งผมกดบ่อยมากๆ ค้นไปค้นมา พบว่ามันเรียก "visual bell"

การแก้กับ gnome-terminal ไม่ยากนัก เข้าไปแก้ที่

$ vi ~/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml

แก้บรรทัดที่เขียนว่า

<entry name="silent_bell" mtime="1256205563" type="bool" value="true"/>

ให้ value เป็น ture ก็เรียบร้อย เปิดขึ้นมาใหม่ มันก็เลิกกระพริบแล้ว

ปกติเจ้า terminator จะตาม gnome-terminal แต่คราวนี้มันไม่ยอมตาม เลยต้องหาทาง config เข้าไปตรงๆ โดยสร้าง folder "terminator" ไว้ใน ~/.config แล้วสร้างไฟล์ config ไว้ในนั้น
~/.config/terminator/config

ใส่บรรทัดนี้ลงไป
visible_bell = False

หลังจาก save เมื่อเราเปิด terminator ขึ้นมาใหม่ มันก็จะไม่กระพริบแล้วครับ

วันพุธ, ตุลาคม 21, 2552

compile ffmpeg 0.5 สำหรับ ubuntu 9.04

เนื่องจาก ffmpeg ตัวล่าสุดไม่มี vhook ซะแล้ว ทำให้ต้องดั้นด้นไปเอา ffmpeg ตัวเก่ามา compile เอง วิธีการก็มีดังนี้

ขั้นแรกต้องชี้ source list ไปที่ midibuntu ก่อน เนื่องจาก package ที่ต้องการมีหลายตัวที่ไม่สามารถมาอยู่ใน ubuntu ได้ เนื่องจากข้อกำหนดของ ubuntu ที่ไม่รับ library ที่ไม่ opensource ดังนั้นเราเลยต้องไปเอามาจาก midibuntu แทน

$ sudo wget http://www.medibuntu.org/sources.list.d/hardy.list \ 
--output-document=/etc/apt/sources.list.d/medibuntu.list
$ sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update

ติดตั้ง libamr
$ sudo apt-get install libamrnb-dev libamrwb-dev

ติดตั้ง libnut
$ svn co svn://svn.mplayerhq.hu/nut/src/trunk/ nut
$ cd nut
$ make
$ sudo make install
ติดตั้ง libimlib2
$ sudo apt-get install libimlib2-dev libimlib2

ติดตั้งอื่นๆ
$ sudo apt-get install libfaac-dev libfaad-dev libschroedinger-dev libtheora-dev libvorbis-dev libxv-dev libxvmc-dev

ติดตั้ง mp3 library
$ sudo apt-get install libmp3lame-dev

ใครที่ใช้ ubuntu 8.04 ให้สั่ง sudo apt-get install liblame-dev แทน ใหม่กว่านั้นใช้คำสั่งข้างบนได้

compile ffmpeg
$ wget http://ffmpeg.org/releases/ffmpeg-0.5.tar.bz2
$ bunzip2 ffmpeg-0.5.tar.bz2
$ tar -xvf ffmpeg-0.5.tar
$ cd ffmpeg-0.5
$ ./configure --prefix=/usr/local --enable-gpl --enable-nonfree  \
--enable-postproc  --enable-avfilter-lavf --enable-pthreads \
--enable-x11grab --enable-bzlib --enable-libamr-nb \ 
--enable-libamr-wb --enable-libdc1394 --enable-libfaac \ 
--enable-libfaad --enable-libfaadbin --enable-libgsm \
--enable-libmp3lame --enable-libnut --enable-libschroedinger \
--enable-libtheora --enable-libvorbis --enable-zlib 

ถ้ามี library x264, xvid และไม่ต้องการใช้ vhook ให้เอาคำสั่งข้างล่างมารวมตอนสั่ง configure ด้วย
--enable-libx264 --enable-libxvid  --enable-avfilter --enable-shared

$ wget http://ffmpeg.org/releases/ffmpeg-0.5.tar.bz2
$ make
$ sudo make install

กำหนด Library path
$ sudo vi /etc/profile

เพิ่มข้อความนี้ไว้ที่บรรทัดสุดท้าย
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
แล้วสั่ง
$ source /etc/profile
$ sudo ldconfig

เป็นอันเสร็จ ถ้าจะทดลองสามารถใช้คำสั่งแบบนี้ได้
ffmpeg -i input.wmv -vhook '/usr/lib/vhook/imlib2.so -x 0 -y 0 \
-i watermark.png' output.avi

reference:
juliensimon
download ffmpeg

วันพฤหัสบดี, ตุลาคม 15, 2552

ติดตั้ง rails บน Ubuntu 9.10 Karmic Koala

ปัญหาของการติดตั้งคือหลังจากที่

$ sudo apt-get install ruby rubygems
$ gem install rails

เราจะยังไม่สามารถเรียก rails ได้ เพราะใน $PATH ไม่ได้ชี้ไปที่ /var/lib/gems/1.8/bin
ดูได้จากคำสั่ง

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

จะเห็นว่าไม่มี path ที่ชี้ไปยัง bin ของ gems วิธีการแก้คือใส่บรรทัดต่อไปนี้ไว้ในไฟล์ ~/.bashrc

export PATH="$PATH":/var/lib/gems/1.8/bin

จากนั้นทดลองเปิด terminal ขึ้นมาใหม่ หรือสั่ง source ~/.bashrc หรือ source /etc/profile ถ้าแก้ path ใน profile

เท่านี้ก็สามารถเรียกใช้ rails ได้แล้วครับ


เสริม 1
ถ้าต้องการให้ user คนอื่นใช้ด้วย (ยกเว้น root) ให้กำหนด path ไว้ที่ไฟล์ /etc/profile
และถ้าต้องการให้ root เห็นให้ลองอ่าน Troubleshooters.com

เสริม2
ตอนที่ติดตั้ง ruby ควรสั่งครบชุดแบบนี้ครับ

$ sudo apt-get install ruby ruby-dev irb libopenssl-ruby rubygems

หนังสือสองเล่มจากงานสัปดาห์หนังสือแห่งชาติ



จัทราปฏิวัติ เป็นแรกทีเข้าไปดูเพราะติดตามสำนักพิมพ์นี้อยู่แล้ว ตอนแรกกะจะซื้อชุด Endder ให้ครบ แต่ติดว่าดันไปซื้อ นายอินทร์ ผู้ปิดทองหลังพระ มาซะก่อน รวมเงินแล้วจะแพงเกินไป และ กลัวว่าเวลามาหนังสือยังไม่ได้อ่านมากองเยอะๆ จะกลายเป็นกล้าเริ่มอ่านซักเล่ม

ก่อนออกจากร้านโดนคนขายขู่ว่า "จะไม่มีให้ซื้อนะครับ" ... ไอ้เราก็กลัว... แต่สุดท้ายมาคิดได้ว่าหนังสือดีๆ แบบนี้ ปีนี้ก็ขายหมดแน่ๆ ปีหน้าก็ต้องพิมพ์อีกอยู่แล้ว ด้วยความประมาทเราเลยซื้อหนังสือจาก ASK Media มาแค่เล่มเดียว

หลังจากนั้นก็พยายามเดินหาหนังสือถังความคิด แต่ก็ไม่รู้จะไปหาที่ไหน คุณ Mk ก็ไม่ได้บอกว่าสำนักพิมพ์อะไร ใน SIU ก็ไม่บอก สุดท้ายต้องตัดใจไว้หนังสือออกจริงๆ คงมีข่าวอีกที แต่ยังไงก็มีความสุขที่ได้หนังสือกลับมา คิดว่าหนังสือสองเล่มนี้คงเปิดโลกให้เราได้มากมาย

วันจันทร์, ตุลาคม 05, 2552

หรือว่าเทคโนโลยีฝั่ง server จะไม่ hot ซะแล้ว

วันก่อนมีน้องคนนึงทัก "พี่ rails มันไม่ hot แล้วหรือเปล่า?" เราก็มาคิด... แล้วอะไรมัน Hot ล่ะ Grail, Java, PHP, Perl, Python แต่ละตัวอยู่กันนิ่งๆ พัฒนาไปเรื่อยๆ ตามกระแส plugin ต่างๆ ก็พัฒนาไปตามๆ กัน เรียกว่า Hot ก็คงไม่เหมาะ

แล้วอะไรที่ Hot ?

ผมพบว่าเทคโนโลยีฝั่ง Client นั้น Hot สุดๆ ความร้อนแรงของ Server ได้หายไปแล้ว ฝั่ง Client นำทีมด้วย Java Script ผลิด Library น่าทึ่งออกมามากมาย เช่น

Extjs เป็น Java Script ที่ให้ความรู้สึกด้าน Engineering เหมือนเขียน Java Swing ผมไม่ได้หมายความว่ามันช้านะ :p



Juggernaut Push technology ที่ทำให้เราไม่ต้องคอยวน loop เรียก server ทุกๆ 10 วิ สนใจเพิ่มเติมลองดูvideo demo



raphaeljs, svg web ที่ทำให้ SVG กลับมาอีกครั้งหลังจากกระแสเงียบไปนาน เนื่องจาก Adobe เลิกดัน หันไปซื้อ Macromedia แทน ตอนนี้ svgweb ทำให้ ie สามารถเปิด svg ได้ และ rapheljs ก็ทำให้เราเขียน svg ง่ายขึ้น จากแต่ก่อนที่ต้อง แกะ DOM เอาเอง



cappuccino ทำให้เรารู้สึกเหมือนเขียน cocoa + objective-c บน browser ได้ แถมมีโปรแกรมหน้าตา interface builter มาให้อีกต่างหาก ทั้งหมดจะ ใช้ java script เป็นตัว run เราเรียกมันว่า objective-j ไม่ใช่ว่ามัน compile ที่ server site นะ มัน run กันสดๆ บน browser เลย ผมงี้อึ้งไปเลย แล้วยิ่งอึ่งไปอีกตอนดู demo เร็วมั๊กๆ



sproutcore ตัวนี้ไม่ hardcore เท่า cappuccino แต่ก็ได้แรงบรรดาลใจมากจาก cocoa เหมือนกัน เชียนให้ client site มี MVC เป็นของตัวเอง แทบจะเปลียนโลก java script เลยทีเดียว



ล่าสุดโครงการที่พัฒนาขึ้นในบริษัทมี code กว่า 50% ไปอยู่ที่ฝั่ง client ครับ เขียนด้วย javascript ซะเพียบ code ฝั่ง server เน้นทำ model แล้วส่ง json ไปให้ browser

นอกจากพวกนี้ ฝั่ง client ยังมีของดีออกมาเรื่อยๆ แทบไม่เว้นแต่ละวัน ยังดีที่เมื่อก่อนทำ SVG+Javascript มาเลยพอจะเข้าใจแรงบรรดาลใจของพวกนี้มาบ้าง ถ้าวันนี้น้องคนนั้นมาถามอีกครั้งผมคงตอบว่า "มันผ่านช่วง Hot ไปแล้ว เลือกของให้เหมาะกับงานดีกว่า" ของสนุกกำลังมา พวกที่อยู่บน server ทำให้มันเสร็จเร็วๆ แล้วมาเล่นเอาใจ user กันดีกว่า

วันศุกร์, ตุลาคม 02, 2552

ให้ Quick look แสดงข้อมูลที่อยู่ใน folder

หลายครั้งเวลาใช้ quick look ไปเจอ folder ผมจะรู้สึกว่า "มันจะ Zoom รูป Folder มาทำไม!!" วันนี้ไปเจอข้อมูลใน TUAW ว่าเราสามารถให้ Quick look มันแสดงข้อมูลที่อยู่ใน folder ได้ด้วย !!

หน้าตาประมาณนี้


ที่บอกว่าประมาณนี้ เพราะว่าของจริงมันมี animation ด้วย ดูแล้วเท่มาก ถ้าเป็นของ Win7 ไม่ต้อง Quick look ก็เห็นใส้ข้างในเลย Zoom ออกมาดูได้ ดีกันคนละแบบ

วิธีการเปิดความสามารถนี้นี้ก็ง่ายๆ ครับ ให้เข้าไปที่ terminal.app แล้วพิมพ์คำว่า

$ defaults write com.apple.Finder QLEnableXRayFolders 1

จากนั้นกด ctrl+alt+esc แล้วเลือก finder > relunch

หรือจะสั้งแบบนี้ที่ terminal ก็ได้

$ killall Finder && open /System/Library/CoreServices/Finder.app

หรือใครสบายใจที่จะหา process id ก่อน แล้วค่อย kill จาก process id ก็ใช้คำสั่งนี้

$ ps -caux | grep Finder
$ kill && open /System/Library/CoreServices/Finder.app

ทั้งสามแบบให้ผลเหมือนกันครับ หลัง Finer กลับมาก็ทดลองเปิดหน้า Finder แล้วใช้ Quick look กับ Folder ดูครับ

ผมเดาว่าที่ Snow Leopard และ Leopard ไม่ยอมเปิดความสามารถนี้เป็น default น่าจะเพราะมันเร็วไม่พอ ตอนผมกดมันจะหน่วงๆ อาจจะเพราะมันต้องทำ Quick look กับหลายๆ ไฟล์ข้างในก่อน หรือไม่ก็เพราะเค้ายังทำได้ไม่เนียบพอก็เลยปิดไว้ก่อน ก็ต้องรอดูต่อไปครับ

ที่มา: TAUW