สิ่งที่ผมรู้ หากคุณอ่าน คุณจะรู้ตามผมไปด้วย

15-08-2007

Die Hard 4.0

Filed under: Die Hard 4.0 — ejeepss @ 07:49:16

diehard4.jpg

Dir Hard 4.0

ภาพยนต์ ภาคต่อ การกลับมาของนายตำรวจนิวยอร์ค คนเดิม “จอร์น แมคเคลน” นายตำรวจดีเดือด บ้าระห่ำสุด สมชื่อ โดยเนื้อเรื่องประมาณ มีผู้ก่อการร้าย สามารถเข้าไป Hack ข้อมูลได้ทุก ๆ ระบบที่มีความสำคัญ ไม่ว่าจะเป็น ระบบการจราจร ข้อมูลกลางสหรัฐฯ ฐานข้อมูลตลาดหุ้น FBI และอื่นๆ ซึ่งจุดเริ่มต้นจากการแข่งขันกันของ Hacker เพื่อทดสอบ Algorithm การเข้ารหัส โดยที่ไม่รู้ตัวว่ากำลังตกเป็นเครื่องมือ โดยที่ Hacker ทั้งหมด เหลือรอดอยู่เพียงคนเดียวจาก 7 คน และคนที่จะช่วยเขาได้ นั่นคือ จอร์น แมคเคลน คนเดียวเท่านั้น

เรื่องนี้ผมยอมรับว่าจินตนาการได้ค่อนข้างดี และใกล้เคียงความจริงๆ อาจเนื่องจากปัจจุบันนี้ เทคโนโลยีทุกสิ่งได้ใช้คอมพิวเตอร์ได้เข้าไปควบคุมสั่งการ อีกทั้งระบบปฏิบัติการที่ใช้กันอยูนั้น ไม่ใช่ว่าจะไม่มีช่องโหว่เสมอไป อีกทั้งไม่ว่าจะเป็นระบบงาน หรือเทคโนโลยีใด ส่วนใหญ่ ก็ต้องคุีย หรือสื่อสารกับระบบงานภายนอก ซึ่งจุดนี้เป็นช่องโหว่ ที่สำคัญ อีกทั้งการที่ระบบงานต่างๆ นั้น คุยกันบนโลกของ TCP/IP เำกือบทั้งสิ้น ซึ่ง ทุก ๆ คนรู้ว่า TCP/IP มีช่องโหว่ แต่ทุกคนก็ยังใช้ เนื่องจากทำความเข้าใจง่าย และสามารถเชื่อมต่อกับโลกของอินเทอร์เน็ต ได้โดยไม่ต้องแปลง Protocol แต่อย่างใด

เรื่องนี้เป็นหนังอีกเรื่องที่ดูค่อนข้างสนุก อาจดูเว่อร์บางฉาก แต่ภาพรวมผมให้ 4.5 เต็ม 5 ครับ

ขอบพระคุณที่สนใจอ่าน

Wiki : http://en.wikipedia.org/wiki/Live_Free_or_Die_Hard

Replicate MySQL 5.x

Filed under: Replicate MySQL 5.x — ejeepss @ 07:46:40

replicatemysql_logo.jpg

MySQL เป็นฐานข้อมูลที่ได้รับความนิยมอย่างมากในปัจจุบัน อาจทำงานได้ดี มีเสถียรภาพ มีขนาดเล็ก ติดตั้งง่าย หาเอกสารอ้างอิงง่าย อีกทั้งยังถูกจับคู่กับ PHP ชนิดที่เรียกกันว่า ซี้ปึ๊ก กันเลยทีเดียว หมายถึงคำสั่งต่างๆ ของ PHP จะมีสามารถเรียกใช้ความสามารถของ MySQL ได้อย่างเด็มประสิทธิภาพทีเดียว ยิ่งหากได้ใช้ phpmyadmin อีกยิ่งเข้ากันเป็นปี่เป็นขลุ่ย แถมหาก Run อยู่บน Apache อีก โอ้ว เ้ข้าแก๊ง แต่ยังขาดหัวหน้าแก๊งไปได้ไม่ได้ นั่นคือ Linux โอ อย่างนี้ต้องเรียกว่า มาเป็นทีม อาจเรียกได้ว่าเป็น Dream Team หรือทีมในฝันของนักพัฒนาเว็บแอพพลิเคชั่นเลยทีเดียว ซึ่งทีมนี้มีชื่อเล่น ว่า LAMP (Linux, Apache MySQL, PHP) *ขออภัย นอกเรื่องอีกแล้ว

