Recent twitter entries...

  •  

CPAN ตัวรวบรวม library ภาษา Perl

0

Posted on : 27-12-2010 | By : admin | In : CentOS, directadmin, Linux

CPAN เป็นที่รวบรวมมอดูลและไลบรารีต่างๆ ให้ภาษา Perl สามารถใช้ในการติดตั้ง packages ต่างของภาษา Perl ได้อย่างง่ายดาย

CPAN คล้ายกับ PEAR ของ PHP นั่นเอง

การติดตั้ง cpan

ใน CentOS สามารถใช้คำสั่ง

yum install perl-libwww-perl

เพื่อน install ตัว cpan ได้เลย

ตัวอย่างการเข้า shell ของ cpan

[root@serverscripts]# cpan
cpan>

เมื่อต้องการ install package ใดๆ ก็ใช้คำสั่ง

cpan>install Archive::Tar

เมื่อต้องการออกจาก cpan shell ให้ใช้คำสั่ง exit

นอกจากนี้ที่ prompt ของ system สามารถ สั่งงานได้เลยโดยไม่ต้องเข้า shell ของ CPAN เช่น

[root@serverscripts]#cpan install Archive::Tar Digest::SHA IP::Country Razor2 Net::Ident Mail::DKIM

ตัวนี้จะจำเป็นเวลาที่เราต้องการลงโปรแกรมที่ใช้ libraries ต่างๆของ Perl จำนวนมาก เช่น Spamassasin เป็นต้น

ปรับแต่ง kernel รีดพลังให้ Linux

0

Posted on : 22-12-2010 | By : admin | In : CentOS, Linux

โดยปกติแล้วโดย default Linux จะตั้งค่าของ kernel มาให้แล้ว แต่แน่นอนว่าจะเป็นค่ากลางๆ สำหรับ hardware แบบกลางๆ

ถ้าหากเราต้องการรีดพลังให้สูงสุด เราสามารถทำได้ดังนี้
1. แก้ไขไฟล์ /etc/sysctl.conf
ตัวอย่างไฟล์ sysctl แบบที่ปรับแต่งแล้ว
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456
# Disables packet forwarding
net.ipv4.ip_forward=0
# Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Disables the magic-sysrq key
kernel.sysrq = 0
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 15
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1200
# Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
# Increases the size of the socket queue (effectively, q0).
net.ipv4.tcp_max_syn_backlog = 1024

# Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and# sysctl.conf(5) for more details.
# Controls IP packet forwardingnet.ipv4.ip_forward = 0
# Controls source route verificationnet.ipv4.conf.default.rp_filter = 1
# Do not accept source routingnet.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernelkernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename# Useful for debugging multi-threaded applicationskernel.core_uses_pid = 1
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in byteskernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queuekernel.msgmax = 65536
# Controls the maximum shared segment size, in byteskernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pageskernel.shmall = 268435456
# Disables packet forwardingnet.ipv4.ip_forward=0
# Disables IP source routingnet.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.lo.accept_source_route = 0net.ipv4.conf.eth0.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verificationnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.lo.rp_filter = 1net.ipv4.conf.eth0.rp_filter = 1net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptancenet.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.lo.accept_redirects = 0net.ipv4.conf.eth0.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0

# Disables IP source routingnet.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.lo.accept_source_route = 0net.ipv4.conf.eth0.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verificationnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.lo.rp_filter = 1net.ipv4.conf.eth0.rp_filter = 1net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptancenet.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.lo.accept_redirects = 0net.ipv4.conf.eth0.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0
# Disables the magic-sysrq keykernel.sysrq = 0
# Decrease the time default value for tcp_fin_timeout connectionnet.ipv4.tcp_fin_timeout = 15
# Decrease the time default value for tcp_keepalive_time connectionnet.ipv4.tcp_keepalive_time = 1200
# Turn off the tcp_window_scalingnet.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sacknet.ipv4.tcp_sack = 0
# Turn off the tcp_timestampsnet.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts requestnet.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable bad error message Protectionnet.ipv4.icmp_ignore_bogus_error_responses = 1
# Log Spoofed Packets, Source Routed Packets, Redirect Packetsnet.ipv4.conf.all.log_martians = 1
# Increases the size of the socket queue (effectively, q0).net.ipv4.tcp_max_syn_backlog = 10242.

