2010年12月17日金曜日
Autotools (autoconf, automake, etc.)
ref -> http://www.narisa.com/forums/index.php?app=blog&module=display§ion=blog&blogid=5&showentry=1716
2010年10月18日月曜日
Face Detection and Digit Classification
http://inst.eecs.berkeley.edu/~cs188/sp08/projects/project8/webpage/index.html
2010年10月13日水曜日
เป้าหมาย
ref->http://guru.google.co.th/guru/thread?tid=531a3dcbfe1cc8f2
"Goals are dreams with deadlines.
“เป้าหมาย” คือความฝันที่มีกำหนดเวลาแน่นอน
คำตอบส่วนใหญ่ที่เรามักได้ยินเวลาถามว่า “เป้าหมายของคุณคืออะไร” คือ อยากมีความสุข อยากร่ำรวย ต้องการมีชื่อเสียง แต่สิ่งเหล่านี้แท้จริงแล้วไม่ใช่เป้าหมาย แต่เป็น “ความปรารถนา” ความปรารถนาเป็นความฝันที่ขาดแรงกระตุ้นเพราะเราหวังว่ามันจะเกิดขึ้นเองกับเราโดยเราไม่ต้องลงทุนลงแรงอะไร ซึ่งแตกต่างอย่างมากจากความหมายของเป้าหมาย
มีหลากหลายนิยามของคำว่า “ความสำเร็จ” ที่ผ่านสายตาของเรา หนึ่งในนั้นที่ดิฉันเห็นว่าดูจะสมเหตุสมผลที่สุดอันหนึ่งก็คือ “ความสำเร็จเป็นการบรรลุเป้าหมายที่มีค่าที่เราตั้งไว้” คงไม่มีใครปฏิเสธว่า ความสำเร็จไม่ใช่เรื่องของความบังเอิญ แต่เป็นสิ่งที่เกิดขึ้นจากการวางแผนและออกแบบ เริ่มต้นด้วยพันธสัญญาหรือเป้าหมายที่เฉพาะเจาะจงบ่มเพาะด้วยความปรารถนาที่แรงกล้าเป้าหมายเป็นก้าวแรกในพัฒนาการทุกอย่างของมวลมนุษยชาติ ผ่านกระบวนการเดิมๆ จากความฝันกลายมาเป็นเป้าหมาย จากเป้าหมายกลายมาเป็นการบรรลุเป้าประสงค์และทำให้เป็นจริงขึ้นมา
“เป้าหมาย” คือ ภาพที่ชัดเจนที่เราทำให้บรรลุเป็นจริงได้ ที่สำคัญคือเราเป็นคนลงมือทำให้มันเกิดขึ้นเอง ซึ่งแน่นอนต้องอาศัยพันธสัญญาที่เหนียวแน่น ความเอาจริงเอาจังการทำงานอย่างหนัก และจังหวะเวลา
การอยู่และใช้ชีวิตโดยไม่มีเป้าหมายเปรียบเหมือนกับการเดินทางที่ไร้จุดหมายเมื่อคุณไม่รู้ว่าจะไปสู่จุดหมายปลายทางที่ไหนก็ดูเหมือนว่าคุณจะเลือกไปถนนเส้นไหนก็ได้สะเปะสะปะ และลงเอยด้วยการไม่ไปถึงไหนเลย
สละเวลาเขียนเป้าหมายในชีวิตของคุณ! การเขียนเป้าหมายให้กับตัวเองก็เหมือนกับว่าเรากำลังร่างพิมพ์เขียวให้กับชีวิต ยิ่งเราสามารถระบุและทำให้เป้าหมายเฉพาะเจาะจงได้มากเท่าไร จิตใต้สำนึกของเราก็จะเห็นภาพสิ่งที่เราต้องการได้ชัดเจนมากขึ้นเท่านั้น และจะกำเนิดพลังของการโฟกัสเป้าหมายที่อะไรก็ฉุดไม่อยู่
ไม่จำเป็นที่เราจะต้องมีเป้าหมายเพียงอย่างเดียวเท่านั้น คุณสามารถมีเป้าหมายในด้านต่างๆ ของชีวิตได้ ไม่ว่าจะเป็นการงานธุรกิจ ครอบครัวและการศึกษา จะเป็นการช่วยเติมเต็มและเปิดให้ชีวิตมีการใฝ่หาประสบการณ์ที่รอบด้านมากขึ้นอีกด้วยค่ะ
ตั้งเป้าหมายแล้วได้อะไร?
• แรงกระตุ้น เป้าหมายเป็นตัวตั้งต้นของแรงกระตุ้นที่ให้เหตุผลดีๆ ในการก้าวไปข้างหน้า
• ความเป็นอิสระและเป็นตัวของตัวเอง เป้าหมายทำให้เรามีหนทางที่ชัดเจน ไม่ต้องตามกระแสหรือเส้นทางของคนหมู่มากเฟ้นหาเส้นทางที่เลือกเอง
• ทิศทางและจุดหมายปลายทางเป้าหมายทำให้เรารู้ว่า แต่ละก้าวที่เราจะก้าวต่อๆ ไป จะต้องไปในทิศทางใด และกำลังมุ่งไปสู่จุดหมายอะไร
• ความหมาย เป้าหมายช่วยสร้างความหมายของการมีชีวิตอยู่ รู้ว่าเราต้องการอะไรในชีวิต แทนที่จะอยู่ไปวันๆ โดยไร้จุดหมาย
• ความรื่นรมย์ เป้าหมายเป็นยาขนานเอกสำหรับอาการเบื่อหน่าย เพราะเราจะรู้สึกตื่นเต้นกับทุกสิ่งที่เราทำเพื่อให้ใกล้เป้าหมายมากขึ้นๆ ปัญหาและอุปสรรคที่เราต้องเผชิญระหว่างทางก็เป็นความท้าทายที่น่าสนใจมากขึ้น
• ศักยภาพใหม่ๆ เป้าหมายช่วยให้เราดึงศักยภาพออกมาใช้มากที่สุดเท่าที่เราจะทำได้ ยิ่งเราพัฒนาศักยภาพได้มากขึ้นเท่าไรเราก็จะยิ่งมีความมั่นใจในตัวเองเพิ่มมากขึ้นเท่านั้น
คุณอาจไม่เชื่อว่า เมื่อไหร่ก็ตามที่เรามีการตั้งเป้าหมายที่ชัดเจน และจริงจังกับการก้าวไปสู่เป้าหมาย เราจะมีแรงขับที่จะทำอะไรได้มากมายไม่ต้องกลัวที่จะต้องปรับเปลี่ยนเป้าหมาย ในขณะที่เวลาผ่านไปเราอาจมีความสนใจที่ต่างไป มีคุณค่าที่เรายึดถือเปลี่ยนไป และไม่ต้องกลัวที่จะเพิ่มเป้าหมายใหม่ๆ เข้ามา ในขณะที่เราก็บรรลุเป้าหมายเดิมที่เขียนไว้ไปด้วย
ดิฉันเชื่อว่าเราทุกคนมีความฝันค่ะและทุกความฝันก็มีค่าพอที่จะทำให้เป็นจริงค่ะ ลองเริ่มด้วยการแปรความฝันเป็นเป้าหมาย และก้าวไปข้างหน้าสู่เป้าหมายของคุณค่ะ"
"Goals are dreams with deadlines.
“เป้าหมาย” คือความฝันที่มีกำหนดเวลาแน่นอน
คำตอบส่วนใหญ่ที่เรามักได้ยินเวลาถามว่า “เป้าหมายของคุณคืออะไร” คือ อยากมีความสุข อยากร่ำรวย ต้องการมีชื่อเสียง แต่สิ่งเหล่านี้แท้จริงแล้วไม่ใช่เป้าหมาย แต่เป็น “ความปรารถนา” ความปรารถนาเป็นความฝันที่ขาดแรงกระตุ้นเพราะเราหวังว่ามันจะเกิดขึ้นเองกับเราโดยเราไม่ต้องลงทุนลงแรงอะไร ซึ่งแตกต่างอย่างมากจากความหมายของเป้าหมาย
มีหลากหลายนิยามของคำว่า “ความสำเร็จ” ที่ผ่านสายตาของเรา หนึ่งในนั้นที่ดิฉันเห็นว่าดูจะสมเหตุสมผลที่สุดอันหนึ่งก็คือ “ความสำเร็จเป็นการบรรลุเป้าหมายที่มีค่าที่เราตั้งไว้” คงไม่มีใครปฏิเสธว่า ความสำเร็จไม่ใช่เรื่องของความบังเอิญ แต่เป็นสิ่งที่เกิดขึ้นจากการวางแผนและออกแบบ เริ่มต้นด้วยพันธสัญญาหรือเป้าหมายที่เฉพาะเจาะจงบ่มเพาะด้วยความปรารถนาที่แรงกล้าเป้าหมายเป็นก้าวแรกในพัฒนาการทุกอย่างของมวลมนุษยชาติ ผ่านกระบวนการเดิมๆ จากความฝันกลายมาเป็นเป้าหมาย จากเป้าหมายกลายมาเป็นการบรรลุเป้าประสงค์และทำให้เป็นจริงขึ้นมา
“เป้าหมาย” คือ ภาพที่ชัดเจนที่เราทำให้บรรลุเป็นจริงได้ ที่สำคัญคือเราเป็นคนลงมือทำให้มันเกิดขึ้นเอง ซึ่งแน่นอนต้องอาศัยพันธสัญญาที่เหนียวแน่น ความเอาจริงเอาจังการทำงานอย่างหนัก และจังหวะเวลา
การอยู่และใช้ชีวิตโดยไม่มีเป้าหมายเปรียบเหมือนกับการเดินทางที่ไร้จุดหมายเมื่อคุณไม่รู้ว่าจะไปสู่จุดหมายปลายทางที่ไหนก็ดูเหมือนว่าคุณจะเลือกไปถนนเส้นไหนก็ได้สะเปะสะปะ และลงเอยด้วยการไม่ไปถึงไหนเลย
สละเวลาเขียนเป้าหมายในชีวิตของคุณ! การเขียนเป้าหมายให้กับตัวเองก็เหมือนกับว่าเรากำลังร่างพิมพ์เขียวให้กับชีวิต ยิ่งเราสามารถระบุและทำให้เป้าหมายเฉพาะเจาะจงได้มากเท่าไร จิตใต้สำนึกของเราก็จะเห็นภาพสิ่งที่เราต้องการได้ชัดเจนมากขึ้นเท่านั้น และจะกำเนิดพลังของการโฟกัสเป้าหมายที่อะไรก็ฉุดไม่อยู่
ไม่จำเป็นที่เราจะต้องมีเป้าหมายเพียงอย่างเดียวเท่านั้น คุณสามารถมีเป้าหมายในด้านต่างๆ ของชีวิตได้ ไม่ว่าจะเป็นการงานธุรกิจ ครอบครัวและการศึกษา จะเป็นการช่วยเติมเต็มและเปิดให้ชีวิตมีการใฝ่หาประสบการณ์ที่รอบด้านมากขึ้นอีกด้วยค่ะ
ตั้งเป้าหมายแล้วได้อะไร?
• แรงกระตุ้น เป้าหมายเป็นตัวตั้งต้นของแรงกระตุ้นที่ให้เหตุผลดีๆ ในการก้าวไปข้างหน้า
• ความเป็นอิสระและเป็นตัวของตัวเอง เป้าหมายทำให้เรามีหนทางที่ชัดเจน ไม่ต้องตามกระแสหรือเส้นทางของคนหมู่มากเฟ้นหาเส้นทางที่เลือกเอง
• ทิศทางและจุดหมายปลายทางเป้าหมายทำให้เรารู้ว่า แต่ละก้าวที่เราจะก้าวต่อๆ ไป จะต้องไปในทิศทางใด และกำลังมุ่งไปสู่จุดหมายอะไร
• ความหมาย เป้าหมายช่วยสร้างความหมายของการมีชีวิตอยู่ รู้ว่าเราต้องการอะไรในชีวิต แทนที่จะอยู่ไปวันๆ โดยไร้จุดหมาย
• ความรื่นรมย์ เป้าหมายเป็นยาขนานเอกสำหรับอาการเบื่อหน่าย เพราะเราจะรู้สึกตื่นเต้นกับทุกสิ่งที่เราทำเพื่อให้ใกล้เป้าหมายมากขึ้นๆ ปัญหาและอุปสรรคที่เราต้องเผชิญระหว่างทางก็เป็นความท้าทายที่น่าสนใจมากขึ้น
• ศักยภาพใหม่ๆ เป้าหมายช่วยให้เราดึงศักยภาพออกมาใช้มากที่สุดเท่าที่เราจะทำได้ ยิ่งเราพัฒนาศักยภาพได้มากขึ้นเท่าไรเราก็จะยิ่งมีความมั่นใจในตัวเองเพิ่มมากขึ้นเท่านั้น
คุณอาจไม่เชื่อว่า เมื่อไหร่ก็ตามที่เรามีการตั้งเป้าหมายที่ชัดเจน และจริงจังกับการก้าวไปสู่เป้าหมาย เราจะมีแรงขับที่จะทำอะไรได้มากมายไม่ต้องกลัวที่จะต้องปรับเปลี่ยนเป้าหมาย ในขณะที่เวลาผ่านไปเราอาจมีความสนใจที่ต่างไป มีคุณค่าที่เรายึดถือเปลี่ยนไป และไม่ต้องกลัวที่จะเพิ่มเป้าหมายใหม่ๆ เข้ามา ในขณะที่เราก็บรรลุเป้าหมายเดิมที่เขียนไว้ไปด้วย
ดิฉันเชื่อว่าเราทุกคนมีความฝันค่ะและทุกความฝันก็มีค่าพอที่จะทำให้เป็นจริงค่ะ ลองเริ่มด้วยการแปรความฝันเป็นเป้าหมาย และก้าวไปข้างหน้าสู่เป้าหมายของคุณค่ะ"
2010年10月11日月曜日
2010年10月9日土曜日
2010年10月6日水曜日
2010年10月1日金曜日
2010年9月28日火曜日
Fun with Python, OpenCV and face detection
http://blog.jozilla.net/2008/06/27/fun-with-python-opencv-and-face-detection/
Installing OpenCV on Linux (Ubuntu)
http://abhitak.wordpress.com/2009/08/29/installing-opencv-on-linux-ubuntu-9-04/
2010年8月25日水曜日
Find msg in file on Windows
gfind . "(" -path "*/SCCS" -o -path "*/RCS" -o -path "*/CVS" -o -path "*/MCVS" -o -path "*/.svn" -o -path "*/.git" -o -path "*/.hg" -o -path "*/.bzr" -o -path "*/_MTN" -o -path "*/_darcs" -o -path "*/{arch}" ")" -prune -o -type f "(" -iname "*.h" -o -iname "*.c" -o -iname "*.cpp" ")" -exec grep -i -nH -e "find message" {} NUL ";"
gfind = gnu find command
. = start path
gfind = gnu find command
. = start path
2010年8月23日月曜日
EMACS function list in c source file
char foo (int a, int b)
unsigned int bar(int a, int b)
static unsigned short foobar (int a)
grep -nH -x -P "^([\w\d]+|[\w\d]+\s+[\w\d]+|[\w\d]+\s+[\w\d]+\s+[\w\d]+)\s+(.+)\s*\(.+\)\s*$" filename
-n, --line-number print line number with output lines
-H, --with-filename print the filename for each match
-x, --line-regexp force PATTERN to match only whole lines
-P, --perl-regexp PATTERN is a Perl regular expression
unsigned int bar(int a, int b)
static unsigned short foobar (int a)
grep -nH -x -P "^([\w\d]+|[\w\d]+\s+[\w\d]+|[\w\d]+\s+[\w\d]+\s+[\w\d]+)\s+(.+)\s*\(.+\)\s*$" filename
-n, --line-number print line number with output lines
-H, --with-filename print the filename for each match
-x, --line-regexp force PATTERN to match only whole lines
-P, --perl-regexp PATTERN is a Perl regular expression
2010年4月1日木曜日
Embedded Programming with the GNU Toolchain
Embedded Programming with the GNU Toolchain
-->http://www.bravegnu.org/gnu-eprog/index.htmlUboot
Upgrading homeserver hardware
-->http://blog.thebehrens.net/2009/11/22/upgrading-homeserver-hardware/QEMU
QEMU
-->http://wiki.archlinux.org/index.php/QEMUBare metal
-->http://wiki.openmoko.org/wiki/Bare_metal\Simplest bare metal program for ARM
-->http://balau82.wordpress.com/2010/02/14/simplest-bare-metal-program-for-arm/Hello world for bare metal ARM using QEMU
-->http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/U-boot for ARM on QEMU
-->http://balau82.wordpress.com/2010/03/10/u-boot-for-arm-on-qemu/QEMU Emulator User Documentation
-->http://wiki.qemu.org/download/qemu-doc.html#Linux-User-space-emulator2010年2月15日月曜日
2010年2月10日水曜日
Trac
เอามาจาก web -> http://www.thaiopensource.org/howto/ติดตั้ง-trac-เอามาบริหารโครงการซอฟต์แวร์กัน
Trac เป็นโปรแกรมบริหารโครงการซอฟต์แวร์บนเว็บเหมือนๆ กับ gForce, SourceForge, RedMind แต่แตกต่างตรงที่ Trac ตัวเล็กกระทัดรัดสามารถใช้งาน Ticket, Search, Browse โค้ดจาก SCM ต่างๆ ได้ และยังใช้ Workflow ได้อีกด้วย Trac กำหนดเนื้อหาให้เป็นแบบ Wiki ทำให้คุณสามารถสร้างหน้าเนื้อหาต่างๆ ที่คุณต้องการได้อย่างไม่จำกัด การติดตั้ง Trac มีวิธีการหลายวิธีแต่วิธีที่จะนำมาเป็น How-To ในครั้งนี้คือการใช้ Trac ร่วมกับ Apache และ SVN ครับ เครื่อง server ที่ผมใช้ติดตั้ง Ubuntu Server 9.04 Jaunty Jackalop มี IP Address เป็น 192.168.1.111 ชื่อเครื่องคือ trac.example.com มาเริ่มกันเลย
แปลง ร่างเป็น root ก่อนครับ
sudo -s
ติดตั้งโปรแกรมที่เราต้องใช้ กัน
apt-get install apache2 libapache2-mod-python2.4 libapache2-svn python-setuptools subversion python-subversion
หา จุดติดตั้งเหมาะๆ ให้กับ Trac ผมติดตั้งที่ /var/lib/trac ครับ สร้าง directory ขึ้นมาเลยครับ
mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac
หาจุดติดตั้งเหมาะๆ ให้กับ svn ผมติดตั้งที่ /var/lib/svn สร้าง directory ขึ้นมาเลยครับ
mkdir /var/lib/svn
สร้าง repository ให้กับโครงการ sample เราครับ
mkdir /var/lib/svn/sample
svnadmin create /var/lib/svn/sample
จาก นั้นสร้าง project ตัวอย่างมาสักอันเอาชื่อ sample ละกันครับ
trac-admin /var/lib/trac/sample initenv
trac-admin /var/lib/trac/sample permission add admin TRAC_ADMIN
สร้าง password ไฟล์ให้กับ trac
htpasswd -c /var/lib/trac/.htpasswd admin
สร้าง authz สำหรับ svn
nano /etc/trac/.authz
ใส่ ข้อมูลลงไปดังนี้
[/]
* =rw
จากนั้น chown ให้ apache อ่านและเขียนไฟล์ของ repo และ trac ได้
chown -R www-data /var/lib/svn/sample
chown -R www-data /var/lib/trac
สร้างไฟล์ virtual host สำหรับ trac
nano /etc/apache2/sites-available/trac
ใส่ ข้อมูลดังนี้ครับ
ServerName trac.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
## trac ##
#set up Trac handling
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac/
PythonOption TracUriRoot /projects
AuthType Basic
AuthName "Trac"
AuthUserFile /var/lib/trac/.htpasswd
Require valid-user
## svn ##
DAV svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/lib/trac/.htpasswd
AuthzSVNAccessFile /var/lib/trac/.authz
SVNParentPath /home/svn
Require valid-user
## SSL Self-Sign by using command
## openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
#SSLEngine on
#SSLCertificateFile /etc/apache2/ssl/apache.pem
เพิ่ม trac ลงใน site-enable
a2ensite trac
reload คอนฟิกของ apache
/etc/init.d/apache2 reload
จากนั้นก็เปิดเบราเซอร์ เบราวส์ไปที่ repo ของโครงการ sample เพื่อทดสอบ
http://trac.example.com/svn/sample
จะ เห็นว่าเป็น Revision 0 : /
เบราวส์ไปที่ trac ของโครงการ sample จะเห็นหน้า trac ของโครงการ
http://trac.example.com/projects/sample
ติดตั้ง plugin เพิ่มเติมได้จาก easy_install
easy_install -U setuptools
สำหรับ plug-in ที่น่าใช้งานมีหลายตัวดัวยกัน ผมแนะนำ plugin ที่ผมชอบก็แล้วกันครับ ตัวแรกเป็น TracAccountManager เพราะจะช่วยให้เราจัดการผู้ใช้ได้ง่ายมากขึ้น TracSpamFilter ป้องกันการโพสของ SPAM ส่วน plug-in อื่นๆ ก็ลองหามาสดสอบกันได้ครับ
Trac เป็นโปรแกรมบริหารโครงการซอฟต์แวร์บนเว็บเหมือนๆ กับ gForce, SourceForge, RedMind แต่แตกต่างตรงที่ Trac ตัวเล็กกระทัดรัดสามารถใช้งาน Ticket, Search, Browse โค้ดจาก SCM ต่างๆ ได้ และยังใช้ Workflow ได้อีกด้วย Trac กำหนดเนื้อหาให้เป็นแบบ Wiki ทำให้คุณสามารถสร้างหน้าเนื้อหาต่างๆ ที่คุณต้องการได้อย่างไม่จำกัด การติดตั้ง Trac มีวิธีการหลายวิธีแต่วิธีที่จะนำมาเป็น How-To ในครั้งนี้คือการใช้ Trac ร่วมกับ Apache และ SVN ครับ เครื่อง server ที่ผมใช้ติดตั้ง Ubuntu Server 9.04 Jaunty Jackalop มี IP Address เป็น 192.168.1.111 ชื่อเครื่องคือ trac.example.com มาเริ่มกันเลย
แปลง ร่างเป็น root ก่อนครับ
sudo -s
ติดตั้งโปรแกรมที่เราต้องใช้ กัน
apt-get install apache2 libapache2-mod-python2.4 libapache2-svn python-setuptools subversion python-subversion
หา จุดติดตั้งเหมาะๆ ให้กับ Trac ผมติดตั้งที่ /var/lib/trac ครับ สร้าง directory ขึ้นมาเลยครับ
mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac
หาจุดติดตั้งเหมาะๆ ให้กับ svn ผมติดตั้งที่ /var/lib/svn สร้าง directory ขึ้นมาเลยครับ
mkdir /var/lib/svn
สร้าง repository ให้กับโครงการ sample เราครับ
mkdir /var/lib/svn/sample
svnadmin create /var/lib/svn/sample
จาก นั้นสร้าง project ตัวอย่างมาสักอันเอาชื่อ sample ละกันครับ
trac-admin /var/lib/trac/sample initenv
trac-admin /var/lib/trac/sample permission add admin TRAC_ADMIN
สร้าง password ไฟล์ให้กับ trac
htpasswd -c /var/lib/trac/.htpasswd admin
สร้าง authz สำหรับ svn
nano /etc/trac/.authz
ใส่ ข้อมูลลงไปดังนี้
[/]
* =rw
จากนั้น chown ให้ apache อ่านและเขียนไฟล์ของ repo และ trac ได้
chown -R www-data /var/lib/svn/sample
chown -R www-data /var/lib/trac
สร้างไฟล์ virtual host สำหรับ trac
nano /etc/apache2/sites-available/trac
ใส่ ข้อมูลดังนี้ครับ
ServerName trac.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
## trac ##
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac/
PythonOption TracUriRoot /projects
AuthType Basic
AuthName "Trac"
AuthUserFile /var/lib/trac/.htpasswd
Require valid-user
## svn ##
DAV svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/lib/trac/.htpasswd
AuthzSVNAccessFile /var/lib/trac/.authz
SVNParentPath /home/svn
Require valid-user
## SSL Self-Sign by using command
## openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
#SSLEngine on
#SSLCertificateFile /etc/apache2/ssl/apache.pem
เพิ่ม trac ลงใน site-enable
a2ensite trac
reload คอนฟิกของ apache
/etc/init.d/apache2 reload
จากนั้นก็เปิดเบราเซอร์ เบราวส์ไปที่ repo ของโครงการ sample เพื่อทดสอบ
http://trac.example.com/svn/sample
จะ เห็นว่าเป็น Revision 0 : /
เบราวส์ไปที่ trac ของโครงการ sample จะเห็นหน้า trac ของโครงการ
http://trac.example.com/projects/sample
ติดตั้ง plugin เพิ่มเติมได้จาก easy_install
easy_install -U setuptools
สำหรับ plug-in ที่น่าใช้งานมีหลายตัวดัวยกัน ผมแนะนำ plugin ที่ผมชอบก็แล้วกันครับ ตัวแรกเป็น TracAccountManager เพราะจะช่วยให้เราจัดการผู้ใช้ได้ง่ายมากขึ้น TracSpamFilter ป้องกันการโพสของ SPAM ส่วน plug-in อื่นๆ ก็ลองหามาสดสอบกันได้ครับ
2010年2月3日水曜日
Lighttpd install perl
ref -> http://www.cyberciti.biz/tips/howto-lighttpd-configure-perl-mysql-chrooted-jail.html
Lighttpd install perl, mysql support in chrooted jail
by Vivek Gite · 0 comments
Lighttpd logo
Perl is Practical Extraction and Report Language, which is quite famous and used by many web application. A Perl5 database interface to the MySQL database is provided by libdbd perl mysql shared library.
A note to readers
Following article is about running lighttpd perl in secure chrooted jail.
If you just need to run perl cgi-bin program out of box, please follow this previous article.
You can install perl support via mod_fastcgi or mod_cgi. Following are essential steps to run perl based application in chrooted lighttpd setup along with MySQL
This article is part of securing and running Lighttpd in chrooted jail.
Step #1: Enable mod_cgi
# lighty-enable-mod cgiOutput:
Available modules: auth cgi cml fastcgi proxy simple-vhost ssi ssl trigger-b4-dl userdir
Already enabled modules:
Enabling cgi: ok
Run /etc/init.d/lighttpd force-reload to enable changes
Now modify the file /etc/lighttpd/conf-enabled/10-cgi.conf file as per our chrooted jail setup:
# cp /etc/lighttpd/conf-enabled/10-cgi.conf /root/
# vi /etc/lighttpd/conf-enabled/10-cgi.conf
Modify the file as follows:
server.modules += ( "mod_cgi" )
alias.url += ( "/cgi-bin/" => "/home/lighttpd/cgi-bin/" )
cgi.assign = (
".pl" => "/usr/bin/perl",
)
Save and close the file.
Step #2: Prepare the file system for perl
# mkdir /webroot/usr/share -p
# mkdir /webroot/usr/lib -p
# mkdir /webroot/home/lighttpd/cgi-bin/ -p
# chown www-data:www-data /webroot/home/lighttpd/cgi-bin/
Step #3: Put Perl in the jail
Copy /usr/bin/perl to /webroot/usr/bin directory:# cp /usr/bin/perl /webroot/usr/bin
Install shared object/libraries used by perl:# /bin/l2chroot /usr/bin/perl
Now copy all perl files and modules stored in /usr directory:
# cp -avr /usr/share/perl /webroot/usr/share
# cp -avr /usr/share/perl5 /webroot/usr/share
# cp -avr /usr/lib/perl /webroot/usr/lib
# cp -avr /usr/lib/perl5 /webroot/usr/lib
Step #4: Put Perl MySQL DBD shared libraries in the jail
Copy shared libraries needed to load perl mysql.so (which is stored at /webroot/usr/lib/perl5/auto/DBD/mysql/mysql.so). Type the following command:
# /bin/l2chroot /usr/lib/perl5/auto/DBD/mysql/mysql.so
Please note that you have just enabled perl mysql support. However /usr/lib/perl5/ directory contains other shared object used by perl. You need to enable them to use rest of Perl features.
Step #5: Restart the lighttpd
# /etc/init.d/lighttpd restart
Test your perl+mysql setup
Copy following files to your /webroot/home/lighttpd/cgi-bin/ directory.
* db.pl: Test MySQL database connectivity (perl script), make sure you modify this file for correct MySQL server hostname, username and password.
* index.pl: simple perl program
Open a web browser and run http://yourdomain.com/cgi-bin/db.pl and http://yourdomain.com/cgi-bin/index.pl
Lighttpd install perl, mysql support in chrooted jail
by Vivek Gite · 0 comments
Lighttpd logo
Perl is Practical Extraction and Report Language, which is quite famous and used by many web application. A Perl5 database interface to the MySQL database is provided by libdbd perl mysql shared library.
A note to readers
Following article is about running lighttpd perl in secure chrooted jail.
If you just need to run perl cgi-bin program out of box, please follow this previous article.
You can install perl support via mod_fastcgi or mod_cgi. Following are essential steps to run perl based application in chrooted lighttpd setup along with MySQL
This article is part of securing and running Lighttpd in chrooted jail.
Step #1: Enable mod_cgi
# lighty-enable-mod cgiOutput:
Available modules: auth cgi cml fastcgi proxy simple-vhost ssi ssl trigger-b4-dl userdir
Already enabled modules:
Enabling cgi: ok
Run /etc/init.d/lighttpd force-reload to enable changes
Now modify the file /etc/lighttpd/conf-enabled/10-cgi.conf file as per our chrooted jail setup:
# cp /etc/lighttpd/conf-enabled/10-cgi.conf /root/
# vi /etc/lighttpd/conf-enabled/10-cgi.conf
Modify the file as follows:
server.modules += ( "mod_cgi" )
alias.url += ( "/cgi-bin/" => "/home/lighttpd/cgi-bin/" )
cgi.assign = (
".pl" => "/usr/bin/perl",
)
Save and close the file.
Step #2: Prepare the file system for perl
# mkdir /webroot/usr/share -p
# mkdir /webroot/usr/lib -p
# mkdir /webroot/home/lighttpd/cgi-bin/ -p
# chown www-data:www-data /webroot/home/lighttpd/cgi-bin/
Step #3: Put Perl in the jail
Copy /usr/bin/perl to /webroot/usr/bin directory:# cp /usr/bin/perl /webroot/usr/bin
Install shared object/libraries used by perl:# /bin/l2chroot /usr/bin/perl
Now copy all perl files and modules stored in /usr directory:
# cp -avr /usr/share/perl /webroot/usr/share
# cp -avr /usr/share/perl5 /webroot/usr/share
# cp -avr /usr/lib/perl /webroot/usr/lib
# cp -avr /usr/lib/perl5 /webroot/usr/lib
Step #4: Put Perl MySQL DBD shared libraries in the jail
Copy shared libraries needed to load perl mysql.so (which is stored at /webroot/usr/lib/perl5/auto/DBD/mysql/mysql.so). Type the following command:
# /bin/l2chroot /usr/lib/perl5/auto/DBD/mysql/mysql.so
Please note that you have just enabled perl mysql support. However /usr/lib/perl5/ directory contains other shared object used by perl. You need to enable them to use rest of Perl features.
Step #5: Restart the lighttpd
# /etc/init.d/lighttpd restart
Test your perl+mysql setup
Copy following files to your /webroot/home/lighttpd/cgi-bin/ directory.
* db.pl: Test MySQL database connectivity (perl script), make sure you modify this file for correct MySQL server hostname, username and password.
* index.pl: simple perl program
Open a web browser and run http://yourdomain.com/cgi-bin/db.pl and http://yourdomain.com/cgi-bin/index.pl
登録:
投稿 (Atom)