MySQL สามารถทำงานได้ทั้งระบบปฏิบัติการ Windows, Linux, Solaris, FreeBSD ทั้งแบบ 32 และ 64 Bit ซึ่งปัจจุบันที่กำัลังเขียนอยู่นี้ Version 5.1.20 Beta Replicate MySQL ล่ะคืออะไร เกี่ยวข้องกันอย่างไร … หลายท่านรู้จักการ Backup ข้อมูล หากท่านรู้จักการทำ Mirror Disk นั่นแหละ ความหมายเดียวกัน …

ฐานข้อมูลนั้นมีความสำคัญอย่างยิ่ง เนื่องจากเว็บแอพลิเคชั่นนั้นใช้ฐานข้อมูลเก็บข้อมูลทุกสิ่งทุก ๆ อย่าง ฐานข้อมูลก็ไม่ได้ถูกโหลดเข้า Memory ไ้้่ด้ทั้งหมด ก็ยังคงต้องใช้ Disk ซึ่งเจ้า Disk นี่แหละ ที่ชอบสร้างปัญหาให้กับระบบงานอยู่บ่อยครั้ง หากข้อมูลที่สำคัญ เช่น ข้อมูลด้านการเงิน ข้อมูลการขายหน้าร้าน เกิดเรียกใช้งานไม่ได้ หรือหายไป ย่อมเกิดความเสียหายให้กับหน่วยงาน เป็นอย่างมาก จะดีไหมหากเรามีข้อมูลสำรองไว้ยัง Disk อีกก้อน หรือ Server อีกตัว เพื่อเป็นการลดความเสี่ยงสำหรับการสูญเสียข้อมูล เพราะฉะัีนั้น เรามาลองทำ Replicate MySQL กัน สิ่งที่ท่านต้องมีการ

  1. เครื่องคอมพิวเตอร์จำนวน 2 เครื่อง หรือมากกว่า เครื่องแรกเรียกว่า Master เครื่องถัดไปเรียกว่า Slave.
  2. ทั้ง 2 เครื่องลง Program MySQL โดยที่สามารถ Download ได้ที่ http://dev.mysql.com/downloads/mysql/5.1.html

฿าพรวมของการทำ Replicate MySQL

replicatemysql3.jpg
Pdf:replicate-mysql.pdf

ภาพที่ 1 ภาพรวมของการทำ Replicate MySQL

ขั้นตอนที่ 1.

หากต้องการ Replicate Master ที่มีข้อมูลอยู่แล้ว จะต้อง Dump ข้อมูลออกมาเพื่อทำให้ Slave มีข้อมูลที่เท่าเทียมกันเสียก่อน

ขั้นตอนที่ 2.

สร้าง User ขึ้นมาเพื่อทำหน้าที่สำหรับทำหน้าที่ Replicate เท่านั้นในฝั่ง Master โดยใช้คำสั่ง

mysql> GRANT REPLICATION SLAVE ON *.*
    -> TO 'repl'@'%.192.168.0.20' IDENTIFIED BY 'slavepass';

* โดยที่ให้สิทธิ์ให้การ Replicate จาก User ที่ชื่อว่า repl และรหัสผ่าน slavepass ที่มาจากเครื่อง IP 192.168.0.20 เท่านั้น

ขั้นตอนที่ 3.

ฝั่ง Master เข้าไปแก้ไขไฟล์ my.ini ที่ C:\Program Files\MySQL\MySQL Server 5.1>my.ini โดยเพิ่มด้านล้างหัวข้อ [mysqld] ดังนี้

# ——————————
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
# ——————————-

โดยที่ :

log-bin=mysql-bin # Binary Log
server-id=1 # ลำดับ Server master กำหนด =1
innodb_flush_log_at_trx_commit=1 #สำหรับผู้ใช้ฐานข้อมูลที่เป็น InnoDB จำเ็ป็นจะต้องให้ Master
#commit งานให้เรียบร้อยก่อน ถึงจะทำการ Replicate ไปให้ Slave
sync_binlog=1 # ทำการ Sync Log สำหรับ InnoDB และหากเกิด Master Crash จะไม่ทำให้ Slave Sync ข้อมูลซ้ำ ในกรณีที่ Master ฟื้นกลับมาอีกครั้ง
ขั้นตอนที่ 4.

