Wednesday, February 11, 2009

Secure TCP/IP Connections with SSH Tunnels กับ PostgreSQL

ผมชอบ SSH ตรงที่มันสามารถทำ SSH Tunnels ได้นี่แหละ และก็อีกครั้งที่ผมได้ประสบการณ์ดี ๆ เกี่ยวกับการใช้งาน Database ระยะไกลอีกครั้ง

|---------------------|
| 222.222.22.222 |
| Postgres:5432 |
|----------|----------|
|
|
|---------------------|
| 10.0.0.01 |
| Firewall |
|----------|----------|
|
|
|---------------------|
| 10.0.0.20 |
| local web server |
|----------|----------|


ดูจากรูป เครื่อง Server ของผมฝากไว้ที่ ISP โดยได้ทำการ ติดตั้ง PostgreSQL และ run ไว้ที่พอร์ต 127.0.0.1:5432 เพราะว่าไม่อยากให้ใครมาต่อ นอกจากที่ตัวมันเอง

คราวนี้ก็เป็นประเด็นว่า แล้วถ้าอยากต่อ Database ไปยังเครื่อง Server จากที่อยู่หลัง FireWall หละ จะทำอย่างไร อย่างแรกที่นึกออกก็คือ VPN

หลังจากติดตั้ง OpenVPN แล้ว ปัญหาก็ตามมา คือ มันช้า แล้วก็หลุดบ่อยด้วย หาทางแก้อยู่ตั้งนาน สุดท้ายก็มาจบที่ SSH Tunnel อีกตามเคย


เอกสารที่ผมนำมาเล่าให้ฟังนั้นสามารถอ่านแบบภาษาอังกฤษได้ที่ http://developer.postgresql.org/pgdocs/postgres/ssh-tunnels.html


ขั้นแรกก็ SSh เข้าไปที่เครื่อง local ก่อน
$ ssh username@10.0.0.20

ต่อมาก็ต้องลุยด้วยการสร้าง Tunnel
$ ssh -L 63333:localhost:5432 username@222.222.222.222
# อธิบายได้ดังนี้
# จะทำการสร้าง Tunnel ที่ 10.0.0.20:63333 (เค้าเรียกว่า End of Tunnel) ไปยัง 222.222.222.222:5432 (เรียกว่า End of Remote Tunnel) และก็เป็นพอร์ตที่เปิดให้บริการ Database อยู่ด้วย
# โดยใช้ผู้ใช้งาน username ต่อไปยัง 222.222.222.222

ที่เครื่อง local web server ตรวจดูความเรียบร้อยหน่อยว่า มีการเปิดพอร์ต 63333 ไว้จริงหรือไม่ด้วย
$ netstat -an |grep 63333

จากนั้นก็ลองดูว่าสามารถใช้งาน postgres ได้จากเครื่อง local หรือไม่
$ psql -h localhost -p 63333 -U postgresuser -l


แล้วคุณจะพบกับความมหัศจรรย์

Sunday, February 1, 2009

Finish, Done, Ready ในความหมายของฝรั่ง

อันนี้ดองไว้นาน...

คุณมีความคิดเห็นอย่างไรกับคำว่า Finished, Done และ Ready
เวลาใช้งานนั้นต้องดูว่าใช้งานกับใคร ถ้าเป็นคนไทยคำ 3 คำนั้นดูแล้วมีความหมายเหมือนกันคือเสร็จซักที แต่หากนำไปใช้กับฝรั่ง หรือคนที่ยึดมั่นในความหมายของมันแล้วนั้นคุณอาจใช้ผิดก็ได้

คำว่า Finish, Done และ Ready นั้น ในทางปฏิบัติกับฝรั่งนั้นจะมีความหมายว่า เสร็จสิ้น ไม่มีอะไรทำต่อแล้ว ถ้าหากต้องมีการทำต่อคือสิ่งที่เพิ่มเติมภายหลัง แต่บ่อยครั้งที่ผมพลาดไป คือ เสร็จแล้ว แต่ว่าขอแก้ไขตรงนี่นิด ตรงนั้นหน่อย จึงไม่แปลกว่าฝรั่งเค้าจะเคืองได้

ตั่งแต่นั้นเป็นต้นมาผมจึงใช้คำว่า Finish, Done และ Ready น้อย ๆ และเมื่อมันถึงเวลาแล้วเท่านั้น

Monday, December 29, 2008

สิ่งที่ได้จากวังน้ำเขียว

จากบทความเก่า "ปีนี้ไปไหนดี ... วังน้ำเขียว"

