Google
 

Friday, September 14, 2007

แปลง timestamp

โจทย์ คือ pw_lastauth คือ timestamp นับจากปี 1/1/1970
เราใช้วิธีแปลง โดยใช้ from_unixtime ครอบ field นั้นอีกที

$query = "select field_A, from_unixtime(field_B_which_is_timestamp) as login_time from table_name where from_unixtime(field_B_which_is_timestamp) > '2006-12-31 23:59:59'";

เพียงเท่านี้ก็ได้เวลา ที่คนอย่างเราเข้าใจแล้ว

Wednesday, September 12, 2007

ถ่ายโอนไฟล์ ที่มีโคล่อน

มีไฟล์ที่มีรูปแบบ maillog-2007-07-20-05:35:32.gz ต้องการโอนถ่ายข้ามเซิร์ฟเวอร์ ใช้วิธีนี้

scp ./maillog*.gz username@hostname:path/

เหตุผล: The './' or the initial '/' makes it ignore the ':' until after the whitespace.

Sunday, September 9, 2007

ปัญหาในการเปิด vdo บนเน็ต

มีคำถามมาจากที่ทำงานว่า ให้บริการ vdo บนเน็ต โดยใช้ mms protocol
และ file เปิดด้วย windows media

พบปัญหาบางเครื่องเปิดได้บ้าง ไม่ได้บ้าง
วิธีแก้ไข

- เปิดโปรแกรม windows media
- คลิกเมนู Tools -> คลิก Options -> Network tab
(กรณีที่หา เมนู Tools ไม่พบ ให้กด CTRL+M)

- check ถูก ทุก boxes ที่ปรากฎในหน้า Network

ข้อมูลจาก:
http://www.microsoft.com/windows/windowsmedia/player/

สร้าง table

กรณีที่ต้องการสร้าง table ใหม่ โดยมีโครงสร้างเหมือน table เก่า

create table new_table as select * from old_table where field = 'ไม่เคย match';


การ import ไฟล์ เข้า database ใช้คำสั่งนี้

LOAD DATA INFILE 'path/file' INTO TABLE table_name FIELDS TERMINATED BY '|';


ขอบันทึกไว้กันลืม

Monday, September 3, 2007

Notepad Plus

โปรแกรม Notepad++ เป็นโปรแกรม editor โปรแกรมหนึ่ง สามารถรองรับหลายๆ programming Language โดย Notepad++ เป็น opensource โปรแกรมหนึ่ง (ฟรี)

File Test Operators

A file test. This unary operator takes one argument, either a filename or a filehandle, and tests the associated file to see if something is true about it. If the argument is omitted, tests $_, except for -t, which tests STDIN. It returns 1 for true and '' for false, or the undefined value if the file doesn't exist. Precedence is higher than logical and relational operators, but lower than arithmetic operators. The operator may be any of:

-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size.
-s File has non-zero size (returns size).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO).
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-u File has setuid bit set.
-g File has setgid bit set.
-k File has sticky bit set.
-t Filehandle is opened to a tty.
-T File is a text file.
-B File is a binary file (opposite of -T).
-M Age of file in days when script started.
-A Same for access time.
-C Same for inode change time.


The interpretation of the file permission operators -r, -R, -w, -W, -x and -X is based solely on the mode of the file and the uids and gids of the user. There may be other reasons you can't actually read, write or execute the file. Also note that, for the superuser, -r, -R, -w and -W always return 1, and -x and -X return 1 if any execute bit is set in the mode. Scripts run by the superuser may thus need to do a stat() in order to determine the actual mode of the file, or temporarily set the uid to something else.

Example:


while (<>) {
chop;
next unless -f $_; # ignore specials
...
}

Note that -s/a/b/ does not do a negated substitution. Saying -exp($foo) still works as expected, however--only single letters following a minus are interpreted as file tests.

Google Notebook

Notebook : เป็น feature ใหม่บน google สามารถนำมาบันทึกเพื่อเตือนความจำ
หรือ บันทึกข้อมูล ความรู้ ใหม่ๆ หรือ url อะไรก็ได้ แล้วแต่ประยุกต์ใช้
และเป็น Centralized Informaion ในสำหรับตัวเราได้ด้วย เพราะไม่ต้อง save
หลายเครื่อง ออนไลน์ที่ไหนก็เห็นสิ่งที่เราบันทึก ( ไม่แนะนำ
ในการบันทึกรหัสผ่าน หรือ ความลับ ใดๆ)