ฝั่ง Slave ให้เข้าไปแก้ไขไฟล์ my.ini ที่ C:\Program Files\MySQL\MySQL Server 5.1>my.ini เช่นเดียวกับฝั่ง Master โดยเพิ่มด้านล้างหัวข้อ [mysqld] ดังนี้

#————————————————-
server-id=2
master-host=192.168.0.10
master-port=3306
master-user=repl
master-password-slavepass
master-connect-retry=30
replicate-wild-do-table= %.%
report-host=192.168.0.20
#————————————————-

โดยที่
server-id=2 # ลำดับ Slave หากมี Slave มากกว่า 1 ตัวสามารถกำหนด Server-id ได้จนถึง (2 ยกกำลัง 32) -1 เครื่อง
master-host=192.168.0.10 # หมายเลข IP เครื่อง Master
master-port=3306 # กำหนด Port
master-user=repl # ชื่อ User สำหรับการ Replicate
master-password-slavepass # Password
master-connect-retry=30 # หากติดต่อ Master ไ่ม่ได้ จะติดต่อซ้ำภายใน
replicate-wild-do-table= %.% #กำหนดฐานข้อมูลที่ต้องการ Replicate %.% หมายถึง Database ทุกตัว

ขั้นตอนที่ 5.

เมื่อ Master และ Slave มีข้อมูลเท่ากันแล้ว ดังในขั้นตอนที่ 1 ให้สร้างจุด Check Point เพื่อให้เป็นจุดเริ่มต้นสำหรับการ Replicate โดยใช้คำสั่ง

	mysql> FLUSH TABLES WITH READ LOCK;

ให้เรียกดูสถานะการทำงาน เพื่อดู Binary Log name และ Offset ของ Master ดังนี้

replicatemysql5.jpg

ภาพการเรียกดู BinaryLog Name และ Offset ของ Master

Binary Log Name : mysql-bin.00004
Offset : 106

ขั้นตอนที่ 6.

กำหนดฝั่ง Client ให้ติดต่อกับฐานข้อมูล

mysql> CHANGE MASTER TO  

    ->     MASTER_HOST='192,168.0.10',  

    ->     MASTER_USER='repl',  

    ->     MASTER_PASSWORD='slavepass',  

    ->     MASTER_LOG_FILE='mysql-bin.00004‘,  

    ->     MASTER_LOG_POS=106;

และเริ่มต้น Replicate โดยใช้คำสั่ง

mysql> START SLAVE;

เพียงเท่านี้ Slave ก็จะเริ่ม Replicate ข้อมูลจาก Master แล้วครับ

สรุป

การ Replicate นั้นเป็นเพียงการพอจะรับประกันได้ว่า ข้อมูลจะไม่สูญหาย แต่ไม่ได้หมายความถึงการแบ่งการทำงานเช่น การทำ Load Balance หรือแม้กระทั่ง หาก Server มีปัญหา ไม่ใช่หมายความว่า Slave จะสามารถทำงานได้ทันที ซึ่งหากต้องการทำเช่นนั้นจะมีต้องการเช็คสถานะการทำงานของตัว Master และ Slave ที่ส่วนใหญ่จะเรียกกันว่า สาย heartbeat สำหรับคอยตรวจสอบสถานะซึ่งกันและกัน ซึ่งพอจะมี Software OpenSource เช่น Ultra Monky ในการทำ Load Balance (แต่ดูเหมือนจะหยุดพัฒนาไปแล้วนะ) สามารถเข้าไปดูรายละเอียดได้ที่

Ultra Monky : http://www.ultramonkey.org/

แต่หากต้องการทำทุกสิ่งทุกอย่าง เช่น Replicate, Load Balance ทาง MySQL เองก็มีเทคโนโลยี Cluster ที่เหมาุะสำหรับระบบที่ต้องการเสถียรภาพสูง (ซึ่งต้องแลกมาด้วยการใช้ Server อีกหลายตัว) โดยขั้นต่ำ ต้องใช้อย่างน้อย 4 ตัว สำหรับการทำ Cluster แต่ีรับประกันความเสถียร และประสิทธิภาพ โดยสามารถดูเอกสารประกอบได้ที่

