24 December 2012

Howto Share file though HTTPServer with Python

Howto Share file though HTTPServer with Python 
          อยาก Sharefile ให้เพื่อนๆ แต่ขี้เกียจ เปิดShared ต่างๆๆ ยากเย็น พอดีในเครื่องมี Python 2.7 พอดี งั้นจัดไป : 

1. ให้ไปที่ Directory ที่คุณต้องการที่จะ Shared 
2. Like follow command : " python -m SimpleHTTPServer 12345 "


เกรียนก็สร้างโลกได้!!!!

Good luck.

21 December 2012

How to customize command prompt windows 7

How to customize command prompt windows 7
     
        เคยเจอปัญหาอย่างภาพนี้ไหม


          เกิดความรำคาญมากมาย แทบจะไม่มีพื้นที่ให้ทำงานเลย เพราะว่ามันมัวแต่แสดง path ของ Directory ที่คุณเข้าไป งั้น เรามาดูภาพต่อไป




         ถ้าเป็นแบบนี้ จะสะดวกกว่า นะ เวลาทำงานไม่ต้องมี การแสดง ชื่อ path มาให้ เบื่อลูกกะตา!!!

ให้คุณใช้ Tools ที่ชื่อว่า prompt ได้เลย ครับ ลองพิมพ์ตามนี้ครับ

               C:\Windows> prompt $N">>

$N คือ Partition
คุณจะได้ดังภาพข้างบนเด้อ แต่ถ้าต้องการ ให้มีการแสดงผลอย่างนี้ทุกครั้งที่มีการ เรียก command prompt ก็ให้ Define ไว้ที่ Enviroment Variable ของ system เด้อครับ

     Create a new environment variable called PROMPT. Set the variable value to the desired prompt.
      Press win+R ,then type "sysdm.cpl". Open Tabs "Advanced" Like Following :



หวังว่าจะนำไปต่อยอดได้ นะครับ คุณลอง C:\Windows> prompt /?
หมายเหตุ ถ้าต้องการให้เป็นเหมือนเดินก็แค่พิมพ์ prompt แล้ว Enter ครับ (restoring by default)


Good luck strumjub. jub



18 December 2012

How to manage http and https web server ZimbraMail

How to manage http and https web server ZimbraMail 


login as zimbra

zmtlsctl 

เป็น Command สำหรับการตั้งค่าของ protocol ในส่วนของการสื่อสารกับ Web Server zimbraMail โดยจะมีผลเมื่อคุณทำการ Restart Server ZimbraMail จากคำสั่ง
#zmcontrol stop/start หรือ restart นั้นเอง


Syntax
---------------------------
zmtlsctl [mode]


Mode Choices
-----------------------------
http - คือ user จะสามารถใช้ protocal http อย่างเดียวในการเข้าใช้งาน web mail เช่น http://eibot.local/

https - คือ user จะสามารถใช้ protocal https อย่างเดียวในการเข้าใช้งาน web mail เช่น https://eibot.local/ ถ้าเข้าใช้เป็น http จะไม่สามารถทำได้

both - คือ user จะสามารถใช้ protocal ได้ทั้ง http และ https  โดย server จะจำค่า Session  เอาไว้  user สามารถเปลี่ยนใช้ได้ทั้ง http และ https โดยไม่ต้อง Login ใหม่

mixed - คือ ในกรณีที่ user เรียก http เข้า server จะทำการ switch ให้ใช้ https เฉพาะหน้า login เท่านั้น แล้วเมื่อ User ทำการ login เสร็จ ก็จะ switch กับมาที่ traffic http ให้เหมือนเดิม แต่ถ้าเรียกเข้ามาเป็น https ก็จะคงไว้เหมือนเดิม

redirect - คือ จะมีลักษณะคล้ายกับ mode mixed แต่ user ไม่สามารถที่จะร้องขอใช้ http ได้โดยเมื่อร้องขอจะโดย Redirect ไปที่ https เสมอ นะจ๊ะจุฟๆๆ


example .... 



Good luck strumjub...

17 December 2012

Howto Increase attachment file size on zimbra mail Server


