โพสต์

กำลังแสดงโพสต์จาก 2009

เทคนิคการดูพื้นที่ในแต่ละ Folder ของ Linux

วันนี้ Server ที่ทำงานอยู่มีปัญหา Hard disk เต็ม เลยได้โอกาสลองหาวิธีการจัดการดู ถ้าปัญหานี้เกิดบน Mac คงใช้โปรแกรม OmniDisksWeeper ในการตรวจสอบ แต่บน Linux ไม่รู้ใช้ตัวไหนดี เลยลองคำสั่ง classic ดู

$ du / -h | grep "[0-9]G"
du -h คือให้แสดงขนาดของ Folder ออกมาทั้งหมด โดยแสดงขนาดเป็นหน่วยที่คน (h=human) อ่านออก
grep "[0-9]G" คือให้หยิบมาเฉพาะบรรทัดที่มี ตัวเลขตามด้วยอักษร G

ผลที่ได้จะออกมาประมาณนี้

3.8G /var/lib/mysql
6.0G /var/lib
8.7G /var
3.5G /opt/nginx/logs
3.6G /opt/nginx

พอลอง search เพิ่มเติม ก็พบว่ามันสามารถ sort ได้ด้วย

$ du -h | grep "[0-9]G" | sort -n -r > du.txt $ du -h | grep "[0-9]G" | sort -n -r | less
ใครอยากดูแบบละเอียดก็เปลี่ยน G เป็น M แทนนะครับ

กำหนดขนาดไฟล์ 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

ไม่ให้ 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 ขึ้นมาใหม่ มันก็จะไม่กระพริบแล้วครับ

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 …

ติดตั้ง 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 ก็ไม่บอก สุดท้ายต้องตัดใจไว้หนังสือออกจริงๆ คงมีข่าวอีกที แต่ยังไงก็มีความสุขที่ได้หนังสือกลับมา คิดว่าหนังสือสองเล่มนี้คงเปิดโลกให้เราได้มากมาย

หรือว่าเทคโนโลยีฝั่ง 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 sc…

ให้ 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 ไม่ยอมเปิดความสามารถนี้เป็น d…

ตัดช่องว่างให้เหลือช่องเดียว

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

ถ้าเรามี string แบบนี้
name1 = " นาย สมชาย วาทุวงศ์" name2 = "นางสาว สุขสม อาภา" ให้สั่ง
name1.squeeze(" ").strip => "นาย สมชาย วาทุวงศ์" name2.squeeze(" ").strip => "นางสาว สุขสม อาภา" เราจะได้ string ที่ตัดช่องว่างออกไปเรียบร้อย

คำสั่ง squeeze(" ") จะย่อ " " ทุกตัวให้เหลือตัวเดียว
ส่วนคำสั่ง strip จะตัดช่องว่าง \n \t \r ที่อยู่ด้านหน้าและด้านหลังออกให้ ไม่ลบตรงกลางนะ

Like ใน google reader

รูปภาพ
เมื่อกี้นี้มีปุ่ม like โผล่ขึ้นมาใน google reader



หลังจากทดลองก็พบว่ามันคือการบอกทุกคนบนโลก (ที่ใช้ google reader) ว่าเราชอบ link นี้

แว๊บแรกนึกว่ามันซ้ำซ้อนกับอันอื่นหรือเปล่า เพราะในใจนึกว่า share กับ star มันก็ซ้อนๆ กันอยู่ อันที่เรา star ไว้ก็มักจะอยาก share ด้วย แต่

star มันใช้ของเราคนเดียว
share ก็เอาให้เพื่อนๆ
like เอาไว้บอกทั้งโลก

เมื่อก่อนกด star ทีไรต้องกด share ด้วยทุกที ตอนนี้ภาระของผมต้องเพิ่มจากสองปุ่มเป็น สามปุ่ม ก็มันไม่เหมือนกันนินา :'( ทำไงได้

ตอนนี้พฤติกรรมเริมเปลี่ยน ผมเริมพิจารณาว่าจะกดปุ่มไหนบ้าง แทนที่จะกด start+share เสมอ

ทำเว็บแบบขยาย: เพิ่มความเร็วในการอ่านไฟล์

รูปภาพ
บริการบนเว็บส่วนมากอ่านไฟล์กันกระจุยกระจายอยู่แล้ว โดยเฉพาะที่บริษัทผมทำด้าน data-ware house เก็บไฟล์ multimedia แค่อ่าน thumbnail หน้านึงอย่างน้อยๆ ก็ 20 ไฟล์ แถมใน server มีไฟล์เป็นล้าน แค่หาไฟล์อย่างเดียวยังไม่ทันอ่าน server ก็เริ่มเหนื่อย

ก่อน ext3 บน kernel 2.6 เวลา server หาไฟล์ใน folder มันต้องไล่หาตั้งแต่ไฟล์แรกไปจนถึงไฟล์ที่ต้องการ ถ้าใน folder นั้นมีซัก 10,000 ไฟล์ server ก็ต้องทำ string match กัน 10,000 ครั้งก่อนจะเริ่มอ่านไฟล์ ถ้าในกรณีบริษัทผมต้องหาไฟล์ 20 ไฟล์ ก็ต้องทำ string match กัน 200,000 ครั้งต่อการเปิดเว็บ 1 หน้า

ตอนนี้ดีหน่อยเพราะเรามี ext3 บน kernel 2.6+ แถมมี ext4 อีกต่างหาก ตัวใหม่ๆ จะเก็บไฟล์เป็น hash เวลาเรียกไฟล์มันจะไปหาใน hash แล้ววิ่งตรงๆ ไปหาไฟล์เลยไม่ต้องเสียเวลาอ่านชื่อกันทีละไฟล์

ใครที่อยู่บนสถาปัตยกรรม เก่าๆ ก็ต้องลดจำนวนไฟล์ใน folder เอานะครับ

ธรรมชาติอีกหนึ่งอย่างที่น่าสนใจคือ เวลาที่ UNIX มันอ่านไฟล์มันไม่ได้อ่านอย่างเดียวครับ มันจะเขียนด้วย สิ่งที่เขียนคือ "เวลา" ที่เราไปยุ่งกันไฟล์ เพื่อบันทึกว่าแต่ละไฟล์ถูกอ่านหรือเขียนไปล่าสุดตอนไหน…

Social network แบบสามัคคีสุดๆ

video นี้ก็แหวกแนวน่าดู



แสดงความสามัคคีแบบสุดๆ ดูแล้วแต่ละคนน่าจะอยู่ใกล้ๆ กัน แต่ถ้าอยู่ไกลกันแบบข้ามประเทศคงเท่น่าดู เอาไว้รนรงค์ลดโลกร้อนแบบ :D

จริงๆ แค่ทั่วไทยก็สุดๆ แล้ว

iPhone Jumbo

รูปภาพ
ใครอยากได้ iPhone mini ก็ช่างเค้า ผมอยากได้ iPhone Jumbo



หน้าตาแบบนี้ละที่อยากได้ เอาไว้ทำงานแบบไม่ต้องมีโต๊ะ
เช่น ในร้านกาแฟ บนรถไฟฟ้า บนรถเท๊กซี่ หรือตอนเดินไปเดินมา

จริงๆ แม้แต่อยู่บนโต๊ะทำงาน ถ้าเขียนลงไปบนจอได้เลย
แบบนั้นน่าจะได้อารมณ์ก่วาเขียนที่นึง แล้วไปโผลอีกที

"Where you write is where you get"

เริ่มเขียนหนังสือ ruby

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

หลังจากเขียนมาได้ประมาณ 33 หน้าก็เริ่มมองหาเครื่องมือในการเขียน เพราะเขียนบน TextEdit.app เริ่มไม่ไหว ดูเหมือน TextEdit.app จะไม่ค่อยถูกกับภาษาไทย ไม่รู้ว่าเป็นเพราะการ render ภาษาไทย หรือเพราะการตัดคำ พอมีภาษาไทยเกิน 8 หน้ามันจะเริ่มช้ามากๆ พอมีถึง 33 หน้ามันเริ่มหยุดนานจนรอไม่ไหว

