หน้าเว็บ

วันอาทิตย์ที่ 9 มกราคม พ.ศ. 2554

วิธี switch version ของ java บน ubuntu

ในกรณีที่เราลง java ไว้หลาย version เช่น 1.5, 1.6 แล้วเราต้องการเปลี่ยนเวอร์ชันให้ใช้คำสั่ง

sudo update-alternatives --config java

จะมีรายการ java ทั้งหมดที่มีในเครื่องขึ้นมาให้เลือก ก็ให้เลือกเลขที่ต้องการ เป็นอันเสร็จ

สามารถตรวจสอบว่าตอนนี้ version เป็นอะไรได้ด้วยคำสั่ง

java -version


ระบบที่ทดสอบ
OS: Ubuntu 10.10

ที่มา
http://ubuntuforums.org/showthread.php?t=655101

วิธีทำให้ Python เรียก script อื่นทำงาน (execute external script)

ถ้าเรามี script ไฟล์ python (.py) อยู่ไฟล์นึง แล้วเราอยากให้ script ไฟล์ python อีกฝ่ายมาเรียกไฟล์แรกทำงาน(คล้ายๆการ include ใน php) ทำได้ดังนี้

สมมติว่ามีไฟล์ hello.py ซึ่งมีโค้ดดังนี้อยู่
print 'hello world'


คราวนี้ในไฟล์ที่สองชื่อ run.py จะเรียกใช้ hello.py

วิธีแรก
ในไฟล์ run.py ให้ใช้คำสั่ง execfile

...
execfile('hello.py')
...


กรณีแรกนี้คือสั่งเรียกไฟล์ python อื่น แต่ว่าถ้าเราต้องการเรียก script หรือ shell command ใดๆนอกจาก python ก็ทำได้เหมือนกัน โดยใช้วิธีที่สอง

วิธีที่สอง
ในไฟล์ run.py ให้ import โมดูลชื่อ os แล้วเรียก os.system(command) เช่น

import os
...
os.system('python hello.py')
...


หรือ

import os
...
os.system('cat hello.py | grep hello')
...


สำหรับวิธีแรกจะใช้ได้กับ python-2.x แต่ถ้าเป็น python-3.x ให้ใช้วิธีตาม link นี้แทน http://stackoverflow.com/questions/436198/what-is-an-alternative-to-execfile-in-python-3-0

ระบบที่ทดสอบ
Python: 2.6.6
OS: Ubunut 10.10

ที่มา
http://stackoverflow.com/questions/1027714/how-to-execute-a-file-within-the-python-interpreter

วันศุกร์ที่ 7 มกราคม พ.ศ. 2554

วิธีตรวจสอบว่า PHP request เป็น GET หรือ POST

มีหลายๆครั้งที่เราต้องการให้โค้ด php ไฟล์หนึ่งรองรับทั้ง GET และ POST ดังนั้นจะต้องมีส่วนที่ใช้ในการตรวจสอบว่า request ที่เข้ามายังหน้าเว็บเป็นประเภท GET หรือเป็นประเภท POST วิธีทำก็ง่ายๆดังนี้

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// …
}


ระบบที่ทดสอบ
PHP: 5

ที่มา:
http://stackoverflow.com/questions/1372147/php-check-whether-a-request-is-get-or-post

วันอังคารที่ 4 มกราคม พ.ศ. 2554

วิธี FTP แต่ไม่เอา (exclude) บาง folder

มีรุ่นน้องถามมาว่าถ้าอยาก FTP เอาไฟล์แต่ว่าไม่อยากเอาโฟลเดอร์ที่มีชื่อบางอย่าง เช่น โฟลเดอร์ .svn ที่มีอยู่ในทุกๆโฟลเดอร์ย่อยมาด้วยจะทำยังไง

จริงๆก็คงทำได้หลายวิธี แต่วิธีที่ผมชอบสุดคงเป็น wget ครับ

wget -r ftp://url/folder --exclude-directories="*/foldername"


