หน้าเว็บ

วันอังคารที่ 16 ธันวาคม พ.ศ. 2551

แก้ปัญหา Power Calibration Error ใน Nero

ไปคุ้ยๆแล้วเจอหลายวิธีด้วย แต่เจอหน้านึงรวมไปหลายอันก็ขอแปลกันมาเลยแล้วกัน

ซึ่งวิธีที่ผมใช้แล้วได้ผลคือข้อ 3 ครับ โดยผมทำที่เครื่อง Windows XP SP2 และ Nero 8

1. ลองเปลี่ยนแผ่น เค้าบอกว่าปัญหานี้เกิดขึ้นบ่อยๆกับแผ่นเปล่าราคาถูกที่คุณภาพห่วย

2. ลองเบิร์นโดยใช้ความเร็วการเขียนแผ่นที่ต่ำลง

3. Disable การทำงานของ IMAPI Service (เค้าบอกว่ามักจะแก้ปัญหาได้ และก็ผมก็ใช้วิธีนี้แล้วเวิร์ค)
-ไปที่ Control Panel -> Administrative Tools -> Services
- หา service ที่ชื่อ "IMAPI CD-Burning COM Service", คลิ๊กขวาแล้วเลือก properties
- เปลี่ยน Startup type เป็น Disabled.
- คลิ๊ก Apply.


4. ลองเปลี่ยน software ที่ใช้ในการเขียนแผ่นเป็นเวอร์ชันใหม่

5. ลอง upgrade เฟิร์มแวร์ของเครื่องเขียนแผ่น

6. ถ้าทำทุกวิธีข้างบนแล้วยังไม่ผ่านแสดงว่าปัญหาเกิดจากตัวอุปกรณ์เองไม่เกี่ยวกับซอฟต์แวร์ นำอุปกรณ์ไปให้ช่างทำความสะอาดเลนส์

7. ถ้ายังไม่ได้อีกก็แสดงว่าตัวหัวอ่านแผ่นคงเจ๊งไปแล้ว ไปหามาเปลี่ยนหรือซื้อใหม่ดีกว่า


ที่มา
http://www.megaleecher.net/Fix_Power_Calibration_Error
http://www.gidforums.com/t-1805.html

วันศุกร์ที่ 12 ธันวาคม พ.ศ. 2551

ใช้ python อ่านไฟล์ csv

วันนี้ต้องเขียนโปรแกรมอ่านค่าจากไฟล์ csv ซึ่งแปลงมาจากโปรแกรม spreadsheet (เช่น OOo Calc หรือ MS Excel) ก็เลยทดลองเขียนด้วย python ดู และไปเจอว่า python มี built-in module สำหรับจัดการ csv โดยเฉพาะเลย

สมมติว่าในไฟล์ filename.csv มีเนื้อหาไฟล์ดังนี้
3, a, xyz
8, t, www
4, x, abc

สามารถเขียนโปรแกรมได้แบบนี้
import csv

file = open("path/to/filename.csv", "r")
parser = csv.reader(file)

for field1, field2, field3 in parser:
print 'FIELD1=%s, FIELD2=%s, FIELD3=%s\n' % (field1, field2, field3)

file.close()

ผลลัพธ์ ได้ดังนี้

FIELD1=3, FIELD2=a, FIELD3=xyz
FIELD1= 8, FIELD2=t, FIELD3=www
FIELD1=4, FIELD2=x, FIELD3=abc

หรือว่าตรง for loop เราอาจเขียนแค่
for row in parser: แค่นี้ก็ได้ แล้วเวลาเรียกค่าก็ใช้ row[0], row[1], row[2] แบบนี้แทน

อ้างอิง
http://www.python.org/dev/peps/pep-0305/

วันจันทร์ที่ 8 ธันวาคม พ.ศ. 2551

รูป network icon สำหรับ Dia

สำหรับคนที่อยากทำ Network Diagram หรือ Network Map โดยใช้ Dia ซึ่งเป็นโปรแกรม Opensource (http://projects.gnome.org/dia/ หรือ dia-installer.sourceforge.net/ สำหรับ windows) แต่รู้สึกว่า ภาพมันไม่สวยเลย

ก็ไปค้นๆเจอคนใจดีทำ icon สำหรับอุปกรณ์ network เพื่อ Dia โดยเฉพาะ ถึงจะไม่มากเท่าไหร่ แต่ก็คลุมพวกอุปกรณ์พื้นฐานที่ใช้กันบ่อยๆอย่างพอเพียง

ภาพตัวอย่าง















ดาวน์โหลดได้ที่นี่เลย http://gnomediaicons.sourceforge.net/

แล้วก็แตกไฟล์ออกมา เอาของที่อยู่ใน sheets และ shapes ไปใส่ไว้ใน sheets และ shapes ที่ dia ในเครื่องเรา (เช่น /usr/local/dia หรือ C:\Program Files\dia)

โดยเวลาใช้งานรูปจะอยู่ในหมวด RIB-Network

วันพฤหัสบดีที่ 4 ธันวาคม พ.ศ. 2551

วิธีการ replace string ในหลายๆไฟล์ บน Linux

จริงๆแล้ววิธีการ replace string บน linux ทำได้หลายวิธี ขอลองนำเสนอ 2 วิธีด้วยกัน

วิธีแรก
ใช้ grep + perl
$ grep -rl OLDSTRING . | xargs perl -pi -e ’s/OLDSTRING/NEWSTRING/g’
วิธีที่สอง ใช้ grep + sed
$ grep -rl OLDSTRING . | xargs sed -e ’s/OLDSTRING/NEWSTRING/g’
อธิบาย
คำสั่ง grep จะช่วยเลือกไฟล์ที่มี OLDSTRING ประกอบอยู่โดยเริ่มตั้งแต่ current directory (.) เป็นต้นไป ซึ่งถ้าต้องการให้เริ่มที่ directory อื่นก็สามารถเปลี่ยน . เป็นรูปแบบอื่นได้

ส่วน option -r หมายถึงให้ recursive ทุกไฟล์และโฟลเดอร์
optoin -l หมายถึงเลือกเฉพาะไฟล์ที่มี OLDSTRING อยู่

ส่วน option ใน perl มีความหมายดังนี้
-e ที่อยู่ท้ายสุดคือ script ที่เราจะทำงาน นั่นคือคำสั่ง replace string global จาก OLDSTRING ให้เป็น NEWSTRING
-p คือให้ลูป script ด้วย
while (<>) {
# your script goes here
} continue {
print or die "-p destination: $!\n";
}
-i คือให้แทน <> ในลูปด้วยไฟล์ที่รับเข้ามา ซึ่งก็คือไฟล์ทั้งหมดที่รับมาจาก grep นั่นเอง

ส่วน xargs จะทำให้ perl รับอาร์กิวเมนต์ได้ไม่จำกัด คือ สามารถรองรับไฟล์จำนวนมากจาก grep ที่ส่งมาเป็นอาร์กิวเมนต์

ส่วนคำสั่ง sed นั้นเป็น stream editor ที่จะทำการ run คำสั่งที่ระบุไปยัง stream ของไฟล์ที่ส่งเข้ามาจาก grep
option -e คือ คือรับ expression script ที่จะกระทำกับ input ที่รับเข้ามา

ระบบที่ทดสอบ
OS: CentOS 5