หันมาใช้ Editor ตัวอื่นอย่าง TextMate ปรากฏว่าอาการช้าหายไป แต่กลายเป็นมันไม่ยอมตัดคำภาษาไทยแทน ทำให้จำเลยตกเป็นของระบบตัดคำภาษาไทยบน Mac

พอเอา BBEdit มาลองก็ได้ผลเหมือน TextMate ครับ

หันมาใช้ไม้ตายอย่างโปรแกรม Page ในชุด iWork ก็พบปัญหาเดียวกันครับ แม้ว่าจะทำงานได้เร็วกว่า TextEdit มากมาย แต่ก็มีความหน่วงเกิดขึ้นบ้าง พอพิมพ์แล้วต้องรอสักเสี้ยววินาทีตัว…

RIP MJ.

MJ transcended color, time, space, his music and talent was universal. The inspiration from your will never die.

คำสั่งบน unix ที่ผมใช้

รูปภาพ
อ่าน blog ของคุณ sothorn แล้วเกิดอยากรู้เหมือนกันว่าเราใช้คำสั่งอะไรบ้าง พอตามเข้าไปดูก็พบดังนี้ครับ top ใช้บ่อยสุด ถ้าบน mac ต้องใช้ top -o cpu มันถึงจะเรียงตาม cpu ให้ ถ้าบน linux ใช้ top เฉยๆ มันก็เรียงให้เลย ลองกด shift-A ดู มันเรียงให้ครบเลยเท่ดี
ps -aux ใช้ดู process ผมมักใช้คู่กับ grep แบบนี้ "ps -aux | grep mong" เอาไว้ดูว่า web server ของเรายังอยู่หรือเปล่า คำสั่งที่ต่อไปจะใช้ w ใช้ดูว่าใคร login เข้ามาและกำลังใช้โปรแกรมอะไรuptime ใช้ดูว่าเครื่องเปิดไว้นานแค่ไหน เราจะได้ไม่ต้องถาม admin ว่า restart เครื่องไปหรือเปล่า (จริงๆ คำสั่ง top ก็บอก uptime นะ)iptraf ใช้ดู network ทั่วไป
ตัว monitor ที่อยากได้มากๆ คือ process ไหนกิน network ไปกี่ KB เพราะตอนนี้เวลา network ช้าจับมือใครดมไม่ได้เลย :'( ส่วนใหญ่มันดันทำเป็น background process ซะด้วย

ใช้ MS Access บน Rails โดยไม่มี ODBC

วันนี้มาเจอปัญหาว่าต้อง export ข้อมูลส่วนหนึ่งเข้า MS Access แต่ server เราดันเป็น Linux เลยไม่มี ODBC ให้ใช้ง่ายๆ หลังจากตามหาวิธีอยู่นานสุดท้ายก็เจอ activembd เป็น ruby ที่เรียกใช้ library ของ mdb-tools การใช้งานก็ง่ายมาก เพราะเสียบกับ Active record ไปเรียบร้อยแล้ว require 'rubygems' require 'active_mdb' class User < user =" User.find_first" id =""> 1 puts user.name puts user.description แต่สุดท้ายผมก็ใช้ activemdb ไม่ได้ :'( เพราะเจ้า database ที่จะไปใช้ดันไม่มี primary key .... แค่เห็นก็ตกใจไม่น่าเชื่อว่าจะออกแบบ database โดยไม่มี primary key เลยสัก table เดียว ผมเลยเปลียนแผนไปใช้ mdbtools เพียวๆ เรียกผ่าน system เอา ใครอยากเอา activemdb ไปใช้ต้องลง mdbtools ก่อนนะครับ sudo apt-get install mdbtools sudo gem install activemdb หวังว่าจะไม่มีใครบนโลกต้องลำบากแบบผมนะครับ reference: automatthew - activemdbhatenaautomatthew - compile mdbtoos on osx

ใครใช้ไฟล์นี้วะ

ตอนจะลบไฟล์ทิ้งแต่ดันมีเจอ error ว่า "ลบไม่ได้ เพราะมีโปรแกรมบางตัวใช้งานอยู่" ครั้นจะฝึนลบก็กลัวอะไรจะพัง ถ้าจะไม่ลบมันก็ค้างคาใจยิ่งนัก จนทำให้เกิดคำถามแรงๆ แบบหัวข้อของบทนี้

วันนี้เจอผู้ช่วยแล้วครับ

$ lsof

คำสั่งนี้จะแสดงไฟล์ทั้งหมดที่ถูกใช้งานอยู่ออกมาพร้อมแสดง process ที่ใช้งานมันอยู่ แถมยังมี id กำกับพร้อมให้เรา kill ได้ทันที ถ้าส่งสัยไฟล์ไหนก็สั่ง

$ lsof | grep filename

โปรแกรม lsof จะแสดงผลออกมาประมาณนี้
dropbox 3646 apirak mem REG 8,3 6556 9396629
/home/apirak/.dropbox-dist/_dbus_glib_bindings.so

สนใจเพิ่มเติมก็สั่ง $ man lsof เอาละกันนะครับ ;)

หนึ่งภาพแทนพันคำ

รูปภาพ
เมื่อวานนี้ตอนไปดูหนังเหลือบไปเห็น poster เรื่องนี้เข้า



ทำให้เราเข้าใจว่า "ใจตรงกัน" มันเป็นแบบนี้นี่เอง อิอิ

ติดตั้ง google gadgets บน ubuntu 9.04

เสียเวลา compile เองอยู่นานมาก สุดท้ายหาเจอว่ามันอยู่ใน repository ซะแล้ว การติดตั้งจะต้องติดตั้ง google desktop ก่อน ซึ่งผมไม่แน่ใจว่ามีใน repository แล้วหรือเปล่า เพราะว่า download มาลงเอง

http://desktop.google.com/linux/

ส่วน google gadget สามารถลงผ่านคำสั่ง apt-get ได้

sudo apt-get install google-gadgets-gtk

สำหรับ widget ต้องรอสักพักมันถึงจะ update เสร็จ ถ้าเรียกเลยจะเห็นแค่ 4 ตัว

ความตั้งใจที่ผมลง google-gadget เพราะอยากได้ gtalk แต่ดันไม่มีบน linux ซะงั้น
ที่ประสบความสำเร็จกว่าความคาดหมายคือมันมี twitter client มาให้ครับ

Utility that save my time and my mind

รูปภาพ
ก่อนหน้านี้ตอนลง ubuntu ผมจำเป็นต้องใช้ ruby version 1.8.6 ทำให้ไม่สามารถใช้ applet sshmenu ได้ มาวันนี้ลง ubuntu ใหม่ พร้อมแยก ruby ตัวที่เป็นงาน กับตัวที่ใช้ทั่วไปออกจากกัน ทำให้ได้ application ตัวนี้กลับมา ต่อไปนี้ก็ไม่ต้องพิมพ์ ssh command ทุกครั้งแล้วละครับ แต่ขอบันทึกไว้หน่อยว่า package ที่ต้องเอามาลงคือ sshmenu และ sshmenu-gnome เพราะถ้าลงแค่ตัวเดียว มันจะไม่ใส่ใน applet ของ panel ให้เราครับ ต้องลงทั้งสองตัวเลย หลังจากลงแล้วก็ให้สั่ง killall gnome-panel เพื่อ reset รายการ applet ใน panel แล้วก็ click ขวาเลือก add sshmenu ได้เลยครับ

ติดตั้ง ruby สองตัวบน ubuntu เครื่องเดียว