นอกจากนีสามารถติดตั้ง Google Notebook plug-in ใช้ร่วมกับ Firefox
ทีนี้จะเห็นข้อความที่เราบันทึกไว้ คิวงานต่างๆ ได้ เมื่อเปิด Firefox
เป็นการเตือนความจำ :)

Monday, August 13, 2007

แตกไฟล์ที่มีนามสกุล tgz

ขอบันทึกไว้ ดาวน์โหลดโปรแกรมมา ได้ไฟล์นามสกุล .tgz แล้วจะแตกได้อย่างไร
ใช้คำสั่ง tar บน unix

tar zxf filename.tgz

Thursday, August 9, 2007

ทำอย่างไรดี ติดตั้ง PHP บน FreeBSD ไม่ได้

มีน้องๆ ถามมาว่า ติดตั้ง package ใน port ของ FreeBSD ไม่ได้ แก้ไขได้อย่างไร

/usr/ports/lang/php5-extensions
www# make install
On FreeBSD before 6.2 ports system unfortunately can not set default X11BASE by
itself so please help it a bit by setting X11BASE=${LOCALBASE} in make.conf.
On the other hand, if you do wish to use non-default X11BASE, please set variable USE_NONDEFAULT_X11BASE.
*** Error code 1

Stop.

วิธีแก้ไข

สร้างไฟล์ /etc/make.conf แล้วใส่ ลงไป
X11BASE=${LOCALBASE}

เพียงเท่านี้ก็ติดตั้ง package ได้แล้ว

Sunday, July 29, 2007

ติดตั้ง syslog-ng บน FreeBSD

เมื่อติดตั้ง FreeBSD มี syslog ถ้าต้องการใช้ syslog-ng ซึ่งสามารถ customize log file name เป็น ชื่อ อื่นได้ จึงลองใช้ดู

เริ่มต้น

cd /usr/ports/sysutils/syslog-ng
make & make install


เมื่อติดตั้งเรียบร้อยแล้ว แก้ไขที่ /etc/rc.conf เพื่อให้เรียกใช้ syslog-ng แทน
โดยเพิ่มบรรทัดนี้
syslog_ng_enable="YES"


และต้องการยกเลิกตัว syslog เดิม โดยเพิ่มบรรทัดนี้ใน /etc/rc.conf
syslogd_enable="NO"


หลังจากนั้น kill process syslogd เดิม โดยใช้คำสั่งนี้

kill `cat /var/run/syslog.pid`


ทำการ copy /usr/local/etc/syslog-ng/syslog-ng.conf.sample ให้ /usr/local/etc/syslog-ng/syslog-ng.conf

cp /usr/local/etc/syslog-ng/syslog-ng.conf.sample /usr/local/etc/syslog-ng/syslog-ng.conf


ทำการ start syslog-ng โดยรันคำสั่งนี้

usr/local/etc/rc.d/syslog-ng.sh start

เพียงเท่านี้ก็ได้ใช้ syslog-ng ไว้จะมาพูดใหม่

sendmail:: QueueLA

ปัญหาของระบบ mail่ เข้ามาถึง queue บาง message id มีการบันทึกใน log แล้วว่ามี mail เข้ามา แต่ sendmail ไม่ deliver อีเมล์ออกไปที่ mailbox ระหว่างที่หาสาเหตุใช้วิธี force แต่ละ message id

sendmail -qI[message id] -v


ที่แก้ไขปัญหาโดย เพิ่มค่าของ QueueLA ให้สูงกว่า RefuseLA ซึ่งโดย default QueueLA =8 และ RefuseLA =12

google groups และ Reference

Why's Teknote?

จุดเริ่มต้นของ blog นี้ต้องการบันทึกและถ่ายทอดประสบการณ์ด้านเทคนิค หรือ สิ่งที่สนใจด้านเทคนิค สำหรับชื่อ blog เป็นการผสมระหว่าง techno + note แล้วนำมาตัดเหลือเพียงคำว่า technote ด้วยคำว่า techno เป็นคำที่ซ้ำ จึงหาคำที่มีความหมายเช่นเดียวกับ techno ได้คำว่า tekno ซึ่งเป็นภาษาดัซช์ จึงเป็นที่มา teknote