V (not only) for Vendetta

V for Vendetta

ฉากแนะนำตัวเองต่อหน้านางเอกที่แหกขนบฮีโร่สวมหน้ากากทุกคน
ปกติวีรบุรุษที่ใส่หน้ากากปิดบังตัวเองโดยทั่วไปมักจะพูดน้อย
แต่พี่ V ของเรา พล่ามไปซะ 2 นาที

Voila!
In view, a humble vaudevillian veteran…
cast vicariously as both victim and villain by the vicissitudes of fate.
This visage, no mere veneer of vanity…
is a vestige of the vox populi, now vacant, vanished.
However, this valorous visitation of a bygone vexation stands vivified…
and has vowed to vanquish these venal and virulent vermin vanguarding vice…
and vouchsafing the violently vicious and voracious of volition.

The only verdict is vengeance, a vendetta…
held as a votive not in vain, for the value and veracity of such…
shall one day vindicate the vigilant and the virtuous.

Verily, this vichyssoise of verbiage veers most verbose.
So let me simply add that it’s my very good honor to meet you…
and you may call me “V“.

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

ใครได้ยินคงถามเหมือนอีวี่ย์ นางเอกในเรื่อง
“Are you like a crazy person?”
คุณสติไม่เต็มเต็งรึเปล่า?


คำแปลตามซับไตเติ้ลในหนังก็คือ

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

(เอามีดกรีดกำแพงเป็นรูปตัววี)
คำตัดสินเดียว คือการแก้แค้น, ความพยาบาท
ถือเป็นคำปฏิญาณที่ไม่ไร้สาระ, เพื่อคุณค่าและสัจจะนั้น
วันหนึ่งจะพิสูจน์ความตื่นตัวและถูกต้อง

(เอามือป้องปากหัวเราะชอบใจ)
ที่จริงการใช้คำฟุ่มเฟือยพวกนี้ดูเกินไปหน่อย
ขอเสริมง่ายๆ ว่า เป็นเกียรติอย่างมากที่ได้รู้จักเธอ
และเธอเรียกฉันว่า “วี” ก็ได้…”

ดีวีดีออกมาแล้วสดๆ ร้อนๆ หลังจากหนังฉายไปเมื่อ 4 เดือนก่อน
ตอนดูในโรง ทั้งฟังทั้งอ่านไปด้วยแทบไม่ทัน

ใครที่หวังจะเห็นอะไรแบบ The Matrix คงต้องผิดหวัง
เพราะนี่มันไม่ใช่หนังแอ็คชั่นเต็มตัว ออกแนวเครียดๆ งงๆ ซะด้วยซ้ำ
แต่คนมันชอบน่ะ ก็ต้องซื้อเก็บเป็นธรรมดา

มีคำพูดเจ๋งๆ ของ V อีกอันนึงที่น่าเอามาประยุกต์ใช้แถวๆ นี้

“People should not be afraid of their governments. Governments should be afraid of their people.”
ประชาชนไม่ควรกลัวรัฐบาล รัฐบาลต่างหากที่ต้องกลัวประชาชน

นัฐพรไอศกรีม แพร่งภูธร

ไปกินร้านนี้มาหลายครั้งแล้ว
แต่ครั้งล่าสุดไปกันหลายคนแล้วก็เดินเล่นถ่ายรูปไปด้วย
เลยมีรูปหน้าตาไอศกรีมมาให้ดู ว่ามันน่ากินแค่ไหน

ไอศกรีมกะทิสดนัฐพร

คนที่เบื่อไอศกรีมดัดแปลงรสหวานนุ่มของบรรดาร้าน
แบรนด์หัวนอกราคาสูงทั้งหลาย น่าจะลองมาชิมของเจ้านี้ดู
ในรูปนี้คือไอติมกะทิสด ถ้วยละ 12 บาท กับขนมชิ้นละ 7 บาท

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

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

ไว้วันหลังจะแนะนำร้านอื่นอีกก็แล้วกัน…

Last.fm : the social music revolution

Last.fm

url กับโลโก้มันเท่ห์ดี
ไม่ค่อยได้ฟังวิทยุทางเนตเท่าไหร่ แต่อันนี้รู้สึกจะเป็นที่นิยมกันมาก
เข้าไปแล้วก็ชอบเลย เป็นชุมชนที่แต่ละคนไปสร้างหน้าเพจของตัวเองได้
หลังจากสมัครสมาชิก เข้าคอนเซป Web 2.0 ยอดฮิต
บอกความเป็นตัวคุณด้วยเพลงที่คุณ(ชอบ)ฟัง ^_^

มี client เล็กๆ ประมาณ 3 เม็กให้โหลดมาติดตั้ง แต่ยังมีเฉพาะของ Windows
แพลทฟอร์มอื่นก็รอกันอีกนิด

Last.fm