เริ่มต้นจากติดตั้ง default ruby ลงบนเครื่องก่อน ด้วยคำสั่ง $ sudo apt-get install ruby irb ri rdoc libruby-extras rubygems ruby1.8-dev จากนั้น Download ruby ที่ต้องการมาไว้ในซัก folder นึ่ง $ cd /tmp $ wget -c ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz $ tar -xvzf ruby-1.8.6.tar.gz $ cd ruby-1.8.6 จัดการ untar ให้เรียบร้อยแล้วสั่ง .comfigure พร้อมกำหนด folder ที่ควรจะเป็นให้ ruby ตั้วใหม่ $ ./configure --prefix=/opt/ruby-1.8.6 $ make $ sudo make install เวลาเรียกใช้ก็ต้องใส่กันเต็มยศครับ $ ruby -version ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] $ /opt/ruby-1.8.6/bin/ruby --version ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux] ถ้าต้องการทำอย่างอื่นด้วย เช่นทำให้สลับ Version ได้ง่ายๆ ก็ลองอ่านใน reference นะครับ

reference: blog.michaelgreenly.com


ปรับปรุง: ผมใช้ ubuntu 9.04 ต้องลง zlib ก่อน ถึงจะใช้ได้ครับ (sudo apt-get install zlib1g-dev)

ปรับปรุง 2: เวลาต้องการ install rails ให้ใช้คำสั่ง sudo /opt/ruby-1.8.6/bin/gem install -v=2.0.2 rails นะครับ

ปรับปรุง 3…

กว่าจะเป็น "ปูม"

ดูหนังเรื่อง Star trek แล้วเจอเค้าแปลคำว่า log ว่า "ปูม"

สำหรับในหนังอาจจะแปลง่ายหน่อย เพราะในการเดินเรือเค้าใช้คำว่า "ปูม" อยู่แล้ว แต่ใน Software ไม่ได้แปลง่ายแบบนั้น บังเอิญผมตามอ่าน mailling list ของ thai-l10n อยู่พอดี

เหตุการณ์เริ่มจากคุณ Theppitak เสนอขึ้นมาว่า

คำว่า "log" ปัจจุบัน ossglossary กำหนดคำแปลว่า "บันทึกปฏิบัติการ"
แต่มีคำเสนอว่า "ล็อก" และเร็ว ๆ นี้ bact' ใช้คำว่า "ปูม"

อันที่จริง คำว่า "ปูม" ก็คิดว่าน่าสนใจมานานแล้วเหมือนกัน เพียงแต่ถ้า
เปลี่ยนมาใช้ จะต้องตามแก้อีกเยอะมาก ก็เลยชะลอไว้

คิดว่าควรใช้คำไหนดีครับ?
จากนั้นคุณ akom สนับสนุนคำว่า "ล๊อก" และเสนอให้ใช้เป็น "ปูมหลัง"

คุณ mk บอกว่าเคยใช้ "บันทึกการทำงาน" แต่ก็สนับสนุน "ปูม"

คุณ Isara เสนอว่า "บันทึกปฏิบัติการ หรือปูมปฏิบัติการ" น่าจะเหมาะกว่า "ปูมหลัง"

คุณ Arthit เริ่มวิเคราะห์ว่า

log นาม - "ปูม"
log กริยา - "บันทึกลงปูม" ไหม ?

อ. Thawatchat วิเคราะห์ต่อว่าจะ…

ชอบมากครับ ขอบอก

บางทีความรักก็เกิดขึ้นแบบคาดไม่ถึง



ผู้ชายมักกลัวจนทำให้เสียเรื่องอยู่บ่อยๆ หลังจากเรื่องเสียก็หาข้อแก้ตัวโทษโน่น โทษนี่ สุดท้ายก็โทษผู้หญิง

Mac not represent me

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



การแสดงออกมีได้หลายอย่าง การที่คนแสดงออกโดยการเขียนความรู้ขึ้น blog ก็อย่างหนึ่ง การแสดงออกโดยการแต่งตัวหรือถือสิ่งของก็เป็นการแลกเปลี่ยนอย่างหนึ่ง



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



ผมสนับสนุนให้มองที่ผลงานครับ



ดังนั้นหากคอมพิวเตอร์พัง ผมจะเสียดาย content ในเครื่องมากกว่าตัวเครื่อง หลายคนคงคิ…

ใช้ "Cut to dashboard" เป็นครั้งแรก

รูปภาพ
ผมชอบ idea "Cut to dashboard" นะ เพราะมันช่วยให้เราไม่ต้องพิมพ์ url หรือเปิด browser ทุกครั้งที่ต้องการหาข้อมูล แถมยังช่วยย่นระยะเวลาในการพัฒนา dashboard ด้วย เช่นอยากได้ slide show ของ album ตัวเอง ก็สามารถเปิด picasa แล้วตัดส่วน slideshow มาใส่ใน dashboard ได้เลย

แต่จนแล้วจนรอด ก็ไม่ได้ใช้ซักที จนเริ่มสงสัยว่าจริงๆ แล้วมันมาถูกเวลาหรือเปล่า... วันนี้ได้ใช้แล้วครับ

จาก post ที่ผ่านมาเรื่อง Stencils ของ Omnigraffle ผมเข้าไปดู Download, Rating บ่อยมาก... สนุกกับการติดตามผลงาน :) ตอนมี Stencils อันเดียวก็ไม่เป็นไร พอมีสองอันเริ่มเหนื่อย แต่ก็อยากดู ตอนนี้เลยปิ้ง idea ว่าเรามี "Cut to dash board นี่หว่า

ว่าแล้วก็เอามาตัดเลยครับ ได้ผลดังนี้



ได้ใช้ของที่มีอยู่ให้คุ้มค่ามันมีความสุขจริงๆ :)

ปล. บน dashboard ของผม นอกจากตัว "Cut to dashboard" แล้ว ก็ยังมี "Stickies" "Calculator" และ "Currency Converter" ครับ

ผู้ใช้ไม่รู้ Requirement

รูปภาพ
สิ่งที่ต้องเตือนตัวเองอยู่เสมอคือ "ผู้ใช้ไม่รู้ Requirement" แม้ว่าเราจะพูดว่า "ไปเก็บ Requirement" แต่จริงๆ แล้วสิ่งที่เราไปเก็บคือ "Need" ผู้ใช้อาจจะพร่ำอะไรออกมามากมาย อยากได้แบบโน้น อยากได้แบบนี้ แต่เราต้องดึง need ออกมาจากสิ่งเหล่านั้นให้ได้

ดูจาก product ในรูป



ถ้าให้เก็บ Requirement จากผู้ใช้ตรงๆ น่าจะได้ว่า
ช้อนใหญ่ๆ พอดีคำวางไว้ข้างๆ จานแล้วไม่หล่นง่าย เด็กๆ ชอบวิ่งไปวิ่งมาควรเก็บง่ายนะ ส่วนมากจะเป็นเด็กๆ ใช้เลยต้องแข็งแรง ไม่หักง่ายถ้าไม่หนักก็ดีเอาแบบน่ารักๆ เก๋ๆ นะ
ถ้าดึง Need ออกมา น่าจะเหลือแค่
ต้องใช้ตักเค๊กกินได้เด็กต้องใช้ได้
ต่อจากนั้นเราก็มาสร้าง Requirement ของเราเองเพื่อตอบโจทย์ของ Need โดยไม่ต้องสนใจ Requirement ของผู้ใช้... หลายคนคงสงสัยว่าไม่ต้องไปสนใจเลยหรอ ขอย้ำอีกครั้งว่า ใช่!!!

ถ้าอะไรที่เรากลับไปมองแล้วว่ามันสำคัญ ให้ดึงมาใส่ใน Need แล้วค่อยคิด Requirement ใหม่ เช่น ตอนนี้มี Need 2 ข้อ ถ้าผู้ใช้หรือทีมงานท้วงว่า "น้ำหนักสำคัญ" แสดงว่า น้ำหนักก็เป็น Need ให้ดึงน้ำหนักลงมา พร้อมใส่ตัวชี้วัด เช่น "น้ำหนักไม่เกิน 200…

หาว่า process อะไรใช้ port อยู่