"นั่น ๆ เห็นภูเขาลูกนั้นหรือเปล่า? เรากำลังจะขับไปที่นั้นแหละ" เป็นประโยคหนึ่งที่ผมได้เอ่ยกับคนที่นั่งรถไปกับผม ตรงนี้ถือว่าเป็นจุดแรกที่เราจะเห็นภูเขาที่เรากำลังจะไป และบนนั้นเป็นดินแดนที่ใคร ๆ ก็นิยมไปพักผ่อนกันในยามนี้ นั้นคือ "วังน้ำเขียว".

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

ถ้าหากดูแผนที่ภูมิทัศน์กูเกิล จะเห็นว่า อ.วังน้ำเขียวนั้นเป็นพื้นที่ราบบนภูเขา มีภูเขาล้อมรอบ อุณหภูมิเฉลี่ยประมาณ 14-28 องศาเซลเซียส และเนื่องจากภูมิอากาศอย่างนี้นี่เอง หลาย ๆ คนจึงอยากมาสัมผัสบรรยากาศ ถัดจาก อ.วังน้ำเขียวขึ้นไปคือ อ.ปักธงชัย เป็นดินแดนแห่งผ้าไหม และเป็นเส้นทางไป อ.เมือง จ.นครราชสีมาด้วย

"แผนที่" พูดถึงแผนที่แล้วฮา ที่จริงแล้วผมขับโดยไม่ใช้แผนที่ก็ได้เพราะเคยไปมาแล้ว แต่ผมดันติดแผนที่ที่หาได้จากอินเตอร์เน็ต ซึ่งเป็นแผนที่ที่ใช้สำหรับระบบระบุตำแหน่ง หรือที่เรียกว่า GPS พิมพ์ออกมาได้ 33 แผ่น อย่างละเอียด แต่มันดูเหมือนเป็นของเล่นระหว่างทางมากกว่า เพราะว่าการพิมพ์ออกมาไม่ได้ระบุเลขหน้าไว้ ทำให้พวกเราต้องใช้เวลาในการเรียงหน้ากัน แต่... ด้วยมือสมัครเล่นอย่างพวกผม ทำให้การใช้แผนที่ครั้งนี้เป็นการยืนยันว่า แผนที่ถูกต้อง คือ ผมจะคอยบอกคนที่กำลังเล่นตัวต่อว่า เราผ่าน จุดนี้ จุดโน้น มาแล้ว แล้วทางผู้เล่นจึงค่อยเจอแผนที่แต่ละแผ่น ครั้งนี้จึงได้บทเรียนที่ดี 2 ข้อคือ ข้อที่ 1 ให้นำแผนที่แผ่นใหญ่ ๆ ติดตัวไปด้วย ส่วนข้อ 2 ระหว่างทางถ้ามีเกมส์เล่นของผู้ร่วมเดินทาง คนขับรถจะได้ไม่เหงา เอาไว้แก้เผ็ดคนที่ชอบนอนระหว่างทาง

เส้นทางที่เราต้องขับให้เจออันแรกคือ ถนนสาย 304 ซึ่งจะเป็นถนนที่มุ่งหน้าไปสู่ อ.วังน้ำเขียว ขับไปเรื่อย ๆ ไม่ต้องเลี้ยว แล้วเราจะผ่าน อ.กบินทร์บุรี เราก็จะเห็นป้ายที่บอกว่าตรงไป อ.วังน้ำเขียว

"ปั๊มน้ำมัน" สำหรับมือใหม่ที่ไม่เคยไปเส้นทางนี้ หลังจากผ่าน อ.กบินทร์บุรี มุ่งหน้าไปยัง อ.วังนำ้เขียว จะเห็นป้าย บอกเป็นระยะว่า "ปั้มสุดท้ายอยู่ข้างหน้า อีก ... กิโลเมตร" ถ้าหากคุณเป็นคนต้องเติมน้ำมันมียี้ห้อหละก็ แนะนำให้เติมแถว ๆ อ.กบินทร์บุรีนะครับ


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

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

"กลับรถเข้าซอย" อันที่จริงสิ่งที่ผมคิดไว้คือ อ.วังน้ำเขียวน่าจะหมายถึงทั้งอำเภอ ที่เป็นแหล่งท่องเที่ยว แต่แท้จริงแล้ว มันแค่ซอย หรือ ถนนเดียวเอง น่าเสียดาย

หลังจากกลับรถและเข้าไปในถนนที่มุ่งสู่ ต.ไทยสามัคคี แล้ว ระหว่างทางจะเห็นว่ามีสถานที่เที่ยวมากมาย


