BioLawCom.De » Blog » Python

โปรแกรมช่วยเขียนบทความทางการเมือง

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

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

# -*- coding: utf8 -*-
 
replace_str = {
	'เหลือง'		: 'แดง',
	'สมัคร'		: 'อภิสิทธิ์',
	'สมชาย'		: 'อภิสิทธิ์',
	'สนามบิน'		: 'อาเซียนซัมมิท',
	'ตำรวจ'		: 'ทหาร',
	'แก้สน้ำตา'		: 'ปืน',
}
 
old_article = """"""
new_article = """"""
for i in replace_str : new_article = old_article.replace(i, replace_str[i])
print new_article
plain code

สำหรับคนที่สนใจใช้งาน ต้องไปดาวน์โหลด Python มาติดตั้งก่อน จากนั้นก็กำหนดค่า old_article ซึ่งก็คือ บทความของคุณที่เขียนขึ้น ระหว่างที่ นาย สมัคร และ นาย สมชาย เป็นนายกรัฐมนตรี ตัวโปรแกรมจะเปลี่ยนคำในบทความ จากคำว่า "เหลือง" เป็น "แดง", "สมัคร" เป็น "อภิสิทธิ์" หรือไม่ก็ "สมชาย" เป็น "อภิสิทธิ์" และ "สนามบิน" เป็น "อาเซียนซัมมิท"

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

เขียนโปรแกรม เขียนโปรแกรม

13 Apr 09 | by bow_der_kleine | tags เขียนโปรแกรม เหตุบ้าน และ การเมือง Python

read 1660 comments 3 read more

อะไรที่ Python มี แต่ PHP ไม่มี และในทางกลับกัน

imageช่วงนี้ผมต้องเขียนโปรแกรมด้วยสองภาษาคือ Python กับ PHP เวลาสลับภาษาไปมาก็จะเกิดอาการงง ๆ เล็กน้อย ชอบเอา Features ของภาษานึงไปใช้กับอีกภาษา ชอบเขียน Syntax ผิด ฯลฯ พอมากเข้าก็รู้สึกได้ ว่าสองภาษานี้ต่างกันมาก การออกแบบที่มีที่มาและจุดประสงค์ที่ต่างกัน วิธีคิดเวลาเขียนโปรแกรมที่ต่างกัน เลยอยากลองสรุปดูว่า มันมีอะไรที่ผมได้ใช้ในภาษาหนึ่ง แต่กลับไม่มีในอีกภาษา

อันที่จริงบล็อกนี้ ก็ไม่ต่างกับเอกสาร Python vs PHP ใน Python Wiki เท่าไร และทั้งสองภาษาต่างก็มีความสามารถสำหรับเขียนโปรแกรมในรูปแบบต่าง ๆ ได้พอ ๆ กัน แต่ด้วยความสบายที่ต่างกัน หากคนที่เขียน PHP เป็นอยู่แล้ว และอยากลองเขียน Python (ในทางกลับกันคงหายาก) อาจนำไปใช้เป็น guideline ได้ครับ

สิ่งที่ Python มี แต่ PHP ไม่มี

1 string is a list ทำให้เรานำความสามมารถต่าง ๆ ที่มีอยู่ใน list มาใช้กับ string ได้ทันที รู้สึกได้ถึงความ powerful โดยเฉพาะการเรียกใช้ method ต่าง ๆ ใน PHP ฟังก์ชันที่ใช้กับ string และ array จะแยกออกจากกันเด็ดขาด ทำให้หลาย ๆ ครั้งต้องจำและทำความเข้าใจฟังก์ชั่นสองตัว ที่ทำงานเหมือนกัน แต่ตัวหนึ่งใช้กับ string อีกตัวใช้กับ array