2. หลังจากนั้นใช้คำสั่ง sysctl -p เพื่อใช้ค่าใหม่โดยไม่ต้อง boot เครื่อง หรือ reboot เครื่องใหม่เลยก็ได้

เทคนิดการลบ file ใน Linux กรณีไฟล์เยอะๆ

0

Posted on : 13-12-2010 | By : admin | In : CentOS, Linux

ในบางครั้ง files ใน directory ของเราอาจจะมีจำนวนมาก จนกระทั่งเมื่อเราต้องการลบโดยคำสั่ง rm -f (ชื่อไฟล์) จะไม่สามารถลบได้ ( error จะขึ้นว่า /bin/rm: Argument list too long )

ให้ใช้คำสั่ง find แทน แล้วตามด้วย argument xargs rm -f ก็จะสามารถลบได้

ตัวอย่างคำสั่ง find . -name spam* | xargs rm -f

อีกเทคนิคนึงที่ผมชอบใช้คือ ในกรณีที่ต้องการลบไฟล์ทั้งหมดใน directory นั้น ก็ลบ directory ทิ้ง แล้วค่อยสร้างขึ้นมาใหม่ก็ได้

เกมส์ออนไลน์ ผ่านเว็บ เขาทำยังไงกัน

0

Posted on : 12-12-2010 | By : admin | In : game, เกมส์

สวัสดีครับทุกๆท่าน หลายๆคนคงเคยเล่นเกมส์ที่เป็นออนไลน์ผ่านหน้าเว็บ (แบบที่ไม่ต้องโหลดโปรแกรมมาลง) บางคนมีคำถามว่าอยากมีเกมส์แบบนี้ต้องทำอย่างไร วันนี้ผมเอาประสบการณ์มาเล่าให้ฟังครับ

1. ต้องมี Server 1 ตัวที่ทำหน้าที่เป็น Socket server

– หลายคนเข้าใจผิดว่าเกมส์ออนไลน์ผ่านเว็บนั้นเป็นเทคนิคการเขียนโปรแกรมใน flash จริงๆแล้วไม่ใช่ครับ flash เป็นแค่ตัวที่เชื่อมต่อมายัง Server โดยในแฟลชจะมีฟังก์ชั่นพื้นฐานของ Socket อยู่แล้ว แต่ที่จำเป็นต้องมีคือโปรแกรมฝั่ง Server ที่คอยรับข้อมูลจาก user ทุกคน แล้วกระจายให้คนที่ต้องรับ

โปรแกรมที่ว่านี้นิยมเขียนจากภาษาใดก็ได้ที่มีความสามารถในการจัดการ Socket ในแบบ Server เช่น Java , C ฯลฯ

สำหรับโปรแกรมที่มีขายในท้องตลาดก็เช่น Smartfox Server , Electrotank เป็นต้น

เกมส์ Smartfox

2. เขียนโปรแกรมด้วยแฟลชและใช้ฟังก์ชั่นส่งข้อมูลผ่าน Socket

– อันนี้ต้องลองศึกษาดูครับ โดยถ้าเป็นตัวโปรแกรมสำเร็จรูปอย่าง Smartfox เขาจะมีฟังก์ชั่น API มาให้เราใช้ ซึ่งจะง่ายกว่าใช้ฟังก์ชั่นพื้นฐานของ flash พอสมควร

เกมส์ ตัวอย่างก็ได้แก่ ที่ http://game.meemodel.com พวกเกมส์สนุกเกอร์ , เกมส์ slave , เกมส์หมากฮอส ที่นี่ใช้ Smartfox server เป็นโปรแกรมฝั่ง Server ครับ

สำหรับใครก็ตามที่อยากศึกษาทาง Smartfox เขาก็มีให้โหลดมาใช้ฟรี 100 connections ยังไงถ้าเกมส์เสร็จแล้วส่งมาให้เล่นหน่อยนะครับ

เกมส์ Angry Birds โกยเงินถล่มทลาย

0

Posted on : 11-12-2010 | By : admin | In : เกมส์

เพื่อนๆ หลายคนคงได้ลองเล่นเกมส์ Angry Birds กันแล้ว ( ของผมเล่นบน Android ) โดยส่วนตัวก็รู้สึกว่าเกมส์มันน่ารักดี แต่ก็ไม่ได้สนุกมากๆ แต่ลองอ่านข่าวนี้ดู