อ่านต่อฉบับหน้าแล้วกัน

Monday, December 8, 2008

วัฒนธรรมประจำชาติ (Updated)

ผมมีความคิดอยู่อย่างแล่นเข้ามาในสมองพอดี ขอจดไว้ก่อน

ถ้าหากเรานั้นถูกซึมซับไปด้วยวัฒธรรมจากต่างประเทศเช่น

อเมริกา สินค้าและวัฒนธรรมการเรียน
ยุโรบ การเรียน อันนี้เจอเอง
ญึ่ปุ่น มาจากเพลง และกิโมโน
ไตหวัน เริ่มจาก F4 มั้ง นักร้อง
เกาหลี มาโดยภาพยนต์และเพลง
จีน สินค้าและภาษาที่ต้องติดต่อ


แล้วแต่ละวัฒนธรรมก็ตามมาด้วยสินค้า ที่ธรรมดา แต่อยากมี อยากเห็น อยากเที่ยว

สิ่งที่สะท้อนกลับมาให้เห็นความสำเร็จของสิ่งเหล่านี้คือ วัยรุ่น วัยรุ่นเรากำลังถูกซึมซับ และบังคับให้เปลี่ยนพฤติกรรมต่าง ๆ ไปแต่ละยุคและสมัย แล้วสิ่งเหล่านี้จะรู้อีกทีก็ถูกกลืนกินแล้ว

--- Updated --
ผมนึกภาพไม่ออกตอนที่ ถ้าฝรั่งมาบ้านเราแล้วถามว่า ชุดไทย หรือการไหว้ แบบไทย ๆ เป็นอย่างไร เดี๋ยวนี้เห็นแต่จับมือแล้วบอกว่า Haloo

Monday, November 10, 2008

ปีนี้ไปไหนดี ---> วังน้ำเขียว


เดือนหน้าแล้วสิ วังน้ำเขียว ขับผ่านตั้งหลายรอบ แต่ไม่ค่อยได้เข้าไปดู ไม่รู้ว่าเป็นอย่างไรบ้าง



Wednesday, October 15, 2008

คนเก่งเยอะ แต่ไม่ได้ทำงานร่วมกัน

ฝากไว้นานสำหรับเรื่องนี้ น่าจะประมาณ 3 เดือนมาแล้ว

มีคำพูดไว้ว่า "คนไทยเก่ง ๆ มีเยอะ แต่ว่าไม่ได้อยู่รวมกัน ไม่ได้ทำงานร่วมกัน แต่กระจายกันอยู่" ลองมานึกภาพดูก็จริงดังว่า ในหลาย ๆ บริษัทเราจะเห็นได้ว่า จะมีไม่กี่คนที่ยุ่ง ๆ วุ่น ๆ เก่ง ๆ นั่นก็เพราะว่ามีคนเก่งน้อย แล้วก็ยังถูกใช้ไปในทางที่ไม่ถูกต้องอีก เช่น คนที่คิดเก่ง ๆ จะโดนไปให้ซ่อมคอมฯ หรือว่า คนที่ทำงานเก่ง ๆ ก็ให้ไปทำงานด้านเอกสารซะอย่างนั้น ดังนั้นปัญหาจึงอยู่ที่ว่าจะใช้คนเหล่านี้อย่างไร

แสดงไฟล์ pdf ด้วย php

เดี๋ยวนี้ทำพวก coding เยอะ
อย่างเช่นตัวอย่างนี้ เหตุเกิดเพราะว่า จะมีการเรียก pdf ไฟล์จากเครื่อง server อีกเครื่องหนึ่ง โดยที่ไม่ต้องการให้ผู้เรียกใช้งานรู้ว่า file pdf มาจากไหน ก็เลยส่งเป็น request มาให้ เช่น

/searchResearchContent.php?NewsID=12121212&key=12121311AABDDD00

แล้วให้เราส่งเป็น ไฟล์ pdf ออกมา  วิธีการก็ง่าย ๆ แค่ ต้องเข้าใจ Header ก็พอ

-- php --
$filename = "38_file.pdf"; 
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header('Content-disposition: attachment; filename='.basename($filename)); 
header("Content-Type: application/pdf"); 
header("Content-Transfer-Encoding: binary"); 
header('Content-Length: '. filesize($filename)); 
readfile($filename);
-- php --

ในกรณีที่ต้องการให้แสดง pdf ใน Browser ก็แค่เปลี่ยนจาก "Content-disposition: attachment;" เป็น "Content-disposition: inline;" เท่านั้นเอง