วันอังคาร, พฤษภาคม 26, 2552

ใช้ 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:

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

ตอนจะลบไฟล์ทิ้งแต่ดันมีเจอ 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 เอาละกันนะครับ ;)

วันพฤหัสบดี, พฤษภาคม 21, 2552

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

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

 

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

วันพุธ, พฤษภาคม 20, 2552

ติดตั้ง 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 มาให้ครับ

วันจันทร์, พฤษภาคม 18, 2552

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 ได้เลยครับ

วันพุธ, พฤษภาคม 13, 2552

ติดตั้ง 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: วิธีอื่นก็มีที่นี่ STOW

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

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

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

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

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

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

คิดว่าควรใช้คำไหนดีครับ?

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

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

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

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

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

อ. Thawatchat วิเคราะห์ต่อว่าจะไม่ใช้คำนี้เลยดีหรือเปล่า

ในความคิดผม ถ้าแปล The error messages will be logged.
อาจจะไม่แปลตรงๆ แต่แปลให้สื่อได้อย่างเช่น
"ระบบจะบันทึกข้อความแจ้งความผิดพลาดเหล่านี้ไว้" ครับ

อีกประเด็นหนึ่งในเรื่องการแปลนั้น passive voice เราควรแปลให้เป็น
active voice ทั้งหมดไหมครับ เนื่องจากภาษาไทยโดยพื้นฐานไม่มี
passive voice ใช่ไหมครับ

คุณ Mk ว่า ยังไงก็น่าจะมี เช่น View log เป็นต้น


ผมว่าการคิดหลายคนเป็นเรื่องดีมากๆ เพราะทำให้มีคนช่วยมองจากหลายมุม ลดความผิดพลาดได้มากทีเดียว


คุณหมวยมองอีกมุมว่าให้คิดเผื่อคำว่า traffic log ด้วย

อ. ธวัชชัย แปลให้ฟังว่า
view log = ดูปูม
traffic log = ปูมการจราจร

คุณเก่งเสนออะไรเท่ๆ ว่า แล้วพวก logger จะเป็น "ผู้บันทึกปูม" ไหมครับ?

จากนั้นก็คุยกับอีกหลาย mail ก่อนที่คุณเทพจะมาสรุปว่า

ปูม เป็นศัพท์ที่ใช้ในการเดินเรือครับ ตรงกับคำว่า log ในภาษาอังกฤษเลย
คือใช้บันทึกเหตุการณ์ต่าง ๆ ระหว่างการเดินเรือ อย่างในเรื่องไททานิค
ตอนที่เจอภูเขาน้ำแข็ง กัปตันก็จะสั่งให้บันทึกลงปูมไว้ ทำให้นึกถึง
/var/log/messages หรือกล่องดำของเครื่องบินขึ้นมาทันทีเหมือนกัน

สรุปว่าใช้ "ปูม" นะครับ?

กว่าจะได้คำว่า "ปูม" ต้องคุยกันถึง 16 Mail ซึ่งถือว่าไม่มากนะครับถ้าเทียบกับ Minimize, Maximize อันนั้นคุยกันยาวมาก ถ้าต่อไปเราใช้คำว่าปูมใน Linux แล้วทำให้ลูกหลานเรารู้จักคำว่าปูม ก็ต้องขอบใจทีมนี้ด้วยครับ เพราะอย่างผมก็พึ่งรู้จักคำว่าปูมเอาตอนนี้เอง

ทีมงานแปล คุณเท่จริงๆ :)

วันจันทร์, พฤษภาคม 11, 2552

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

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



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

วันจันทร์, พฤษภาคม 04, 2552

Mac not represent me

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



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



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



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



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