ยังไม่ค่อยได้เข้าไปเล่นอะไรเท่าไหร่ เนื่องจากยังไม่มีเวลา แต่เปิดตัว client ทิ้งไว้
เวลาเปิดเพลงจาก iTunes ตัวปลั๊กอินที่ติดมาจะไปหาข้อมูลเพลงที่กำลังเปิดมาให้ด้วย
คล้ายๆ dash board บน OSX (นี่ถ้าหาเนื้อเพลงมาให้ด้วยจะดีมากเลย)
ที่จริงบนไอจูนส์เองมันก็มีวิทยุมาให้อยู่แล้ว ก็นั่นแหละ บอกแล้วว่าไม่ค่อยได้ฟัง
แค่เพลงบนเครื่องก็ฟังไม่หวาดไม่ไหว แต่นานๆ ทีอยากเปลี่ยนบรรยากาศ
ฟังเพลงแบบเรื่อยๆ โดยไม่รู้ว่าจะได้ยินเพลงอะไรต่อไป
แค่เลือก tag ตามหมวดหมู่ที่มันมีไว้ให้ (เพิ่มเองก็ได้) มันก็เพลินดีเหมือนกัน…

My OS(s), My Computer(s)

ในที่สุดก็ได้รับ CD Ubuntu 6.06 LTS (Dapper Drake)
หลังจากไปลงชื่อขอไว้ที่ ShipIt มาเกือบเดือน
งวดนี้แพ็กเกจหน้าตาดีกว่าของเดิมนิดหน่อย แล้วก็รวมมาเป็นแผ่นเดียวเลย
ไม่แยก Live CD กับ Install CD เหมือนเก่า

เวอร์ชั่นใหม่เค้าจงใจห้อยคำว่า LTS ต่อท้ายไว้ให้คนถาม
เพื่อจะได้ตอบว่ามันหมายถึง Long Term Support
มาร์ค ชัทเทิลเวิร์ธ คนทำลีนิกซ์ดิสโทรนี้คงอยากให้ใครๆ พูดถึงว่า
“คราวนี้พี่เค้าเอาจริง” ^_^

พอดีมีเครื่องว่างแล้ว ก็เลยลงซะ อะไรๆ ก็ดูง่ายไปซะหมดจริงๆ
ตอนนี้ก็เลยทำงานมันทั้ง 3 OS เลย (โต๊ะมันใหญ่ ต้องใช้พื้นที่ให้คุ้ม)

My Computers

ไม่มี KVM Switch ใช้ เลยต้องยอมให้เมาส์กับคีย์บอร์ดมันเกะกะแบบนี้ไปก่อน…

Meeting Room Booking System

Meeting Room Booking System

เนื่องจากที่ทำงานมีห้องเยอะมาก แล้วต้องมีการจองไว้ให้ลูกค้าเข้ามาใช้
ปัจจุบันใช้เป็นไฟล์ excel (ไฟล์ออฟฟิศสารพัดประโยชน์)
เพิ่มลบกันกระหน่ำ ระบายสีกันให้พรึ่ด
แล้วต้องแชร์ไฟล์กัน แย่งกันเปิดวุ่นวายมาก
ใช้งานไม่ค่อยสะดวกเท่าไหร่ แถมแฮงบ่อยอีกต่างหาก

เลยจะลองเปลี่ยนเป็น web base ดูบ้าง
ไปหาดูโปรเจ็คใน SourceForge.net ค้นว่า “room booking”
ก็เจออยู่หลายตัว แต่ตัวที่น่าสนใจที่สุดก็คืออันนี้
Meeting Room Booking System (MRBS)
ล่าสุดเป็นเวอร์ชั่น 1.2.3 ออกมาได้เกือบปีนึงแล้ว
เห็นว่าเป็น php คิดว่าน่าจะแก้ไขปรับปรุงได้ง่ายและเร็วที่สุด
และที่สำคัญ จำนวนดาวน์โหลดมันเยอะดี แปลว่าค่อนข้างเป็นที่นิยม
ของเค้าคงดีจริง ก็เลยเอาปลอดภัยไว้ก่อน

วิธีติดตั้งก็ไม่ยาก ผู้พัฒนาเค้าเขียนเอกสารประกอบมาค่อนข้างละเอียด
ก็ทำตามนั้นได้เลย

อันดับแรกก็แตก zip file ลงไปวางไว้บน web server
ผมทำเป็น virtual host เลยต้องไปแก้ httpd.conf ของ Apache นิดหน่อย
เซิร์ฟเวอร์เดียววางมันซะเจ็ดแปดเวบ อาศัย user น้อย มันคงไม่ล่ม

ต่อไปก็สร้าง db ใน mySql ขึ้นมาก้อนนึง ตั้งชื่อว่า mrbs
เอา script ที่เค้าให้มา (tables.my.sql) รันไปปื้ดนึง ก็ได้ table มาเรียบร้อย
เค้ามี sample-data.sql มาให้ด้วย ดีมากเลย ไม่ต้องคิดเอง
(ถ้าใครใช้ PostgreSql ก็ใช้สคริปต์ในไฟล์ tables.pg.sql แทน)