2 in-statement เป็นอะไรที่อำนวยความสะดวกได้มาก เราสามารถใช้ in ตรวจสอบได้ว่า ตัวแปรหนึ่งเป็นสมาชิกของอีกตัวแปรหนึ่งหรือไม่ เช่น "abc" in "abcdef" จะส่งค่ากลับมาเป็น True และ 1 in [2, 3, 4]  จะส่งค่ากลับมาเป็น False เป็นต้น ใน PHP ต้องใช้ฟังก์ชั่น in_array , array_key_exists แล้วก็ strpos แทน (แยกฟังก์ชันตามประเภทตัวแปร) ซึ่ง in-statement ของ Python ง่ายกว่าเห็น ๆ แล้วมันเป็นอะไรที่ใช้บ่อยเสียด้วยสิ ...

เขียนโปรแกรม เขียนโปรแกรม

16 Jan 09 | by bow_der_kleine | tags เขียนโปรแกรม Python PHP

read 1950 comments 6 read more

Play PIL (Python Image Library) with NumPy

image พอดีใน Blognone มีคนเข้ามาถามเกี่ยวกับ Image Processing ด้วย Python โดยการใช้โมดูลของ Python ที่มีชื่อว่า PIL (Python Image Library) ทีแรกผมคิดว่าจะตอบในฟอรั่มโดยตรง แต่ดูท่าจะยาว เลยเก็บมาเขียนเป็นบล็อกแทน

PIL ถือเป็นโมดูลสำหรับ Image Processing ที่ทรงพลัง ใช้งานง่าย และสนับสนุนไฟล์ภาพหลายรูปแบบด้วยกัน (ดูฟอร์แมตภาพที่ PIL สนับสนุนได้ที่  PIL Handbook)  ความสามารถของ PIL ครอบคลุมงานเกี่ยวกับ Image Processing ที่ใช้งานปกติได้เกือบทั้งหมด แต่ทั้งนี้ทั้งนั้นยังมีงานบางประเภทที่เราต้องออกแรงเขียนโปรแกรมเอง ตัวอย่างการเขียนโปรแกรมด้วย PIL สามารถดูได้ที่ เอ็นโปรเทค ซึ่งจากตัวอย่างจะเห็นได้ว่า เราสามารถเขียนโปรแกรมร่วมกับ PIL ได้โดยใช้ Python List ด้วยวิธีการดังกล่าว เราต้องวนลูปหลาย ๆ รอบ เพื่อรับค่าแต่ละ Pixel จากรูปภาพ แล้วนำไปประมวลผลอีกครั้งหนึ่ง ผลที่ได้คือ การเขียนโปรแกรมที่ซับซ้อน และทำงานช้า

ด้วยความที่ผมทำงานกับ NumPy ทุกวี่วัน ก็เลยอดไม่ได้ที่จะนำ PIL มาทำงานร่วมกับ NumPy เพื่อผนึกกำลังสองความสามารถให้เป็นหนึ่ง นำการคำนวนแบบ numerical ของ NumPy มาใช้ในงาน Image Processing ทำให้การคำนวน และประมวลผลต่าง ๆ ง่ายขึ้น มีประสิทธิภาพมากขึ้น และสามารถนำฟังก์ชั่นทางคณิตศาสตร์อื่น ๆ ของ NumPy และ SciPy มาใช้งานร่วมกับ PIL ได้

การแปลงรูปภาพให้อยู่ในรูปของอะเรย์สำหรับ NumPy นั้น สามารถทำได้ง่าย ๆ ด้วยคำสั่ง ...

เขียนโปรแกรม เขียนโปรแกรม

27 Jul 08 | by bow_der_kleine | tags เขียนโปรแกรม Python PIL NumPy Image Processing

read 3005 comments 4 read more

เก็บตก Webapplication technologies

imageหลังจากที่เขียนบล็อกเรื่อง Webapplication technologies ไป โดยโปรยคำขึ้นต้นด้วยสำนวน "ความทรมานในการเลือก"  เพราะ Webapp มีเทคโนโลยีมากมายให้เลือกจนปวดหัว ดูเหมือนว่าความทรมานในการเลือกจะไม่พอเพียงสำหรับคนเขียน และคนอ่าน เพราะมีผู้อ่านหลายท่าน แนะนำให้ทดสอบเทคโนโลยีอื่นเพิ่มเติม และคนเขียนก็เห็นดีเห็นงามไปด้วย ก็เลยเขียนบล็อกนี้เพิ่มเติม เป็นการเก็บตกเทคโนโลยีที่ยังไม่ได้ทดสอบ