Howto Increase attachment file size on zimbra mail Server

Login as zimbra

Usually, by default FileUpload and MTA Max size is 10 MB.
## Check status service in zimbra server : 
zimcontrol status


You can both of them via the command line like following : 

##Check variable FileUploadMaxSize :
zmprov gacf | grep zimbraFileUploadMaxSize

## Set variable FileUploadMaxSize :
zmprov mcf zimbraFileUploadMaxSize 20971520


and 

##Check variable MtaMaxMessageSize :
zmprov gacf | grep zimbraMtaMaxMessageSize

## Set variable MtaMaxMessageSize :
zmprov mcf zimbraMtaMaxMessageSize 20971520

note >> 20 MB = 20971520 byte (20*1024*1024)

Example .. 


Good luck strumjub.

13 December 2012

The Shell Script Stop Start and control JBoss standalone 7.1 final

The Shell Script Stop Start and control JBoss standalone 7.1 final
           the script run by user or root on Linux platform. you need to define variable environment for script Like follow :
            JAVA_HOME = path of java installed (1.6 or higher)
            JBOSS_HOME = path of jboss
            JBOSS_CONFIG = path file of jboss configuration.
            .....bababa........


#!/bin/sh
#
# JBoss standalone control script
#
# chkconfig: - 2012-10-25
# description: JBoss AS Standalone
# processname: standalone
# pidfile: JBOSS_HOME/jboss-as-standalone.pid

# Define Java configuration.
export JAVA_HOME=/usr/local/java

# Load JBoss AS init.d configuration.
if [ -z "$JBOSS_CONF" ]; then
JBOSS_CONF="/opt/JBOSS71/bin/jboss-as-standalone.conf"
fi

[ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}"

# Set defaults.

if [ -z "$JBOSS_HOME" ]; then
JBOSS_HOME=/opt/JBOSS71
fi
export JBOSS_HOME

if [ -z "$JBOSS_PIDFILE" ]; then
JBOSS_PIDFILE=$JBOSS_HOME/bin/jboss-as-standalone.pid
fi
export JBOSS_PIDFILE

if [ -z "$JBOSS_CONSOLE_LOG" ]; then
JBOSS_CONSOLE_LOG=$JBOSS_HOME/console.log
fi

if [ -z "$STARTUP_WAIT" ]; then
STARTUP_WAIT=30
fi

if [ -z "$SHUTDOWN_WAIT" ]; then
SHUTDOWN_WAIT=30
fi

if [ -z "$JBOSS_CONFIG" ]; then
JBOSS_CONFIG=standalone.xml
fi

if [ -z "$JBOSS_USER" ]; then
JBOSS_USER=pum
fi

JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh

prog='JBOSS71 Server'