MySQL Cluster : http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html

ขอบพระคุณที่สนใจอ่าน

เอกสารอ้างอิง

MySQL : http://dev.mysql.com/doc/refman/5.1/en/replication.html

01-08-2007

ใครว่าโลกกลม

Filed under: The world is flat — ejeepss @ 08:33:53

The World Is Flat.

the_world_is_flat_01.jpg

ได้ยินคนอื่นพูดถึงกันจัง ตั้งแต่เล่มภาษาอังกฤษ พอมีโอกาสเข้าร้านหนังสือ เอ มีคนแปลแล้วด้วย เลยขออ่านสักหน่อย ฮื่ม อ่านได้แค่ 3 หน้าก็ไม่อ่านที่ร้านอีกเลย ซื้อไปอ่านที่บ้านดีกว่า …

หนังสือเล่มสามารถเรียบเรียงความคิดค่อนข้างดี และยกตัวอย่างเปรียบเทียบช้ดเจน เนื้อหาไม่ใช่ว่าคนที่สนใจเทคโนโลยีเท่านั้นจะอ่านเข้าใจ แต่คนที่ไม่ได้อยู่ในสายนี้ ก็สามารถอ่านเข้าใจเช่น (ถ้าคิดตามนะ) โดยปัจจุบัน หนังสือต้นฉบับภาษาอังกฤษ จะมีเพียงเล่มเดียว แต่ภาษาไทยขณะนี้ ถูกแปลเป็น 2 เล่ม ซึ่งอีกไม่นาน คงจะได้อ่านเล่ม 3 ซึ่งเป็นเล่มสรุป

ใครว่าโลกกลม เล่ม 1

ในเล่มนี้ได้กล่าวถึงภาพรวมของคำว่า Flat World หมายถึง ในความคิดของเขาโลกแบน ไม่ได้หมายถึงสภาพทางภูมิศาสตร์ ว่าโลกแบนเหมือนเหรียญตามปกหนังสือ แต่หมายถึง ยุคที่ทุกคนมีสิทธิเท่าเทียมในการแข่งขัน ไม่ว่าจะเป็นคนที่อยู่ในประเทศที่พัฒนาแล้วหรือประเทศที่กำลังพัฒนา เนื่องด้วยเทคโนโลยีต่างๆ เช่น อินเทอร์เน็ต ซอฟต์แวร์ หรือแม้กระทั่งช่องทางการสื่อสาร ซึ่งผู้เขียนได้พูดถึงเทคโนโลยีต่างๆ ได้อย่างน่าอ่าน

มีเนื้อหาที่น่าสนใจหลายเรื่อง ยกตัวอย่าง ในยุคฟองสบู่ดอทคอมเฟื่องฟู ก่อนที่ฟองสบู่จะแตกนั้นทุก ๆ คนคิดว่าใครจับธุรกิจประเภท ดอทคอม หรือสร้างเว็บไซต์ ให้คนเข้ามาใช้บริการเยอะๆ เรียกเก็บค่าโฆษณา Banner หรืออื่น ๆ จะประสบความสำเร็จ … เลยทำให้ทุำกคนทั้งโลก หันมาพัฒนาเทคโนโลยีทางด้านนี้ ไม่ว่าจะเป็น Server Software อุปกรณ์ Network เทคนิคการรับส่ง อย่างไรให้เร็ว เล็ก เสถียร กินไฟน้อย หรือแม้แต่แ่ข่งขันระหว่างเทคโนโลยี เป็นต้น ซึ่งงานวิจัยทางด้านนี้ผุดมาเป็นดอกเห็ด . เหมือนกับว่าใครไม่ได้ทำวิจัยด้านนี้คงหลุดวงการเป็นแน่ บริษัุทฯ ต่างๆ มองเห็นลู่ทาง จึงลงทุนกับโครงสร้างพื้นฐานของระบบอินเทอร์เน็ต เช่น วางสายไฟเบอร์ ระหว่างประเทศเพื่อรองรับ Traffic ที่จะเกิดขึ้นจากการบูม ของธุรกรรมแบบดอนเน็ต … คิดถึงสมัยสงครามโลก ที่มีการพัฒนาเทคโนโลยีทางการทหารไปค่อนข้างมาก รวมทั้งยานพาหนะ รวมทั้งเทคโนโลยีนิวเคลียร์ ที่หลายๆ ประเทศต่อยอดเอามาทำเป็นโรงไฟฟ้าพลังงานนิวเคลียร์ ในปัจจุบัน

