Home | Back
ทดลอง Native Coroutines ของ Python เมื่อนำมาเทียบกับ Goroutines ในภาษา Go
Monday, 8 February 2016
ในการพัฒนาระบบสารสนเทศในปัจจุบัน มีความต้องการความสามารถที่จะทำงานได้อย่างต่อเนื่อง หรือที่เรียกว่ามี Concurrent สูง ๆ ซึ่งเทคนิคที่นิยมใช้ในปัจจุบันคือการเขียนโปรแกรมแบบ Asynchronous ใน Python จะมีการเขียนโปรแกรมแบบ Asynchronous โดยการใช้ Coroutines ส่วนในภาษา Go จะใช้สิ่งที่เรียกว่า Goroutines ซึ่งผมได้ทดลองเขียนโค้ดตัวอย่างเพื่อเปรียบเทียบ การเขียนโปรแกรมแบบ Asynchronous ของทั้งสองภาษาดังนี้ครับ
Read more
ตัวอย่าง Code สำหรับรัน WSGI Web Application ด้วย Gevent แบบ Multicore
Friday, 12 December 2014
ผมได้ทดลองสร้างตัวอย่าง Code สำหรับรัน WSGI Web Application ด้วย Gevent ที่สามารถทำงานแบบ Multicore ได้ ดังนี้ครับ
Read more
โปรแกรมเก็บ Proxy Log แบบใช้ Multiprocessing Pool
Saturday, 26 October 2013
คราวก่อนผมได้ทดลองสร้างโปรแกรมเก็บ Proxy Log ด้วย Python ซึ่งใช้เทคนิคการสร้าง Process มารับงานแล้วสร้าง Thread มารับงานต่อ (บทความคราวก่อน) ครั้งนี้ผมได้ทดลองสร้าง Proxy Log ใหม่ด้วยเทคนิคการสร้าง Process Pool เลยอยากโพสเก็บไว้ดูวันหลังอีกดังนี้ครับ
Read more
ทดลองสร้างโปรแกรมเก็บ Proxy Log ของ Squid 3.3.8 ลง MySQL ด้วย Python
Wednesday, 23 October 2013
ผมได้ทดลองทำ Proxy Server ใหม่ด้วย Squid 3.3.8 และให้ส่ง Access Log ไปเก็บที่ Log Server ด้วย udp โดยใน Log Server ผมได้สร้างโปรแกรมที่ทำการรับ log จาก udp มาเก็บใน MySQL เพื่อความสะดวกในการดูแล ค้นหา และ สกัด log โดยรายละเอียดมีดังนี้ครับ
Read more
การ Deploy Web Application ที่พัฒนาด้วย Bottle ใน Apache2+Gevent ใน Ubuntu 12.04
Monday, 18 February 2013
คราวที่แล้วผมได้เขียนบทความเกี่ยวการพัฒนาระบบสารสนเทศด้วย Flask กับ Gunicorn ซึ่งผมได้ทำการศึกษาเกี่ยวกับ Framework ในภาษา Python เพิ่มเติม ก็พบว่ามี Framework ตัวนึงที่น่าสนใจมาก ๆ ซึ่งมีประสิทธิภาพสูงและมีเสถียรภาพมาก ๆ นั้นก็คือ Bottle ครับและเมื่อนำมาใช้คู่กับ WSGI Server อย่าง Gevent แล้ว จะสามารถรองรับงานได้อย่างมหาศาลเลยทีเดียว โดยมีขั้นตอนดังนี้ครับ
Read more
PyDev plugin สำหรับการเขียน Python บน Eclipse ใน Ubuntu
Friday, 25 January 2013
ในการพัฒนาระบบสารสนเทศนั้น เราจำเป็นต้องมีเครื่องมือสำหรับการพัฒนาระบบ ซึ่งเครื่องมือชนิดหนึ่งที่จำเป็นและขาดไม่ได้คือ Integrated Development Environment (IDE) ซึ่งก็คือชุดรวมเครื่องมือที่จำเป็น เช่น Editor, Complier, Debugging หรือแม้่เป็น Control Version Repository ด้วย ไว้ด้วยกัน โดยเครื่องมือที่ตัวผมนิยมใช้คือ Eclipse ซึ่งเป็นเครื่องมือพัฒนาระบบที่สามารถทำงานได้ในหลาย ๆ แพลตฟอร์ม เช่น วินโดว์ และ ลินุกซ์ เป็นต้น ซึ่งตัว Eclipse จะเป็นที่นิยมในการพัฒนาโปรแกรมภาษา Java แต่กระนั้นก็สามารถใช้พัฒนาโปรแกรมภาษาอื่น ๆ ได้ เช่น C, PHP หรือ Python ได้ โดยผ่าน plugin โดยในบทความนี้จะแนะนำวิธีการลง PyDev ซึ่งเป็น plugin สำหรับการพัฒนาโปรแกรมภาษา Python บน Eclipse ใน Ubuntu ดังนี้ครับ
Read more
การ Deploy Web Application ที่พัฒนาด้วย Flask ใน Apache2+Gunicorn ใน Ubuntu 12.04
Monday, 14 January 2013
ช่วงนี้ผมอยู่ในระหว่างการพัฒนาระบบสารสนเทศตัวใหม่ ซึ่งผมใช้ Flask เป็น Framework ในการพัฒนา และทำการ Deploy โดยใช้ Apache2 เป็น Front-end Web Server และใช้ Gunicorn เป็น WSGI Server ซึ่งต้องมีการปรับแต่งค่าต่าง ๆ เพื่อให้สามารถใช้งานได้ โดยมีขั้นตอนดังนี้ครับ
Read more
Home | Back
ในการพัฒนาระบบสารสนเทศในปัจจุบัน มีความต้องการความสามารถที่จะทำงานได้อย่างต่อเนื่อง หรือที่เรียกว่ามี Concurrent สูง ๆ ซึ่งเทคนิคที่นิยมใช้ในปัจจุบันคือการเขียนโปรแกรมแบบ Asynchronous ใน Python จะมีการเขียนโปรแกรมแบบ Asynchronous โดยการใช้ Coroutines ส่วนในภาษา Go จะใช้สิ่งที่เรียกว่า Goroutines ซึ่งผมได้ทดลองเขียนโค้ดตัวอย่างเพื่อเปรียบเทียบ การเขียนโปรแกรมแบบ Asynchronous ของทั้งสองภาษาดังนี้ครับ
ผมได้ทดลองสร้างตัวอย่าง Code สำหรับรัน WSGI Web Application ด้วย Gevent ที่สามารถทำงานแบบ Multicore ได้ ดังนี้ครับ
คราวก่อนผมได้ทดลองสร้างโปรแกรมเก็บ Proxy Log ด้วย Python ซึ่งใช้เทคนิคการสร้าง Process มารับงานแล้วสร้าง Thread มารับงานต่อ (บทความคราวก่อน) ครั้งนี้ผมได้ทดลองสร้าง Proxy Log ใหม่ด้วยเทคนิคการสร้าง Process Pool เลยอยากโพสเก็บไว้ดูวันหลังอีกดังนี้ครับ
ผมได้ทดลองทำ Proxy Server ใหม่ด้วย Squid 3.3.8 และให้ส่ง Access Log ไปเก็บที่ Log Server ด้วย udp โดยใน Log Server ผมได้สร้างโปรแกรมที่ทำการรับ log จาก udp มาเก็บใน MySQL เพื่อความสะดวกในการดูแล ค้นหา และ สกัด log โดยรายละเอียดมีดังนี้ครับ
คราวที่แล้วผมได้เขียนบทความเกี่ยวการพัฒนาระบบสารสนเทศด้วย Flask กับ Gunicorn ซึ่งผมได้ทำการศึกษาเกี่ยวกับ Framework ในภาษา Python เพิ่มเติม ก็พบว่ามี Framework ตัวนึงที่น่าสนใจมาก ๆ ซึ่งมีประสิทธิภาพสูงและมีเสถียรภาพมาก ๆ นั้นก็คือ Bottle ครับและเมื่อนำมาใช้คู่กับ WSGI Server อย่าง Gevent แล้ว จะสามารถรองรับงานได้อย่างมหาศาลเลยทีเดียว โดยมีขั้นตอนดังนี้ครับ
ในการพัฒนาระบบสารสนเทศนั้น เราจำเป็นต้องมีเครื่องมือสำหรับการพัฒนาระบบ ซึ่งเครื่องมือชนิดหนึ่งที่จำเป็นและขาดไม่ได้คือ Integrated Development Environment (IDE) ซึ่งก็คือชุดรวมเครื่องมือที่จำเป็น เช่น Editor, Complier, Debugging หรือแม้่เป็น Control Version Repository ด้วย ไว้ด้วยกัน โดยเครื่องมือที่ตัวผมนิยมใช้คือ Eclipse ซึ่งเป็นเครื่องมือพัฒนาระบบที่สามารถทำงานได้ในหลาย ๆ แพลตฟอร์ม เช่น วินโดว์ และ ลินุกซ์ เป็นต้น ซึ่งตัว Eclipse จะเป็นที่นิยมในการพัฒนาโปรแกรมภาษา Java แต่กระนั้นก็สามารถใช้พัฒนาโปรแกรมภาษาอื่น ๆ ได้ เช่น C, PHP หรือ Python ได้ โดยผ่าน plugin โดยในบทความนี้จะแนะนำวิธีการลง PyDev ซึ่งเป็น plugin สำหรับการพัฒนาโปรแกรมภาษา Python บน Eclipse ใน Ubuntu ดังนี้ครับ
ช่วงนี้ผมอยู่ในระหว่างการพัฒนาระบบสารสนเทศตัวใหม่ ซึ่งผมใช้ Flask เป็น Framework ในการพัฒนา และทำการ Deploy โดยใช้ Apache2 เป็น Front-end Web Server และใช้ Gunicorn เป็น WSGI Server ซึ่งต้องมีการปรับแต่งค่าต่าง ๆ เพื่อให้สามารถใช้งานได้ โดยมีขั้นตอนดังนี้ครับ