แค่นี้ก็เสร็จเรียบร้อย ถ้าไม่มีอะไรผิดพลาด ก็ใส่ url ตามโดเมนที่เราตั้งไว้
มันควรจะแสดงผลออกมาได้คล้ายๆ ในรูปข้างบน

จากนั้นก็จะปรับแต่งอะไรก็ตามสะดวก

เริ่มที่ไฟล์ config.inc.php อ่านไปแก้ไปได้เลย
มีรายละเอียดและตัวอย่างให้ชัดเจน
ส่วนมากเป็นพวกค่าคงที่ทั้งหลาย ส่วนของ db ถ้าใช้ mySql อยู่แล้วก็ไม่ต้องแก้อะไร
ส่วนพวกตัวแปร $mrbs_admin
$mrbs_admin_email
$mrbs_company
ก็แก้เอาตามความต้องการ

ต่อไปเรื่อง user ถ้าตามค่า default ของโปรแกรม ตรง $auth[“type”] = “config”;
เป็นการเขียน user/pwd ลงไปแบบ hard code ใน config.inc.php
ถ้าไม่ซีเรียสอะไร วิธีนี้ก็สะดวกดี แต่ไม่ค่อยปลอดภัย
จะเห็นว่าเค้าใส่ user/pwd มาให้แล้ว 3 user คือ
administrator/secret
alice/a
bob/b

ถ้าอ่านในไฟล์ AUTHENTICATION จะทราบว่า
user จะมี 3 level คือ
Unknown user
Authenticated user
Administrator

ถ้าเป็น unknow ก็ดูได้หมดว่าห้องไหนใครจอง แต่แก้ไขไม่ได้
authen ก็จะดูได้หมด แต่แก้ได้เฉพาะของตัวเอง
admin ก็ทำได้ทุกอย่างตามระเบียบ

โปรแกรมทำไว้ค่อนข้างดี ทำให้ยืดหยุ่นในการเลือกใช้ระบบ log in มาก
นอกจากจะ hard code ตรงๆ แล้วก็ยังไปลิงค์ใช้กับระบบ user/pwd อื่นได้
อาทิ db, external db, pop3, imap, ldap ฯลฯ

ผมเลือกตามหลักสากลนิยมคือ db ก็จัดการแก้
$auth[“type”] เปลี่ยนจาก “config” เป็น “db” ซะ
แล้วก็ log in เข้าไปด้วย administrator/secret ก่อน
กดเข้าไปที่ลิงค์ User list ระบบจะสร้างตาราง users ให้เราสามารถ add user เข้าไปได้
ให้ add user administrator เป็นคนแรก จากนั้นก็ตามใจเลยครับ
แล้วกลับไป comment ที่บรรทัด $auth[“user”] ใน config.inc.php ให้หมด
เราก็จะใช้ user/pwd จาก db อย่างเดียว

กลับมาดูที่หน้าตาโปรแกรม จะเห็นว่าช่วงเวลาที่กำหนดมาให้เป็นช่วงละ 30 นาที
ตั้งแต่ 7 โมงเช้าถึง 1 ทุ่ม ถ้าอยากได้มากน้อยกว่านี้ก็ไปแก้ที่ config.inc.php ที่ตัวแปร
$resolution = 1800; อันนี้เท่ากับ 30 นาที
$morningstarts = 7; เริ่ม 7 โมงเช้า
$eveningends = 19; สิ้นสุดที่ 1 ทุ่ม

ต่อไปมาดูที่ระบบภาษา โปรแกรมเตรียมภาษาและคำแปลมาให้มากมาย
และแน่นอน ภาษาไทย…มันจะไม่มี!!!
ค่าเริ่มต้นมันจะไปที่ lang.en คือภาษาอังกฤษ เราก็จัดการ copy lang.en เป็น lang.th ซะ
แล้วก็ปรับปรุงแก้ไข lang.th ตามใจชอบเลย แปลให้มันตรงๆ ก็แล้วกัน
แล้วกลับไปแก้ที่ config.inc.php ตรง
$default_language_tokens แก้จาก “en” เป็น “th”
$disable_automatic_language_changing แก้จาก 0 เป็น 1

เป็นอันเสร็จพิธี ต่อไปก็เหลือการทดลองใช้งานให้คล่องก็เรียบร้อย…

อัพเดท (12 Aug. 2008): ช่วงนี้มีคน google เข้ามาเจอหน้านี้บ่อย
แล้วมีปัญหาในการใช้งาน มาโพสถามผม ซึ่งต้องขออภัยจริงๆ ที่หลายๆ กรณีผมช่วยตอบ
หรือแก้ปัญหาให้ไม่ได้ เนื่องจากบล็อกนี้ผมเขียนขึ้นเป็นบันทึกช่วยจำของตัวเองเมื่อกว่า 2 ปีก่อน
ซึ่งทำตามวิธีของตัวเอง สภาพแวดล้อมของตัวเอง ซึ่งถ้าใครอ่านแล้วทำตามได้ก็ยินดีด้วยครับ
ส่วนถ้าติดปัญหา ผมก็จนปัญญาเหมือนกันครับ
วิธีที่ดีที่สุดคือ RTFM