เทคโนโลยีที่ผมทดสอบเพิ่มเติมได้แก่ WSGI, mod_wsgi สำหรับ python และ FCGI, mod_proxy_balancer สำหรับ ruby นอกจากนี้ผมยังได้ปรับปรุง และเพิ่มเติมการทดสอบอีกเล็กน้อย

WSGI เป็นมาตรฐานใหม่ที่ถูกกำหนดลงไปใน PEP 333 เพื่อใช้ในการติดต่อเชื่อมโยงระหว่าง Webserver และ Webapp โดยเอาแนวคิดมาจาก Servlet ของ Java ซึ่งการเขียน Webapp โดย WSGI นั้นค่อนข้าง lowlevel พอสมควร ทำให้ไม่สะดวกสบายเหมือนใช้ mod_python การใช้งาน WSGI นั้นสามารถใช้งานได้สองรูปแบบคือเขียนโปรแกรมเป็น Stand-Alone Webserver แบบ Mongrel หรือเชื่อมต่อระหว่าง Webserver กับตัว Webapp คล้าย ๆ mod_python

หากจะเขียนโปรแกรมแบบ Stand-Alone ผมเข้าใจว่า เวลาติดตั้ง python เสร็จแล้ว สามารถใช้งาน wsgiref ซึ่งเป็นโมดูลสำหรับเขียน Webserver แบบง่าย ๆ ได้เลย ไม่ต้องติดตั้งโมดูลเพิ่มเติม แต่เนื่องจากใน Debian และ Ubuntu แพกเกจ wsgiref มันแยกออกมาต่างหากเลยต้องติดตั้งเพิ่มเติม ด้วยคำสั่ง ...

เขียนโปรแกรม เขียนโปรแกรม

12 Jun 08 | by bow_der_kleine | tags เขียนโปรแกรม ไอที Webapplication Java JSP PHP Python Ruby

read 1803 comments 9 read more

Webapplication technologies

imageด้วยความที่ระยะหลังไม่ว่าโปรแกรมอะไรก็ถูกทำให้เป็น Webapplication ไปเสียหมด เทคโนโลยีที่เกี่ยวข้องกับ Webapplication จึงออกมามากมาย ถึงขั้นเกินความต้องการ เหมือนสำนวนเยอรมันที่ว่า "Qual der Wahl" ซึ่งแปลได้ว่า ความทรมานในการเลือก มีให้เลือกตั้งแต่ภาษาที่ใช้, API, Framework, Web-server และรายระเอียดปลีกย่อยต่าง ๆ อีกมากมาย

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

ในขั้นแรกผมจะทดสอบเทคโนโลยีพื้นฐานก่อน นั่นคือตัวภาษาเขียนโปรแกรม ซึ่งผมเลือกมา 4 ภาษาได้แก่ Java (Java EE), PHP, Python และ Ruby เหตุผลไม่มีอะไรมาก เพราะพอเขียนได้อยู่ 4 ภาษานี้ และเป็นภาษาที่ได้รับความนิยม การทดสอบที่ผมจะเริ่มคือโปรแกรม "Hello World !" เพื่อดูการความยากง่ายในการติดตั้งและเซทอัพระบบ และดูประสิทธิภาพพื้นฐานของ Web-server แต่ละตัว โดยใช้ Ubuntu-8.04 เป็นระบบปฏิบัติการและ reference ...

เขียนโปรแกรม เขียนโปรแกรม

01 Jun 08 | by bow_der_kleine | tags เขียนโปรแกรม ไอที Webapplication Java JSP PHP Python Ruby

read 3431 comments 34 read more

Search

Navigation

ความเคลื่อนไหว

รวมลิงก์น่าสนใจ

Login

name password

ลืมรหัสผ่าน