เกม Angry Birds ที่กำลังกอบโกยเงินให้บริษัท Rovio อย่างต่อเนื่อง ซึ่งมีการประเมินว่าเฉพาะในเวอร์ชั่นสำหรับแอนดรอยด์อาจจะทำรายได้ให้บริษัทมากถึงเดือนละ 1 ล้านดอลลาร์เลยทีเดียว

โดยเรื่องนี้มีการเปิดเผยมาจาก Peter Vesterbacka หนึ่งในทีมผู้พัฒนา ซึ่งเขาบอกว่าตั้งแต่ที่ Angry Birds บนแอนดรอยด์ถูกเปิดให้ดาวน์โหลดได้ฟรีนั้น ตอนนี้มียอดดาวน์โหลดแล้วกว่า 5 ล้านครั้ง และอาจจะทำรายได้จากการขายโฆษณาในตัวเกม (ผ่าน AdMob) ได้อีกเดือนละมากกว่า 1 ล้านดอลลาร์

angry birds

นอกเหนือจากแอนดรอยด์แล้ว เจ้าเกมนกขี้โมโหเกมนี้ก็มียอดดาวน์โหลดแบบเสียเงินครั้งละ 0.99 ดอลลาร์บน App Store (iPhone, iPad, iPod Touch) มากถึง 12 ล้านครั้งอีกด้ว

จริงๆคนไทยเราก็เก่งๆกันเยอะ ยังไงน่าจะลองทำเกมส์ง่ายๆแต่ขาย idea แบบนี้ให้ฝรั่งเล่นกันบ้าง

การทำ sub-interface บน Linux

0

Posted on : 04-12-2010 | By : admin | In : CentOS, Linux
ในบางครั้งเรามีความต้องการที่จะให้ 1 interface มีหลาย ip เพื่อประโยชน์บางอย่าง เช่น ใช้ Linux เป็น Router , ให้บริการ network หลายๆวง ฯลฯ
กรณีต้องการทำ sub interface ( 1 interface มีหลาย ip ) มีขั้นตอนดังนี้
1. copy file /etc/sysconfig/network-scripts/ifcfg-eth0 ( กรณีเป็น Ethernet 0 ) ไปเป็น /etc/sysconfig/network-scripts/ifcfg-eth0:1
2. ใช้โปรแกรม vi editor แก้ไขไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0:1
3. แก้บรรทัดที่เขียนว่า DEVICE=eth0 เป็น DEVICE=eth0:1
4. แก้ไข ip address และ parameters อื่นๆให้เรียบร้อย
5. Restart network service ด้วยคำสั่ง service network restart
6. ใช้คำสั่ง ifconfig เพื่อเช็คดู interface ที่สร้างขึ้นใหม่

7. ทดลอง ping ไป ที่ ip ของเครื่องในวงเดียวกันกับ sub interface

การแก้ไข ip address บน Linux ( CentOS , Redhat )

0

Posted on : 04-12-2010 | By : admin | In : CentOS, Linux

การแก้ไข ip บนเครื่อง Linux

ทำได้ดังนี้

1. ใช้โปรแกรม Editor เช่น vi editor แก้ไขไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0 ( กรณีเป็น Ethernet 0 )

change ip address linux vi

2. แก้ไข GATEWAY ได้ที่ไฟล์ /etc/sysconfig/network ( กรณีใส่ GATEWAY ไว้ที่ interface แล้วไม่ต้องใส่อีก )

3. ใช้คำสั่ง service network restart เพื่อ restart ให้ใช้ ip ใหม่

4. ใช้คำสั่ง ifconfig เพื่อดู ว่า ip address ของเราตอนนี้เป็น ip อะไรแล้ว

5. ทดสอบ ping ไปยังเครื่องอื่นในวงเดียวกัน และ default gateway เพื่อทดสอบดูว่าสามารถไปได้ไหม

6. จำไว้ว่า default gateway ต้องเป็น network วงเดียวกันเท่านั้น

7. กรณีแก้ชั่วคราวสามารถใช้คำสั่งนี้ได้

ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up

แต่จำไว้ว่าแบบนี้ ip address จะกลับไปเป็นตาม ip ที่อยู่ใน configure file กรณี boot เครื่องใหม่