และฟองสบู่ดอทคอมก็แตกกระจาย อุปสงค์ไม่ได้มากอย่างที่คิด จึงทำให้บริษัทฯ ที่วางไฟเบอร์ระหว่างประเทศ ที่เตรียมตัวรับ Traffic ที่อาจเกิดขึ้น กลายเป็นลงทุนเกินตัว บริษัทฯ ที่มีสายป่านน้อยก็ปิดตัว และก็ให้บริการค่าเช่า Link ในราคาถูกแสนถูก ถูกจนทำให้ราคาการเช่า Link ทั้งระบบลดลง และเป็นผลทำให้ Link ระหว่างประเทศ ของภูมิภาคอื่นๆ ถูกตามไปด้วย .. จนอนาคตอาจกลายเป็นให้บริการฟรีก็เป็นไปได้ จุดนี้เป็นจุดเปลี่ยนครั้งสำคัญ เนื่องราคา Link ที่ถูกแสนถูก ทำให้ประเทศที่มี Link ไปถึงในราคาถูก เหมือนถูกหวย .. เช่น อินเดีย .. ประเทศที่พูดภาษาอังกฤษได้ มีคนชั้นกลางที่มีความต้องการประสบความสำเร็จในชีวิต ค่อนข้าง มาก และพร้อมจะทำงานหนัก จึงทำให้งานจากประเทศที่มีค่าแรงสูง เช่น สหรัฐฯ เริ่มทำการโอนงานที่ เป็นงานทำซ้ำ ๆ ใคร ๆ ก็ทำได้ เช่น Call Center ไปยังอินเดีย .. เนื่องจากเปรียบเทียบราคาค่าจ้าง คนสหรัฐฯทำหน้าที่ Call Center 1 คน แพงกว่า ค่า Link โทรศัพท์ไปยังอินเดีย และจ้างพนักงาน Call Center อินเดียได้อีกหลาย ๆ คน นี่ยังไม่รวมถึงมีการ OutSource การป้อนข้อมูล AutoCAD แบบบ้าน ของคนญี่ปุ่น ที่ส่งไปให้คนจีน ในเมืองต้าเหลียน ป้อนเข้าโปรแกรม AutoCAD หรืออื่นๆ และส่งกลับไปให้คนญี่ปุ่น นั่นหมายถึง ถ้าที่ใดมีแรงงานถูก คนมีคุณ฿าพ การสื่อสารดี งานจะหลั่งไหลไปที่นั่น ..

คำศัพท์ที่น่าสนใจ

Outsourceing : กระบวนการแบ่งงานเป็นส่วนงานย่อย หรืองานที่ไม่ใช่หลัีกของธุรกิจ ไปให้คนอื่นทำ โดยอาจจะมีแรงจูงใจเรื่องค่าจ้างที่ถูกกว่า ตัวอย่าง สายการบินต่างๆ ในสหรัฐฯ Outsource งาน Call Center ไปให้บริษัทฯ Call Center ในอินเดีย ทำ