วันนี้ Start web server แล้วเจอว่ามีคนจอง port 8006 อยู่ พยายาม ps, top ไม่สำเร็จซักตัว มี netstat -atun ใกล้เคียงที่สุดแต่มันก็ไม่บอกว่า process อะไรที่ใช้ port นั้นๆ อยู่
สุดท้ายได้คำสั่ง

fuser -n tcp 8001

มันจะบอกเสร็จเลยว่าใช้ process id อะไรที่ใช้อยู่ พร้อมให้เรา kill ได้เลย

ถ้ายังหาไม่เจออีกต้องลอง
sudo fuser -n tcp 8001

เพราะบางทีคนที่จอง port ไว้อาจจะไม่ใช่ user เราก็ได้
ที่ดีมากๆ คือทั้งบน mac และ linux มีคำสั่งนี้ให้ใช้ทั้งคู่ครับ

Web Sketch Interface

รูปภาพ
วันก่อนต้องออกแบบ Application เลยทำ Sketch ของ Application ขึ้นมา OS X Sketch Interface มาวันนี้ต้องออกแบบเว็บก็มีผลออกมาแบบนี้ครับ



ผมเอาไปไว้ที่ Graffletopia.com นะครับ สนใจเข้าไป Download ได้เลย

เริ่มรู้สึกว่าเดี๋ยวนี้เวลาทำอะไรต้องทำให้ตัวเอง เอาไปใช้อีกได้ง่ายๆ ไม่พยายามมักง่ายทำแบบให้เสร็จๆ ไปเป็นครั้งๆ (ถึงแม้ว่ามันจะเย้ายวนเพียงใดก็ตาม) ถ้าใครได้ใช้แล้วอยากได้ component อะไรเพิ่มเติมก็บอกได้นะครับ นึกไม่ค่อยออก อยากใช้ค่อยทำเพิ่มลงไป :)

ใส่สีให้ terminal

เรื่องสีใน terminal นี่เขียนไว้ตั้งแต่ตอน Panther แล้ว ตอนนั้นยังทำยากอยู่ถึงขั้นต้องลงโปรแกรมเสริม มาใน Leopard ทำง่ายขึ้นมาก ต้องจดเอาไว้ก่อน

เปิดไฟล์ vi ~/.bash_profile
เพิ่มสองบรรทัดนี้ลงไป export CLICOLOR=1 export LSCOLORS=ExFxCxDxBxegedabagacad จากนั้นลองเปิด terminal ใหม่ เวลา ls ก็จะมีสีแล้ว
ถึงตอนแรกจะบอกว่าใส่สีให้ terminal แต่จริงๆ แค่ใส่สีให้ ls เท่านั้นเอง ขั้นต่อไปต้องใส่สีให้ vi
ที่มา Mac Tip.org

ปิดเปิดไฟบน web page

รูปภาพ
เป็นแนวคิดที่เท่มากๆ ก่อนหน้านี้ผมมีปัญหาว่า การแสดงวีดีโอจะสวยต้องให้ Back ground เป็นสีดำ เหมือนที่โรงหนังต้องมืด แต่ถ้าทำให้เว็บเป็นสีดำ ก็จะไม่เหมาะกับการอ่าน text เพราะตัวหนังสือขาวที่อยู่บนพื้นสีดำ จะอ่านยาก ดังนั้นเว็บอย่าง youtube ที่มี content เยอะๆ จึงต้องเป็นสีขาว



แต่เว็บนี้เป็นเว็บภาพ วีดีโอนะต้องเป็นสีเข้มสิ คิดได้ดังนั้น youtube เลยทำปุ่มปิดไฟซะเลย



เมื่อต้องการให้เว็บดำก็ปิดไฟซะ ตรงไป ตรงมาดี



แต่ให้ปิดไฟทุกครั้งที่ดูก็ไม่ไหวนะ ถึงอย่างนั้นก็เป็น idea ที่เอาไปใช้ได้อีกหลายงานดีเดียว

เตรียมพร้อมสำหรับ Netbean 6.7

รูปภาพ
ปัญหาอันดับหนึ่งคือ short cut ใน netbean พอเราเปลี่ยนมาใช้ Profile Eclipse จะทำให้พวก command หรือ ctrl มันสลับไปเป็นของ windows หมด ทำให้ไม่คุ้นมือ สิ่งที่พอทำได้คือต้องไป map เอาเอง
จดเอาไว้กันลืมว่าต้อง map อะไรบ้าง

Edit
1. Go to Line [Meta+L]

Other
1. Extend Selection to Beginning of Line [Shift + Meta + Left]
2. Extend Selection to End of Line [Shift + Meta + Right]
3. Insertion Point to Beginning of Line [Meta+ Left]
4. Insertion Point to End of Line [Meta + Right]
5. Move Selection else Line down [Meta+Down]
6. Move Selection else Line up [Meta+Up]

System
1. Save [Meta+S]
2. Save all [Meta+Shift+S]

เท่านี้ชีวิตก็มีความสุขขึ้นอีกนิด

ความเป็น google citizen ของผม

ต่อไปการสังกัด Google, Yahoo, Microsoft หรือ Apple อาจจะรุนแรงกว่าการเป็นประชาชนของประเทศก็ได้ เพราะโลก online สำคัญขึ้นทุกวันๆ ไปอยู่ต่างประเทศยังไปได้ แต่ mail หายนี่แย่เลย (อดีตของผม หมดกัน)identity ของเราในประเทศนี้คือบัตรประชาชน ส่วน identity ของตัวเราเองอาจเป็นการที่แม่ค้าปากซอยจำชื่อเราได้ มาในโลก online ก็มีเหมือนกัน เช่น Hi5, OpenID, หรือ Blog ของตัวเราเองตอนนี้เริ่มแยกไม่ออกว่าสิ่งไหนเป็นสิ่งที่บอกตัวตนของเราได้มากกว่ากัน แต่ตอนนี้ผมเอา online identity ไปฝากไว้กับ Google มากมายทีเดียวครับเริ่มตั้งแต่Mail: ผมใช้ gmail กับงานสำคัญที่ต้องอยู่กันยาวๆSecond Mail: ผมใช้ google app จด apirak@apirak.com เอาไว้ ใช้งานทั่วไป แต่ไม่ใช้ถาวรเพราะ domain อาจจะหายได้ ถ้าผมไม่สามารถต่ออายุ ได้เป็นเวลานาน (เช่น โดนลักพาตัวหายไปสองปี หรือง่ายกว่านั้นคือลืม)Docs: ความรู้ส่วนใหญ่เก็บ online ไว้ที่นี่ ไม่ต้องกลัวเครื่องพังAddress book: ตอนนี้เก็บไว้กับ google หมดแล้ว มือถือหายก็ไม่กลัวCalendar: วันเกิดแฟน วันพบกันครั้งแรก หรือวันสำคัญต่างๆ ก็ย้อนอดีตไปหาได้ตลอดBlog: ผมไม่ทำ drupal, wordpress เอง…

Feedburner กลายเป็นของ Google ไปซะแล้ว

หลังจากย้ายบ้านมาที่ blogger วันนี้มาจัดการเรื่อง feed บน feedburner พอ login มันก็บอกว่าต่อไปให้ใช้ google account แทน แล้วพาเราเข้าไปที่

http://feedburner.google.com

ไม่รู้แบบนี้แปลว่า google ซื้อ feedburner ไปแล้วหรือเปล่า แต่ทำแบบนี้น่าสนใจทีเดียวเพราะช่วยให้ระบบโฆษณาสมบูรณ์แบบมากขึ้น คนทำ web ก็ไม่ต้องมาจัดการ โฆษณาผ่าน feed ด้วยตนเอง เพราะทำออกมาให้ดีได้ยาก

ruby แปลงตัวเลข เป็นตัวหนังสือ