start() {
echo -n "Starting $prog:"
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then
echo -n "$prog is already running."
#failure
echo
return 1
else
rm -f $JBOSS_PIDFILE
fi
fi
#mkdir -p $(dirname $JBOSS_CONSOLE_LOG)
cat /dev/null > $JBOSS_CONSOLE_LOG
#mkdir -p $(dirname $JBOSS_PIDFILE)
chown $JBOSS_USER $(dirname $JBOSS_PIDFILE) || true

# Cleaning temp server
rm -rf $JBOSS_HOME/standalone/tmp/*
#comand start Jboss Server
eval LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG 2>&1 > $JBOSS_CONSOLE_LOG &

count=0
launched=false

until [ $count -gt $STARTUP_WAIT ]
do
grep 'Deployed "PUMEAR.ear"' $JBOSS_CONSOLE_LOG > /dev/null
if [ $? -eq 0 ] ; then
launched=true
break
fi
echo -n "."
sleep 1
let count=$count+1;
done
echo ": PumSrv Starting Succeed!!."
return 0
}

stop() {
echo -n $"Stopping $prog:"
count=0;

if [ -f $JBOSS_PIDFILE ]; then
read kpid < $JBOSS_PIDFILE
let kwait=$SHUTDOWN_WAIT

# Try issuing SIGTERM

kill -15 $kpid
until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ]
do
echo -n "."
sleep 1
let count=$count+1;
done

if [ $count -gt $kwait ]; then
kill -9 $kpid
fi
fi
rm -f $JBOSS_PIDFILE > /dev/null
#success
echo " PumSrv Server Stoping Succeed!!."
echo
}

status() {
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then
echo "$prog is running (pid $ppid)"
return 0
else
echo "$prog dead but pid file exists"
return 1
fi
fi
echo "$prog is Not running."
return 3
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
$0 stop
$0 start
;;
status)
status
;;
*)
## If no parameters are given, print which are avaiable.
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
Good luck ..... by stumjub!

How to BackUp and Restore Database MySQL Server Linux

How to BackUp and Restore Database MySQL Server Linux

          กลับมาเขียนต่อคราวนี้ยังคง Concept เหมือนเดิมเน้นทำงานไม่เน้น ทฤษฎีนะครับ เพราะว่าหาอ่านได้ตาม google แล้วกันนะครับ

         ถ้าต้องการ Backup Database ใน MySQL Server ของเราไป ใช้งานที่อื่นๆ
         1. ให้ทำการ Login ด้วย user ที่สามารถ Access เข้า Database ได้นะครับ
         2.  หา path หรือพื้นที่ ที่เพียงพอในการ Backup จากนั้น จัด Shell command โลด
                    #mkdir Backup
                    #cd Backup


                    # mysqldump --user user_access --password=passuser_access dbname-backup>dbname-20121212.sql
             รอสักพักครับ จากนั้นเราก็จะได้ File Backup ไปใช้งานครับ

          ขั้นตอนการ Restore Database ใน MySQL Server
          1. ให้ทำการ Login ด้วย user ที่สามารถ Access เข้า Database ได้เหมือนเคย
          2.  ให้ทำการ เข้าไปที่ path ที่เราได้ทำการ Backup ไว้ จากนั้น จัด command ได้ครับ
                   #  mysql  --user user_access --password=passuser_access dbname-backup < dbname-20121212.sql
       
Note :
             user_access คือ ชื่อ user ในการ Access เข้าไปที่ mysql Server
             passuser_access คือ password ของ user
             dbname-backup คือ ชื่อ Database ที่ต้องการ Backup หรือ Restore

Good luck.... by stumjub

Using PuTTY connect to Unix-Aix

Using PuTTY connect to Unix-Aix

            เมื่อเชื่่อมต่อเข้าไปที่ Unix Aix หรือ Unix อื่นๆ ด้วย PuTTY แล้วเจอปัญหา อย่างเช่น อยากลบเมื่อพิมพ์ผิด กด Backspace แล้วดันไม่ลบกลายเป็นภาษาต่างอวกาศ ซะงั้น อ้าว! ทามไงล่ะที่นี้ เป็นปัญหาที่ผมเจอสักพักใหญ่ เห็นรุ่นพี่พิมพ์แล้วลบได้ เราทำไม ลบไม่ได้ ว่ะ โงนเลย.....


           ก็เลยแอบเข้าไปดู  /etc/profiles และ ~/.ksh ให้ตายเถอะ เราเจอแล้วนะ อิอิ
มีการ Set ไว้ดังนี้ครับ
           
            set -o emacs
หรือ
            set -o vi 

เอาสักตัวหนึ่ง ครับ ผลของมันคือ เราสามารถใช้งานที่ shell ของเราได้โดยเสมือนว่า เข้าไปอยู่ใน Environment ของ Editor เหล่านั้นเลยนะ .....

Good lock.... by stumjub.

Collision Domain Basic


Collision Domain Knowledge
Collision Domain ---> การชนกัน (ตอบกำปันทุบนุ้นแล้วกัน ดินมันเจ็บ.....)

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




         Collision Domain คือการชนกันของสัญญาไฟฟ้า เวลาชนกันจะทำให้ Lan ใช้ไม่ได้ ณ ไมโครวินาทีนั้นๆ (อันนี้เป็นทางการนิดหนึ่งแต่ก็ไม่เข้าใจเท่าไรนัก!!)


เรามาขยายความกันต่อ....


ถ้าผมถามว่า Domain คืออะไร ตามเด็กไทยจะนังเฉยๆ เราเพื่อนตอบ เพื่อนมันก็คิดเหมือนคุณกันทั้งห้องครับ!!!!!!!!!!!!!!!!


             Domain คืออะไร มันก็คืออะไรก็ตามที่เหมือนๆกัน อย่างเช่น  Domain ของคนใส่เสื้อดีขาว , ใส่เสื้อสีฟ้า เป็นต้น แล้ว Collision Domain ล่ะ มันก็คือ ระบบที่เจอ Collision เดียวกัน หรือ Broadcast Domain คือ ระบบที่อยู่ภายใต้การ Broadcast เดียวกันนั้นหมายความว่าคนหนึ่งส่ง Broadcast แล้วอีกคนจะเจอ Broadcast ด้วย



               Collision Domain รูปแบบของระบบ LAN ที่เมื่อไรก็ตามที่คนๆ หนึ่ง ส่งข้อมูลมันจะกระจายไปถึงอีกคนอื่นๆ อย่างเช่น เครื่อง A ,B,C, D อยู่ในระบบ LAN(นึกถึง Lan ยุคเก่าๆ ที่ ใช้สายไฟฟ้าต่อกันตรงๆ หรือการต่อ Hub) เดียวกัน เมื่อ A ส่งข้อมูลหา B แล้ว D จะเห็นข้อมูลด้วย แล้วเหตุผลอะไร มันถึงเป็นเช่นนั้น???   ที่ D เห็นเพราะมันเป็นธรรมชาติ แล้วธรรมชาติยังไงล่ะ! ให้คุณลองคิดว่า สมมติว่าเรา เอาปลั๊ค 3 ตา มาสัก 6 อัน เอาตัวแรกไป เสียบจากเต้าจากฝาผนังที่บ้านแล้วเอาตู้เย็น พัดลมเสียบ จากนั้นเอาปลั๊ค ส่วนที่เหลือนั้นมา เสียบต่อไป กันไปเช่นเดียวกันหมด จากนั้นถ้าคนลอง เอา นิ้วแย่เต้าปลั๊คตัวที่ 6 ที่ต่อๆ เรียงกันมาแล้ว มันจะไฟดูดคุณถูกไหม? นั้นคือธรรมชาติของการสัญญาไฟฟ้า กรณีนี้ก็เช่นกันครับ การที่เราจะสามารถเข้าใจ Network ได้คุณจะต้องเรียนรู้เรื่อง ธรรมชาติของ Network เป็นต้น ซึ่ง ธรรมชาติของไฟฟ้า ทำให้เกิด Collision เพราะว่าการที่เรา ส่งข้อมูล A--->B มันเป็นรูปแบบของการส่งสัญญาไฟฟ้า ซึ่งสัญญาไฟฟ้าโดยธรรมชาติของมันจะกระจายไปทั้งหมดไปหา C,D ด้วย



                  การเกิด Collision Domain เหตุอย่างเช่นว่า A ส่งข้อมูล Hello World หา B โดยข้อมูลจะถูกแปลงเป็นสัญญาไฟ้ฟ้า 0 V,5 V หรือ 0,1 ขึ้นๆ ลงๆ ประมาณนั้น ในบ้างจังหวะมีการชนกันของ สัญญาไฟฟ้าที่เป็น 1 กับ 1 หรืออื่นๆ เนี้ย ทำให้เกิดการ แจมกันขึ้น อย่างเช่น  1  กับ 1  เกิดการชนกัน จะถูกยกระดับเป็น 2 Volt หรือ 1 กับ 0 กลายเป็น 0.5 V เป็นต้น แล้วกันจะตีความข้อมูลยังไงล่ะ!!!! นั้นคือสาเหตุจริงๆ ของการที่เราทำไมถึงกลัวการเกิด Collision Domain กันนักกันหนานะครับ ทำไมถึงกลัวล่ะเพราะว่าการเกิดการ Collision ทำให้เกิดการตีความข้อมูลไม่ออก ก็จะมีกระบวนหยุดส่งซะก่อน!!หรือที่เรียกกันว่า Carrier Sense Multiple Access With Collision Detection  เกิดขึ้นแล้วยังไงล่ะ การบวนการนี้ถูกสร้างขึ้นเพื่อที่จะทำการ Detection ว่ามีการเกิด collision ไหม ถ้าเกิดจะทำการหยุดส่งซะก่อน นั้นคือ ทุกครั้งที่มีการส่งข้อมูลออกไปมันจะต้องอ่านข้อมูลกลับมาด้วยว่าตรงกันที่มันส่งหรือเปล่า ถ้าไม่ตรงแสดงว่าการเกิดมั่วขึ้น ถ้าเกิดการมั่วขึ้นมันจะรู้ได้ทันทีเลยว่าข้อมูลมีการชนกันเกิดขึ้น แล้วทำไงก็หยุดส่งทันที วิธีการหยุดส่งคือถือ นาฬิกาของตัวเองแล้วทำการ Random (พี่สุ่ม วง clash) ตัวเลขขึ้นค่าหนึ่งๆ แล้วการทำจับเวลา อย่างเช่น สุ่มได้ 9 วินาที แล้วทำการ Count Down (นับถอยหลัง) จนถึง 0 วินาทีแล้วทำการส่งข้อมูลอีกครั้ง  นั้นคือทุกคนที่เป็นผู้ส่งที่อยู่ในวง LAN เดียวกันถ้าเกิด Detection เจอการชนกันเกิดขึ้นทุกคนจะต้องหยิบนาฬิกาขึ้นมา Random แล้วทำการนับถอยหลังแล้วส่งข้อมูลออกจากหลังจากนับได้ 0 นั้นแสดงว่าจะมีคนเดียวเท่าถึง 0 เร็วกว่าเพื่อนๆ ก็จะส่งก่อน นี้ก็เป็นส่วนหนึ่งในการพัฒนาของ LAN



                   แต่อย่างไรก็ตาม การทำ Carrier Sense Multiple Access With Collision Detection ในกรณีที่เครื่องในวง Lan เยอะๆ ทุกคนแย่งกันใช้ เมื่อมีการชนกันเกิดขึ้นทำให้ทุกคนต้องหยิบนาฬิกาขึ้นมาเพื่อจับเวลา แล้วแย่งกันนับถอยหลังเพื่อให้เป็นผู้ชนะแล้วจะได้ส่งก่อนทำให้ ช่วงเวลาในการนับถอยหลังวง Lan ไม่ได้เกิดการใช้งานหรือว่างนั้นเอง จะทำให้เราเห็นว่า  เมื่อมีคนใช้งานในวง Lan มากขึ้นไปเรื่อยๆ กราฟ Utilisation (ค่าตัวเลขที่ใช้แสดงการทำงาน) จะขึ้นถึงจุดหนึ่งแล้วเมื่อมีการชนกัน เส้นกราฟก็จะตกลงมา ซึ่งเกิดจากการรอกันมากขึ้น ถนน LAN ก็จะว่างเยอะขึ้น จากเหตุการนี้ ทำให้รู้ว่า LAN วงๆ หนึ่งควรจะมีเครื่องในวง เราถึงจะเหมาะสม ซึ่งมาจาก กราฟ  Utilisation ซึ่งเราต้องคำนึงถึงการจำกัดจำนวนเครื่องโดยการวิเคราะห์ว่า LAN วงนี้นะ ใช้ IP ถ้ามีการชนกัน ขนาดเท่านี้ ควรจะมีเครื่องในวง LAN เท่ากับเท่าไร  ซึ่งถามว่าเราใช้เกินที่จำกัดได้ไหม คำตอบคือได้ครับ ไม่ผลต่ออุปกรณ์ต่อจะทำให้การส่งข้อมูลมีความช้าครับ มันเป็นทีมาของคำว่า ตัวเลข Recommendation นั้นเองครับ


สรุป คือ ธรรมชาติของการนำไฟฟ้า เท่ากับ ธรรมชาติของ Collision Domain