เช่น ถ้าต้องการ copy ตั้งแต่โฟลเดอร์ xyz ลงไปทั้งหมด แต่ไม่เอาโฟลเดอร์ .svn ก็ทำดังนี้

wget -r ftp://abc.com/xyz --exclude-directories="*/.svn"


ในกรณีที่ต้องมี username, password ก็ให้ execute command สำหรับการ log in ไปก่อน ดังนี้

wget --execute "login=username" --execute "passwd=password" -r ftp://abc.com/xyz --exclude-directories="*/.svn"

จริงๆพวก username, password ใส่ไว้รวมกับ ftp://username:password@abc.com/xyz เลยก็ได้ แต่จะมีปัญหาถ้า username มี special character เช่น เครื่องหมาย "@"

ระบบที่ทดสอบ
OS: Ubuntu 10.10

อ้างอิง
http://www.gnu.org/software/wget/manual/wget.html

วันจันทร์ที่ 29 พฤศจิกายน พ.ศ. 2553

คำสั่งเปลี่ยนชื่อ Table ใน MySQL

ตรงตัวครับ คำสั่งเปลี่ยนชื่อ Table ใน MySQL สำหรับเวลาที่สร้าง Table เสร็จแล้วต้องการเปลี่ยนชื่อในภายหลัง

RENAME TABLE oldtablename TO newtablename


ระบบที่ทดสอบ

MySQL: 5.1.49

วันเสาร์ที่ 16 ตุลาคม พ.ศ. 2553

Middle Scrolling ของ Thinkpad บน Ubuntu 10.10 Maverick

ให้ลง package ที่ชื่อว่า gpointing-device-settings

sudo apt-get install gpointing-device-settings

เมื่อลงเสร็จบางคนอาจจะสามารถทำ middle scrolling ได้เลย แต่ถ้าไม่ได้ให้สั่ง

gpointing-device-settings

แล้วให้เลือก Use wheel emulation
แล้วให้อยากให้มัน Scroll แนวตั้งหรือแนวนอนได้ก็ให้เลือก Enable vertical/horizontal scroll ตามต้องการ

เวลาใช้งานก็กดกลางค้างไว้ แล้วลาก track point ขึ้นลงหรือซ้ายขวาตามต้องการ

ระบบที่ทดสอบ
OS: Ubuntu 10.10 Maverick

ที่มา
http://psung.blogspot.com/2010/09/thinkpad-trackpoint-scrolling-in-ubuntu.html

วันอาทิตย์ที่ 10 ตุลาคม พ.ศ. 2553

แก้ปัญหา compile Android Error Debug Certificate Expired

ถ้าใครลง Android แล้วพอคอมไพล์เกิดปัญหาคล้ายๆดังนี้

[2010-10-10 00:07:56 - Test] ERROR: Unable to open class file /path/to/androidproject/gen/com/example/androidproject/R.java: No such file or directory\R.java: No such file or directory
[2010-10-10 00:07:56 - Test] ERROR: Error generating final archive: Debug certificate expired on dd/MM/yyyy


ให้แก้โดยไปที่ ~/.android/ แล้วลบ debug.keystore ทิ้งซะ แล้วให้ทำการสร้างใหม่ด้วยคำสั่ง

%JAVA_HOME%\bin\keytool -genkey -keypass android -keystore debug.keystore -alias androiddebugkey -storepass android -validity 100000 -dname "CN=Android Debug,O=Android,C=US"

โดย %JAVA_HOME% คือ path ชี้ไปยังที่อยู่ของ jdk เช่น /usr/lib/jvm/java-6-sun เป็นต้น

เสร็จแล้วให้ลองปิด eclipse แล้วเปิดใหม่
แล้ว clean project แล้ว build ใหม่

ระบบที่ทดสอบ
OS: Ubuntu 10.04
IDE: Eclipse 3.5.2
AndroidSDK: 7 (2.1)

ที่มา
http://www.board.esanupdate.com/index.php/topic,5308.0.html