ตอยอดงานของคุณ MRTIGER จาก
http://admincmd.blogspot.com/2007/08/php-convert-digit-to-thai-word.html
เอามาแปลงเป็น ruby ได้ผลออกมาแบบนี้
def convert(number) txtnum1 = ['ศูนย์','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า','สิบ'] txtnum2 = ['','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน'] number.gsub!(",","") number.gsub!(" ","") number.gsub!("บาท","") numbers = number.split(".") if(numbers.length>2) return "มีเครื่องหมาย '.' มากกว่า 1 ตัว" end strlen = numbers.first.length convert = "" 0.upto(strlen-1) do |i| n = numbers.first[i].chr.to_i if (n.chr != "0") if ( i == (strlen-1) and n == 1) convert = convert + "เอ็ด" elsif ( i == (strlen-2) and n == 2) …

Rails podcast in Thai

รูปภาพ
ลองทำ pod cast ของ rails ดู เห็นมีหลายคนบ่นๆ ว่า rails podcast บน internet เป็น rails 1.2 มันเอามาใช้ไม่ได้กับ 2.0 ก็เลยลองทำของ 2.0 ดู ทำมาสองตัวคือ การเขียน blog ด้วย rails กับการเขียน blog แล้วมี comment ด้วย จริงๆ อยากจะเอาตัวที่เป็น blog ขึ้นมาก่อน แต่ดัน upload ตัวที่เป็น blog + comment เสร็จซะแล้ว ไว้จะเอาอีกตัวขึ้นวันพรุ่งนี้นะครับdownload

customize text_field

ได้แรงบรรดาลใจมาจาก blog ของ PunNeng หน้านี้ พยายามเอามาใช้กับ project ที่ทำงานอยู่แต่ทำยังไงก็ไม่ work ซะที สงสัยเพราะว่าใช้ rails คนละ version กัน ดูใน ruby trac เค้าบอกว่าจะปรับ attribute ของ form_for ใหม่ แต่ตอนนั้นดูแบบคร่าวๆ เพราะไม่รู้ว่าต้องแก้ตรงนี้

สุดท้ายมั่วไปมั่วมาได้ resolution ว่าให้สร้าง file doo_form_helper.rb ไว้ที่ app/helper แบบนี้
module DooFormHelper def doo_form_for(record_or_name_or_array, *args, &proc) form_for(record_or_name_or_array, *(args << {:builder => DooFormFor}), &proc) end class DooFormFor < ActionView::Helpers::FormBuilder def text_field(method, options = {}) @template.content_tag('p', label(method) + "" + super) end end end จากนั้นที่ _form.html.erb ก็ใช้ doo_form_for แทน ผมลองบน rails 2.0.2 ครับ ไม่รู้ว่า 2.1 จะสามารถใส่ :builder ลงใน form_for เลยได้หรือเปล่า ประมาณนี้ แต่ผมชอบแบบใช้ doo_form_for มากกว่า ดูลึกลับดี ปล. ที่ใช้คำว่า doo ไม่ได้มีความหมายพิเศษครับ แต่เพราะ pr…

Rails podcast in Thai ตอน 1

รูปภาพ
Blog ก่อนหน้านี้ทำให้เข้าใจโครงสร้างของ MVC ชัดเจนมากขึ้น แต่สำหรับ video อันนี้จะเห็นเรื่อง Convention over Configuration ได้มากกว่า



download

ใช้ Number คำนวนเงินกู้

รูปภาพ
เมื่อก่อนตอนใช้เจ้า Number โปรแกรมสุดจ๊าบในชุด iWork คิดว่านี่ล่ะจะมาแทน MS Excel สิ่งทีประทับใจมากๆ คือการที่หนึ่ง Sheets สามารถมีได้หลายตาราง ทำให้เรามีอิสระมากขึ้นในการจัดหน้า แต่แล้วก็บรรลุว่า สิ่งที่สำคัญในโลกธุรกิจไม่ใช่ความสามารถของ Application แต่เป็น Compatibility ถ้าทำตารางขึ้นมาแล้วส่งไปให้คนอื่นดูไม่ได้ บางครั้งก็ถึงขั้นไร้ความหมาย แต่กับงานส่วนตัวนี่อีกเรื่องนึงครับ :) ผมพึ่งพบว่า Number มีต้นแบบสำหรับคำนวนเงินกู้ด้วย เหมาะกับผมซึ่งกำลังหาตังสร้างบ้านพอดีเลย

หน้าจอต้นแบบมีไว้ให้เราเปรียบเทียบลักษณะการกู้สามประเภท อย่างที่ผมลองทำ ผมกำหนดให้จำนวนเงิน และดอกเบี้ยเท่ากัน แต่ระยะเวลาผ่อนไม่เท่ากัน


ถ้าผมผ่อน 15 ปีจะจ่ายแค่เดือนละ 11,862 บาท แต่ทำให้ผมต้องจ่ายค่าดอกเบี้ยเป็น 635,143 บาท แทนที่จะจ่ายแค่ 280,873 บาท ถ้าเลือกผ่อน 7 ปี ถ้ามาดู sheet ที่สองจะเห็นว่าเดือนแรกผมผ่อน 11,862 บาทเป็นค่าดอกเบี้ยไปซะ 6,250 บาท คิดแล้วเศร้า ถ้าใครอยากลองให้เปิดโปรแกรม Number แล้วกด new

เลือก Loan Comparison อีกตัวอย่างที่เท่ไม่แพ้กัน คือ Mortgage เอาไว้คำนวนตอนซื้อบ้านหรือรถได้เป็นอย่างดี มี…

Love graph

รูปภาพ
มีบทความหนึ่งเขียนว่า

ความรักของผู้ชายเริ่มต้นด้วยคะแนนเต็ม ไม่มีอะไรที่ เขาไม่ชอบ หรือ ไม่พอใจ ทุกอย่างที่เป็นเธอช่างสวยงามและเพรียบพร้อม เขารู้สึกโชคดีกว่าชายคนอื่นบนโลกนี้ ความรักของเขาให้เธอเต็มร้อย ทุ่มเท ทุกอณู ที่เขามีอยู่ให้เธอ เขาคนนั้นไม่รู้ตัวหรอกว่า.. ไม่ใช่เพราะเขาปรับตัว รับกับ นิสัยของเธอได้หรอก ถ้ามาคิดดูดีๆ เขาได้มองข้าม สิ่งที่เขาไม่ชอบออกไป เสียมากกว่า เพราะความใหม่ ความสวยงาม และ ความหลงใหล มันน่าจดจำกว่า ความเบื่อ ความเก่า และ ความเคยชินวันเวลาที่ผ่านไป ความเคยชิน เค้ามาแทนที่ สิ่งที่เห็นอยู่ทุกวันกลายเป็นสิ่งน่ารำคาญ เขาสงสัยว่า ทำไม เธอไม่สวยงาม น่าถนุถนอม เหมือนแต่ก่อน ทำไมเวลาจับต้องตัวเธอแล้ว เขาไม่รู้สึกเหมือนแต่ก่อน ทำไมนิสัยไม่ดีของเธอถึงได้ ผุดขึ้นมามากมายแบบนี้ เขารับเธอไม่ได้อีกต่อไป เขาทนไม่ได้ กับการเปลี่ยนแปลงของเธอ ความรักของผู้หญิงเริ่มต้นจาก ศูนย์ เขายังมีสิ่งที่เธอคิดว่าเธอไม่ชอบ ทุกอย่างของเขา ก็ไม่ได้น่าประทับใจอะไรมากนัก เธอตัดสินใจจะลองคบหากับเขา เพื่อที่จะศึกษา สิ่งที่ดีในตัวเขา เวลาผ่านไป เธอรู้สึกว่าเธอโชคดีที่สุดบนโลกนี้ ความรักของเธอให้เข…

Open Office 3.0

รูปภาพ
อ่าน review Open Office 3.0 แล้วตื่นเต้นครับ ดูความก้าวหน้าแล้วน่าสนใจทีเดียว ทั้งด้านความสวยงาม ความคิดสร้างสรรค์ และการเก็บรายละเอียด ต่างจาก version ผ่านๆ มาที่ถึงแม้จะดูสร้างสรรค์แต่ขาดการเก็บรายละเอียดทำให้ความสร้างสรรค์นั้นดูด้อยค่าลงไป ความประทับใจด้านความสวยงามเริ่มจากการปรับปรุง theme ของโปรแกรม Calc