OffShoring: หมายถึงส่งกระบวนการผลิตทั้งหมดไปให้บริษัทฯ อื่นทำ ตัวอย่าง บริษัทฯ ผลิตรองเท้า ยกกระบวนการผลิตไปให้บริษัทฯ ในจีนเป็นผู้ผลิต และแปะตราสินค้า เป็นต้น
Supply Chining : ห่วงโซ่อุปทาน กระบวนการตั้งแต่เริ่มต้นผลิตสินค้า ขนส่ง ไปจนกระทั่งถึงมือผู้บริโภค ผ่านขั้นตอนอย่างไร รวมถึงการ distribution และ shipping สินค้าเป็นต้น ตัวอย่าง ห้างสรรพสินค้า Wall-Mart มีการจัดการห่วงโซ่อุปทาน ตั้งแต่คัดเลือกบริษัทฯ ผู้ผลิตสินค้า สั่งซื้อสินค้า จัดวางสินค้าโชว์ในห้าง จำหน่ายให้ลูกค้า แม้กระทั่งอนุญาตให้ผู้ผลิต สามารถเห็น Transaction ว่าในขณะนี้ สินค้าที่อยู่ในห้างนั้น มีลูกค้าซื้อไปจำนวนเท่าไหร่ เพื่อให้ผู้ผลิตสามารถ เตรียมตัวผลิตสินค้าได้ทัน และไม่ให้สินค้าขาดไปจากชั้นวางของห้าง เป็นต้น
Insourcing : การให้บริษัทฯ อื่นสามารถเข้ามาช่วยปรับปรุงระบบการงาน เพื่อให้ระบบงานของเราสามารถเข้ากันได้และใช้ร่วมกันกับระบบงานของบริษัทฯ อื่น ได้อย่างมีประสิทธิภาพ ตัวอย่าง บริษัทฯ UPS เข้ามาช่วยวิเคราะห์ และปรับปรุงกระบวนการทำงานของบริษัทฯ ผลิตรองเท้า เช่นการออกแบบกล่องผลิตภัณฑ์ เพื่อให้มีขนาดอยู่ในมาตรฐานของ UPS เพื่อ UPS เองจะสามารถจัดส่งได้อย่างสะดวก รวดเร็ว รวมถึงการที่บริษัท HP มอบให้ UPS เป็นผู้ซ่อมเครื่องคอมพิวเตอร์ Notebook ที่ศูนย์ของบริษัท UPS และส่งกลับให้ลูกค้าในวันรุ่งขึ้น แทนที่จะนำเครื่อง Notebook มาซ่อมยังบริษัทฯ
ซึ่งเป็นการโอนงานซ่อมบำรุง ให้กับ UPS ดำเนินการแทน

ใครว่าโลกกลม เล่ม 2

เนื้อหาเล่มนี้ ค่อนข้างจะมองภาพกว้างขึ้นมา ว่า แล้วอนาคต จะเป็นอย่างไร คนรุ่นหลัง ๆ รุ่นลูก รุ่นหลานเรานั้น จะปรับตัวอย่างไรกับสถานการณ์แบบนี้ แต่ละประเทศจะต้องทำอย่างไร ปรับตัวอย่างไร ถึงจะอยู่ได้ในโลกที่การแข่งขันไม่มีพรมแดน … ประเทศเล็ก ๆ จะสู้ประเทศใหญ่ ได้ไหม ประเทศที่พัฒนาแล้วจะรับมืออย่างไร กับงานที่หลังไหลไปยังประเทศที่มีค่าแรงถูกกว่า

โดยเ่ล่ม 2 นี้ ยังยกตัวอย่างเฉียดคมเหมือนเคย .. ตัวอย่างเช่น บิลล์เกต พ่อมด Microsoft พูดว่า “ในยุคก่อน หากให้เลือกเกิดระหว่างเป็นคนปกติในเมืองเล็ก ๆ รัฐนิวยอร์ค กับเกิดเป็นคนอัจฉริยะที่เมืองเล็ก ๆ ในอินเดีย หรือจีน ผมคงเลือกเกิดที่นิวยอร์ค เนื่องจากว่าผมจะได้มีโอกาสที่ดีกว่า แต่นั่นมันความคิดในอดีต แต่ในปัจจุบันผมขอเกิดเป็นอัจฉริยะในเมืองเล็กๆ ในอินเดีย หรือจีน ดีกว่าเกิดเป็นคนปกติในเมืองใหญ่” ได้ยินคำนี้จาก บิลล์เกต แล้ว … ฮื่ม คมจริงๆ

ระหว่างที่เขียนนี้ ผมยังรอ ใครว่าโลกกลมเล่ม 3 ครับ .. หวังว่าคงอีกไม่นานจะได้อ่านกัน

นี่และครับ คือความหมายของคำว่า โลกแบน ของคนเขียน
thomas_friedman.jpg

คุณ Thomas Friedman

ขอบพระคุณที่สนใจอ่าน

Reference :
Wiki : http://en.wikipedia.org/wiki/The_World_is_Flat
Thomas Friedman : http://www.thomaslfriedman.com/
สั่งซื้อหนังสือ : http://www.chulabook.com

Powered by WordPress