สีที่ bar ด้้านข้างสวยขึ้นอย่างชัดเจน แม้ว่าจะอ่านตัวเลขได้ยากขึ้น แต่ก็น่าใช้กว่าเดิมมาก ส่วนสีที่ใช้สำหรับ hi-light ตัวตารางดีขึ้นอย่างไม่มีที่ดิ ตอนนี้ช่องที่ถูกเลือกจะถูกทับด้วยสีฟ้าจางๆ มองทลุไปถึงพื้นหลัง ทำให้ตารางยังคงความหมายต่างๆ ด้วยสีได้ แม้เวลาที่ถูก hi-light ก็ตาม ความประทับใจในด้านความคิดสร้างสรรค์ต้องยกให้โปรแกรม Impress ผมชอบหน้าจอ second screen มาก เมื่อก่อนใช้โปรแกรม keynote เวลา present จะให้หน้าจอบน present กับหน้าจอบนเครื่องไม่เหมือนกัน เพื่อใช้ดู note หรือดูหน้าจอต่อไป เวลาพูดจะช่วยให้ลื่นไหลมากขึ้น ตอนที่เห็นว่า MS Office บน mac สามารถทำได้เหมือนกันก็ดีใจครับ ทำออกมีลูกเล่นหลายอย่าง แต่ติดตรงที่ทำออกมาไม่สวยเลย :( ของ OO3.0 น่าจะคาดหวังได้มากกว่า



แสดงห…

Emac บน Mac

รูปภาพ
พยายามจะใช้ gEdit บน mac เพื่อให้ที่ทำงานกับที่บ้านใช้ editor ตัวเดียวกัน แต่ดันต้องใช้ผ่าน dawin port เลยไม่ใช้มันละ วันนี้ก่อนกลับบ้านคุยกับเพื่อนที่ทำงาน (เพื่อนชื่อ sid) เข้าบอกว่าเรียน emacs แล้วคุ้ม เพราะ IDE ส่วนใหญ่ต้องรองรับ short cut ของ emacs ทั้งนั้น คิดว่าได้เวลาทดลองใช้ emacs ซะที (ผมสาวก vi) อันดับแรกผมพยายามจะใช้ Aquamacs เพราะคิดว่ามันมี toolbar กับ menu มาด้วยน่าจะช่วยให้เห็นคำสั่งได้ง่ายขึ้น



ติดว่ามันใช้เวลา download ตั้งชั่วโมง 52.5 MB เลย download ทั้งไว้แล้วหันมาใช้ emac ที่มีมาบนเครื่องแล้วแทนไปก่อน เริ่มต้นด้วย การเปิด terminal แล้วพิมพ์

$ emacs
ที่หน้าแรกเค้าบอกว่าให้กด C-h t = Ctrl+h แล้วตามด้วย t มันจะพาเราเข้าสู่ tutorial บทเรียนแรกบอกว่า control key มีอยู่ 2 อันคือ C- กับ M- คาดว่าบน linux ตัว M คงใช้ปุ่ม alt แต่บน mac เป็นปุ่ม esc ครับ บทเรียนแรกคำสั่ง C-x C-c เป็นคำสั่งออกจาก emacs ครับ ให้กด Ctrl+x ตามด้วย Ctrl+c



ลงมาด้านลางจะเจอคำสั่ง C-v = ไปหน้าถัดไป M-v = ไปหน้าก่อนหน้า C-l = ทำให้ บรรทัดที่ cursor อยู่ มาอยู่ตรงกลางจอ terminal Basic cursor C-p = บ…

Best way to query

รูปภาพ
การหาข้อมูลจำนวนมากช่างยากเสียจริงๆ วันนี้ผมเจอข้อมูลขนาด 9X0,000 Record เลยสับสนว่าควรออกแบบ query และ table แบบไหนดี ตอนนี้มีทางเลือกสำหรับ table อยู่สามแบบ


ข้อมูลจริงในตาราง foo จะมีขนาดประมาณ 9 แสน record ส่วนตาราง bars มีขนาดใหญ่กว่า foo สามเท่า ผมคิด query ได้ 5 แบบ รวมการ query ร่วมกับ ferret ด้วย
SELECT * from foos WHERE foos.id in ( SELECT distince foos_bars.id FROM foos_bars WHERE foos_bars.bar_id in [2,5,3]) แบบแรกใช้ sub query จาก table ตามหลักกระทรวงศึกษาธิการ
SELECT * from foos JOIN foos_bars on foos.id = foos_bars.foo_id WHERE foos_bars.id in [2,5,3] GROUP BY foos.id แบบที่สองก็ตรงตามหลัก แต่มันน่าจะช้ามากเมื่อเจอคำสั่ง
Group by SELECT * from foos WHERE (bar LIKE '% ข %') AND (bar LIKE '% จ %') AND (bar LIKE '% ค %')
แบบที่สาม ผมจะลองรวมสาม table มาเป็นอันเดียวแล้วค่อย query ลดการ join table และ group by
SELECT * from foos WHERE (bar LIKE '%[2]%') AND (bar LIKE '%[5]%') AND (bar LIKE '…

Simple many to many

ช่วงนี้พยายามหาข้อมูลของ MySQL บังเอิญไปเจอสอง SQL นี้เข้า ในบทความเค้าบอกว่าผลลัพธ์ต่างกันอย่างไร
SELECT x.aid, x.bid, b.bdesc FROM x LEFT JOIN b ON (b.bid = x.bid) WHERE (x.aid = ‘whatever’) A similar result may also be achieved using the following: SELECT x.aid, x.bid, b.bdesc FROM x, b WHERE (x.aid = ‘whatever’) AND (b.bid = x.bid) The difference between these two SQL queries will only become apparent if an occurrence of table ‘B’ is missing for an occurrence of table ‘X’. With the first query all columns selected from table ‘B’ will be returned as empty. With the second query the effect will be that the occurrence of ‘X’ will be dropped from the selection.

ลองแปลดู ประมาณว่าถ้า table b ไม่เข้ากับเงื่อนไข * query แรกจะแสดง b.b_desc เป็นช่องว่าง แต่ * query ที่สองจะไม่แสดงทั้ง record ไปเลย

ที่มา tonymarston

เรียก controller method จากหน้า view

รูปภาพ
ปกติแล้วเราจะเรียก method ของ controller จากหน้า view ไม่ได้ วันนี้ได้ดู rails cast ถึงได้รู้ว่าถ้าใช้ method helper_method จะทำให้เราเรียก method นั้นจาก view ได้ เช่น เราสร้าง method foo แล้วบอกให้ method นี้เป็น helper_method

#blogs_controller.rb ... def foo "bar" end ... helper_method :foo จากนั้นทดลองเรียกใช้ในหน้า view

#index.html.erb


ตอนเรียกที่หน้า browser จะมีคำว่า bar ขึ้นมา แต่ถ้าไม่ใช้ helper_method มันจะขึ้น undefined local variable or method `foo' for # เพราะ rails หา method foo ไม่เจอ

ให้งานกับบ้านเป็นทีมเดียวกัน

ที่ทำงานผมใช้ Ubuntu พอกลับมาที่บ้านก็ใช้ Leopard ค่อนข้างลำบากมากๆ กับการสลับหัวให้ใช้ short cut ได้ถูกต้อง จริงๆ แค่แป้นสลับภาษาไทยกับกับ อังกฤษมันต่างกัน ก็สับสนแย่แล้ว ดังนั้นถ้าทำให้ development environment บน mac กับบน linux เหมือนกัน คงเป็นสวรรค์เลยทีเดียว เริ่มต้นครั้งแรกกับ Aptana ครับ Eclipse + Web + Rails สุดยอดแล้ว ก่อนหน้านี้หนีมันไปนานเพราะความไม่เสถียร crash เป็นระยะๆ แต่ตัวล่าสุดนี่ใช้ได้ทีเดียว ความพยายามต่อมาคือการเปลี่ยน Themes จากสีขาวเป็นสีเทา... มันก็พอทำได้ครับ แต่พิการสุดๆ เลยตัดสินใจวาง Aptana ไว้ก่อน เรื่อง themes นี่สำคัญกับผมมากๆ ครับ อันดับต่อมาคือ Netbean ติดตั้งง่าย ใช้งานสะดวก ปรับ themes ได้แทบจะสมบูรณ์ ติดว่า themes สำเร็จรูปที่ให้มา มันทำให้เสีย feature สำคัญของ IDE เช่นตอนที่ curser เราอยู่บนคำสั่งไหน คำสั่งเหมือนกันจะ hi-light ขึ้นมา พยายามหาที่แก้อยู่แต่หาไม่เจอ แต่นั่นไม่ใช่ปัญหาใหญ่เท่าการที่ NetBean บน mac มันหน้าตาเหมือนของเล่นเอามากๆ กลับมาเรื่องหน้าตาอีกครั้ง... ถัดมาคือ gEdit ไม่นึกเลยว่ามันสามารถใส่ plugin จนคล้าย textmate ได้ขนาดนั้น them…

เปลี่ยน theme ให้ Netbean

รูปภาพ
วันก่อนเพื่อนที่ทำงาน (Sid) บอกวิธีการเปลี่ยน theme ของ netbean ให้เป็น original swing (Metal) แทนแบบเดิมที่เป็น



วิธีการก็ง่ายมาก บน linux ให้เปิดไฟล์ netbeans.conf ที่อยู่ของไฟล์ขึ้นอยู่กับว่าเราเอา netbean วางไว้ที่ไหน %NETBEANS_HOME%/etc/netbeans.conf จากนั้นเพิ่มข้อความ
"--laf javax.swing.plaf.metal.MetalLookAndFeel" ต่อท้าย netbeans_default_options= netbeans_default_options="-J- Dcom.sun.aas.installRoot=/Applications/NetBeans/glassfish-v2ur2 -J- Dcom.sun.aas.installRoot=/Applications/NetBeans/glassfish-v2ur2 -J-client -J- Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J- Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true"

แก้ให้เป็น

netbeans_default_options="-J-Dcom.sun.aas.installRoot=/Applications/NetBeans/ glassfish-v2ur2 -J-Dcom.sun.aas.installRoot=/Applications/NetBeans/glassfish- v2ur2 -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m - J-Xverify:none -J-Dapple.laf.useScreenMenuBar=tr…

Single Table Inheritance

รูปภาพ
อุตสาห์ลง mac port จนสำเร็จ ดันเจอปัญหากับ X11 ซะนี่ สุดท้ายก็ใช้ TextMate ต่อไป..
บ่นนิดหน่อยก่อนเข้าเรื่อง วันนี้ได้มีโอกาศใช้ความสามารถ Single Table Inheritance ของ Active Record ซะทีครับ หลังจากที่ใช้ก็เกิดความประทับใจสุดๆ จดต้องเอามาแชร์ให้รู้โดยทั่วกัน



จากรูป ถ้าคิดแบบซื่อๆ การสร้าง Object 3 ตัวก็ต้องมี 3 ตาราง อันแรกเก็บ Player อันที่สอง สาม เก็บ Footballer กับ Cricketer แล้ว link กลับไปที่ Player สร้างแบบนี้ Normalize สุดๆ แต่ใช้งานยากที่สุดๆ เช่นเดียวกัน ดังนั้นถ้าพิจารณาแล้ว Footballer กับ Cricketer เก็บข้อมูลไม่ต่างกันมาก น่าจะเอาสาม table มารวมเป็น table เดียวมากกว่า วิธีการงานก็ง่าย เพราะ Active Record มันเตรียมมาให้เราแล้วครับ
ขั้นแรกให้สร้าง Table Player ให้มี column ชื่อ type

create_table :players do |t| t.string :type t.string :name t.timestamps end
จากนั้นก็สร้าง model สามตัว สามไฟล์

#/app/model/player.rb class Player < ActiveRecord::Base end #/app/model/footbller.rb class Footballer < Player end #app/model/cricketer.rb class Cricketer < Player end…

เปลี่ยน theme ของ code ให้ NetBeans 6.1 คล้าย textmate

ผมชอบ themes สีเทาเพราะดูแล้วสบายตา จนเดี๋ยวนี้เริ่มติด จน code ที่พึ้นหลังเป็นสีขาวนานๆ แล้วแสบตา วันนี้ได้โอกาสต้องมา set netbean ที่บ้านเลยจดวิธีเอาไว้ก่อน [![theme](/downloads/nbt_mini.png)](/downloads/nbt.png) อันดับแรก download themes จาก [huikau](http://blog.huikau.com/2008/04/28/aloha-color-theme-for-netbeans-61) หรือ download ได้โดยตรงที่ [http://pages.huikau.com/AlohaTheme.nbm.jar](http://pages.huikau.com/AlohaTheme.nbm.jar) ถ้า link เสียผมเก็บไว้อีกชุด [download](/downloads/AlohaTheme.nbm_.jar) สำหรับ leopard เมื่อ download แล้วแก้ไฟล์ name ให้เหลือแค่ AlohaTheme.nbm click ขวาบนไฟล์ แล้วเลือก Get Info หรือเลือกไฟล์แล้วกด command + i แล้วแก้ extension โดยลบ .jar ออก ![info](/downloads/info.png) การติดตั้งให้กด menu > tools > Plugins เลือก tab downloaded กดปุ่ม Add Plugins... แล้วเลือก AlohaTheme.nbm กด install แล้วทำตามขั้นตอนไปจนจบครับ กดดู preference (apple menu > Netbeans > preference) หรือ Edit > option สำหรับ linux และ windows เลือก Font & Color แก้ P…

ย้าย SVN Repository

วันนี้ได้ลองย้าย SVN Repository จากที่หนึ่ง ไปไว้ใน Repository ที่มีอยู่แล้วอีกที่หนึ่ง ตอนแรกคิดว่าต้องใช้ท่ายากเพราะไม่ได้เป็นการสร้างใหม่ แต่กับง่ายกว่าที่คิด ผมเริ่มจากการ dump reposity ออกมาก่อนด้วยคำสั่ง svnadmin dump repo_path > dump_file ในกรณีของ unix เราใช้ full path ได้เต็มๆ แต่ในกรณีของ windows มันจะบอกว่าไม่รู้จัก c: ผมแก้ปัญหาแบบ OTOP ด้วยการ cd ไปยัง directory ที่เก็บ repository ก่อน จะได้ไม่ต้องระบบ full path ขั้นตอนนี้ถ้าจะประยุกต์ใช้กับการ backup svn ก็ได้ เพราะ dump_file ก็คือ repository ทั้งตัวนี่เอง สำหรับการย้ายก็แค่ copy dump_file ไปไว้ folder เดียวกับ repository ปลายทางจากนั้นสั่ง svnadmin load new_repo < dump_file เช่นเดียวกับกรณี dump ถ้าเป็น windows มันจะไม่รู้จัก c: เราก็ cd ไปอยู่ที่เดียวกับ repository ก่อน แล้วค่อยสั่งครับ แต่บน unix ใช้ full path ได้สบายเลย ในกรณีที่เราไม่ต้องการเอา repository เดิมไปไว้ที่ root ของ repository ใหม่ เราสามารถใส่ path ลงไปได้เลย เช่น svnadmin load new_repo/project/name < dump_file การ load svn จะอ่าน dump_file แล้ว…

MVC มุมมองใหม่ 3F to 3S

รูปภาพ
หลังจากนั่งทำ Refactoring code ของตัวเอง ทำให้ได้มุมมองใหม่ๆ จากที่เคยจิตนาการว่า [MVC](http://en.wikipedia.org/wiki/Model-view-controller) คือ 3FFat Model: พยายามยัดทุกอย่างลง model เพื่อให้มันอ้วนๆFast Controller: เมื่อทุกอย่างไปอยู่ใน model ทำให้ view เปลี่ยนได้ง่ายFlexible View: ต้องทำให้ View ปรับแต่งได้เร็วที่สุดแต่จิตนาการแบบนี้กลับทำให้ผมพลาดครั้งใหญ่ หลังจาก Refactoring แล้วผมพบว่าเราไม่ได้ต้องการให้ model มันอ้วนเฮะ ผมต้องการให้ model มันฉลาดต่างหาก มองเหมือน model เป็นลูกน้องของ controller เปลี่ยนจาก

Fat model ไปเป็น Smart Model

เวลาพิจารณาว่าอะไรควรอยู่ใน model ก็ให้จับหลักว่าลูกน้องควรรู้อะไร เพื่อให้หัวหน้าสบายที่สุด

สำหรับ Fast Controller นั้นไม่ค่อยตรงเท่าไหร เพราะ controller ไม่ค่อยเปลี่ยนบ่อยขนาดนั้น สิ่งที่ต้องการคือ ความเข้าใจง่ายและ การทำงานความถูกต้องซะมากกว่า ยิ่งสั้นยิ่งผิดยาก ไม่ควรยาวเกิน action ละ 15 บรรทัด การเป็นหัวหน้าต้องสั่งน้อยๆ ถ้าเมื่อใดสั่งมากแสดงว่าลูกน้องเราไม่ฉลาด ต้องไปเพิ่มความฉลาดให้ลูกน้อง (model) ดังนั้นต่อไปผมจะเปลี่ยนจาก

Fast Controller มาเป…

My new X11

ก่อนหน้านี้เคยพยายามลง [gedit บน leopard](http://gedit.darwinports.com/) โดยการลงผ่าน [dawinport](http://darwinports.com/) ใช้เวลานานข้ามวันเพราะแทบจะต้อง download GNome ทั้งตัว สุดท้ายมาตายที่ X11 ของเครื่องมันเดี้ยงๆ ไม่สามารถเรียกกระทั่ง xterm ออกมาได้ โครงการเลยต้องพักไว้ก่อน วันนี้มาเจอ [XQuartz](http://xquartz.macosforge.org/trac/wiki) เลย download มาใช้แทน default X11.app หน้าตา icon แบบนี้ ![x11](/downloads/x11.png) พอเปิด GEdit หน้าตา GTK แบบไร้ Theme ดูอนาจเป็นยิ่งนัก ![x11](/downloads/gedit.png) ทุกขอบหนา 2 pixel หมด ถ้าแค่เค้าลดมาให้เหลือ 1 pixel กับใช้สี dark gray แทนสีดำ มันจะดูดีขึ้นมากเลยนะเนี่ย ภาษาไทยยังไม่รู้ว่า set ตรงไหนแต่ default ไม่สามารถพิมพ์ไทยได้ ต้องหาวิธีกันต่อไป เท่าที่อ่านดู กอปรกับมันอยู่บน macosforge.org ทำให้คาดเดาว่ามันก็คือ X11.org นี่เอง แต่อาจจะกลายพันธ์เล็กน้อย เหมือน Open Office กับ Star Office อ่านที่เค้าเขียนว่า > The Xquartz project is an open-source effort to develop a version of the X.org X Window System that runs on Mac OS X. Together w…

แปลง gedit บน leopard ให้คล้าย TextMate

ทำออกมาแล้วได้ประมาณนีครับ ![gedit](/downloads/gedit3.png) **อันดับแรก ติดตั้ง Official Plugin กันก่อนครับ** เนื่องจากเราไม่มี apt-get เหมือนบน linux เลยต้องใช้ Dawin Ports แทน cd /opt/local/bin/portslocation/dports/gedit-plugins % sudo port install gedit-plugins ใครสนใจ download มา compile เองเอาได้ที่นี้ครับ * Download ได้จาก [live.gnome.org/GeditPlugins](http://live.gnome.org/GeditPlugins) * Direct download [gedit-plugins-2.18.0.tar.gz](ftp://ftp.gnome.org/pub/gnome/sources/gedit-plugins/2.18/gedit-plugins-2.18.0.tar.gz) Plugin ที่เราต้อง enable คือ * Session Saver: you can save the status of the tabs/files opened * Snippets: use quicly the most useful piece of code * File Browser Pane: a mini file browser embedded in the editor * Code comment: a shortcut to comment your code. Many languages are supported * กด ctrl + m เพื่อ comment * กด ctrl + shift + m เพื่อ un comment **ทำตัว Snap open** เมื่อก่อนจะพยายามเปิดจากด้านข้าง พอผึก Snap open มานานๆ พอเริ่มจำได้ก็เริ่มติด นอกจากจะเร็ว…

18 ข้อที่ควรระวังในการออกแบบห้องครัว

รูปภาพ
สร้าง Homepage มาหลายหลัง วันนี้ได้สร้างบ้านจริงๆ หลังจากออกแบบโครงเสร็จก็ถึงคิวรายละเอียดภายในบ้าง เริ่มจาก M:Mouth ไปเจอในหนังสือ room มีอยู่ 20 ข้อครับ แต่ผมเอาออกมาแค่ 18 ข้อที่พอจะทำได้ในบ้าน1. ในห้องครัวคนจะใจจดใจจ่ออยู่กับอาหารทำให้ตกใจง่าย ดังนั้นควรระวังการยืนทำครัวแบบหันหลังให้ประตู2. ควรวางปลั๊กตู้เย็นให้ถอดง่าย ไม่ไปซ่อนอยู่หลังตู่เย็น3. ควรมีพื้นที่เตรียมอาหารกว้าง 0.80 - 1 เมตร เผื่อวางของที่หยิบมาจากตู้เย็นด้วย ให้ตู้เย็นไว้ด้านขวา อ่างล้างจานไว้ด้านซ้าย4. พื้นที่เดินในครัวควรกว้าง 1.2 เมตร กันเดินชนกัน เพราะต้องเดินอยู่แล้ว5. ตู้เย็นไม่ควรวางใกล้เตาอบ และถ้า build in ก็ควรมีระบายอากาศด้วย6. ก็อกน้ำควรเป็นแบบโยกเพราะปิดเปิดง่าย แม้ว่าจะใช้มือสองข้างถือหม้ออยู่ก็ตาม7. เตาไฟไม่ควรวางใกล้หน้าต่าง เพราะจะเปลืองแก๊ส ถ้าเป็นครัวกลางแจ้งไม่ควรเอาไว้ทิศตะวันตก หรือทิศใต้เพราะลมจะพัดไฟเข้าหาตัว เข้าหน้า8. อย่าลืมที่วาง น้ำปลา ซีอิ้ว น้ำมัน น้ำตาล และเกลือ เอาไว้ใกล้ๆ เตาไฟ อาจทำเป็นชั้นที่ไม่มีฝากั้นก็ได้9. ไม่ควรใช้ครัวฝรั่งถ้าชอบอาหารไทย ควรแยกออกไปทำนอกบ้าน10. อย่าใช้หินอ่อน …

Quick look plugin (Zip & Tar & Tar.gz)

รูปภาพ
ไปเจอ Quicklook plugin มาตัวนึง เอาไว้ใช้เปิด zip ไฟล์ หน้าตาประมาณนี้



วิธีใช้ให้ download ไฟล์จาก xdd

direct download Archive.qlgenerator01.zip]

Download เสร็จก็ unzip แล้ว copy "Archive.qlgenerator" ไปไว้ที่

/Library/QuickLook/
หรือเอาไว้ใช้ส่วนตัวที่
~/Library/QuickLook/

จากนั้นสั่ง re launch ตัว finder ด้วยคำสั่ง re-launch Finder.app เป็นอันเสร็จกระบวนการ install เวลาใช้ให้ click บน zip ไฟล์แล้วกด space bar อาจจะช้านิดหน่อยในการเปิดครั้งแรก แต่ก็ถือว่า ok สำหรับ Quick look ครับ

ที่มา xdd