Pages

7/26/2010

FreeBoard ::: Snowboarding On Paved Street!!

Skateboard แบบใหม่ที่เจ๋งมาก!  
เอาลักษณะการเล่นของ snowboard มาใช้ตรงๆเลยกับบอร์ดแบบนี้

อันนี้อธิบายว่ามันคิดได้ไง

"If you know that you can slow down, at anytime, that gives you confidence to go faster"

ตัวอย่างการเล่นFreeboard แบบ run



ตัวอย่างการเล่นFreeboard แบบFree-style


สอนการหัดเล่น Freeboard

Setup ภาษาไทยใน Dev-C++

เพิ่งรู้ว่า C++ มีsupport international characters ด้วย
 
ปกติ C ธรรมดาจะ support ตัวอักษรแบบเดียวคือ char ซึ่งเก็บข้อมูล 1 byte
แต่ C++ นอกจากจะรองรับ char แล้ว ยังรองรับ wchar_t ด้วย ซึ่งเก็บข้อมูล 2 bytes แล้วทำใช้ encoding แบบ Unicode (โดยบน windows (PC)ก็จะเรียงข้อมูลแบบ little-endian เช่น ก.ไก่ = 0x0E01 จะเก็บเป็นแบบ 01, 0E ในตัวแปรประเภท wchar_t)

แต่เนื่องจากระบบ wchar_t นี้ จะใช้การเก็บข้อมูลเป็นแบบ 2 bytes 
ดังนั้นเวลาจะตรวจสอบว่า string อันนี้จบข้อความหรือยัง จะต้องตรวจสอบด้วยว่า มี 0x0000 รึเปล่า นั่นหมายถึงใช้ strlen แบบธรรมดาเช็คไม่ได้ เพราะตัวอักษรจบstringมันยาวเป็น2bytes  ไม่ใช่แค่ไบต์เดียว(\0)แบบที่ strlen แบบปกติ ใช้เช็คว่าจบstringแล้ว

เมื่อฟังก์ชั่นเดิมที่ใช้เกี่ยวกับ string เดิมใช้ไม่ได้ เลยต้องใช้ฟังก์ชั่นที่ใช้งานสำหรับ wchar_t แทน
วิธีการจำง่ายๆ ก็คือ ฟังก์ชั่นไหนเป็นรูปแบบ strxxx(...) ก็ให้เปลี่ยนเป็น wcsxxx(...) แทน (wcs น่าจะมาจากคำว่า wide-character string)

วิธีการใช้งานภาษาซีให้ใช้ภาษาไทยได้

1. ใส่สองบรรทัดนี้ ไว้บนสุดของโค้ด
#define UNICODE
#define _UNICODE
2. จากเดิมที่ประกาศตัวแปรเป็น char* หรือ char[ ] ให้เปลี่ยนเป็น wchar_t* หรือ wchar_t[ ]
3. เขียน L นำหน้า ค่าคงที่string 
เช่น
wchar_t [ ] data = L"Hello World";
4. เปลี่ยนไปใช้functionที่รองรับ wchar_t
เช่น
wcslen(..), wcscpy(..), swprintf(..), _wtol(...)

และเพื่อให้ผู้พัฒนาโปรแกรมได้เขียนโปรแกรมได้ความสะดวกยิ่งขึ้น โดยไม่ต้องสลับไปสลับมาระหว่าง char, wchar_t 
ทางคนคิด compiler ของ C++ จึงสร้างตัวแปรแบบพิเศษขึ้นมาเพื่อให้เราเรียกใช้สามารถเปลี่ยนระหว่าง char กับ wchar_t 
เพียงการใส่ #define UNICODE , #define _UNICODE เอง

หมายถึงว่า เมื่อไหร่ที่ต้องการให้โค้ดทั้งหมด ใช้งานตัวอักษรแบบ Unicode ก็ให้ใส่สองบรรทัดนี้
แต่ถ้าต้องการให้โค้ดทั้งหมด ใช้งานเป็นแค่ char ธรรมดา(1 byte) ก็แค่เอา สองบรรทัดนี้ออก

แต่ปัญหาอยู่ที่ว่า เนื่องจาก Compiler มีผู้ผลิตหลายเจ้าทั้ง VC, GNU, MingW32 
ตัวแปรชนิดนี้เลยมีขึ้นมาหลายชื่อ เช่น LPCTSTR , TCHAR เป็นต้น

REF: http://www.codeproject.com/KB/string/cppstringguide1.aspx

DEV-C++
ก่อนที่จะเริ่มเขียนภาษาไทยลงไปในโค้ดภาษาซีได้
เราจะต้องตั้งค่าให้ตัว editor ของ dev-c++ ที่ใช้ในการเขียนโค้ด รองรับแสดงผลแบบภาษาไทยก่อน 
(ไม่งั้นพิมพ์ไทยออกมาบนนั้น กลายเป็นตัวยึกยือแน่ๆ)

วิธีการก็คือ ทำได้โดย
1. การตั้ง font ให้เป็น courierMonoThai หาโหลดได้ทั่วไปในinternet
2. ต้องตั้งค่าให้ compiler ของdev-c++ จากเดิมเป็น gcc.exe, g++.exe, make.exe, ... ให้ใช้เป็น mingw32-gcc.exe, mingw32-g++.exe, mingw32-make.exe

ถึงแบบนั้นแล้วก็ยังไม่พอ เพราะถ้า compile ด้วยวิธีนี้แล้ว
จะยังขึ้น error ว่า "illegal byte sequence"
3. ต้องใส่ option ตอน compile ว่า -finput-charset=tis620 ด้วย  หมายถึงว่าไฟล์โค้ดCนี้ถูกจัดเก็บด้วยการเข้ารหัส(encoding)แบบ TIS-620 ตัวคอมไพล์เลอร์จะได้ตีความถูก
4. หลังจากsetup ตัวeditor ให้พิมพ์ภาษาไทยได้แล้ว.. เวลา dev-c++ จะจัดเก็บsource code ก็ต้องสั่งให้มันจัดเก็บโค้ด .c ของเราให้เป็นชนิด TIS-620 ด้วย (แทนที่จะเก็บแบบ ascii แบบปกติ) 

**หมายเหตุ
หา option ที่ทำให้มันเก็บแบบ Unicode ไม่เจอ, และถ้าเอา fileแบบ unicode มาเปิดใน dev-c++ มันก็อ่านไม่ออก  เลยต้องใช้เป็นแบบ TIS620 แทน




Edited: Feb 21,2011 เพื่อให้มันอ่านออกง่ายขึ้น

"OU" with 5 sounds

thou : (thou / ธาว)
tough : (tuf / ทัฟ)
though : (tho / โธ)
thought : (thot / ธอท)
through : (throo / ธรู)

Shell Script for infinitely downloading webpage content

#!/bin/bash
#set delay and url
delay=5
url="www.example.com"

#run infinite loop, stop by using ctrl-c
while [ 1 ]
do
echo "start downloading $url"
wget --no-cache --no-http-keep-alive -p -O tempdl.tmp --delete-after $url 2>&1 >&/dev/null
echo "done"
sleep $delay
done

ชื่อ ...คนไทย? (ภาค 3)

ชื่อ กับ ดวง

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

ในรายการ อ.เจิมศักดิ์ กล่าวถึง ตำราที่ใช้ในการตั้งชื่อเล่มหนึ่ง ชื่อว่า ตำราทักษา (หรือชื่อเต็มคือ ทักษาปกรณ์)
เป็นตำราหมอดู ซึ่งใช้ในการดูดวงต่างๆ ตั้งแต่ใช้ตั้งชื่อ-นามสกุล ไปจนถึงชะตาชีวิต หรือแม้กระทั่งใช้ในการพยากรณ์การออกศึกสงคราม

ในตำรานี้ จะมีสิ่งสำคัญอยู่สองสิ่งคือ วงกลมแปดแฉก (ไม่รู้เรียกว่าอะไร) กับ หลักการวนขวา

ว่าแล้วท่านผู้ร่วมรายการท่านหนึ่งก็กล่าวถึงหลักการวนขวาว่า เป็นหลักการดั้งเดิม ที่ใช้ตั้งแต่สมัยอินเดียโบราณ

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

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

สรุปว่า ขวาดีหมด ว่างั้นเหอะ ความจริงก็อ่านหนังสือบางอย่างมา เหมือนกับว่า ต่างประเทศก็คิดเช่นนั้น
เช่นคำว่า right นอกจากจะแปลความหมายว่า "ขวา" แล้ว ยังมีความหมายว่า "ถูกต้อง" อีกด้วย

ต่อ.. ดังนั้น ตำราทักษา จึงเน้นแต่หลักในการเวียนขวา แล้วเวียนบนอะไร? 
ก็เวียนในวงกลม ของ ตำรานี้ ... แต่ว่า วงกลมมันมี 8 เสี้ยวนี่ จะใส่อะไรลงไปดี?

ครั้นจะใส่ วันอาทิตย์ ถึงเสาร์ มันก็มีแค่ 7 .. แต่วงกลมมันมี 8 ช่อง?

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




แต่มันก็จับคู่ไม่ลงตัวกับวันทั้ง 7 อยู่ดี .. แก้ไง?
ท่านก็เลย เอาเป็นว่า วันต่างๆ ก็จับคู่กับ ดาวเคราะห์ต่างๆไปตามปกติ
แต่พระราหู ถือเอาว่า เป็นช่องสำหรับคนเกิด วันพุธกลางคืน ไป 
(ดูแล้วก็น่าสงสาร ว่าแค่เกิดผิดเวลานิดเดียวได้ถือว่าเกิดฤกษ์ดาวราหูไปเลย)

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

ในรายการ ยกตัวอย่างว่า เช่นวันจันทร์
ตัวถัดไปเมื่อมองเวียนขวา ก็คือ วันอังคาร ซึ่งก็ถือว่า คนเกิดวันอังคารจะช่วยเสริมดวง ให้คนเกิดวันจันทร์
ในขณะที่ คนเกิดวันอาทิตย์ (ซ้ายมือของวันจันทร์) ก็ถือว่าเป็น กาลกินี ของคนเกิดวันจันทร์เช่นกัน

สีถูกโฉลก? ก็ใช้ตารางเดียวกัน โดยใช้สีของวันแทน
ถ้าเกิดวันจันทร์ "สีเหลือง"
สีที่ถูกโฉลก คนเกิดวันจันทร์ นอกจากจะเป็นสีของตัวเอง(สีเหลืองแล้ว) ก็คือสีของวันที่อยู่ทางขวาของวันอังคารด้วย ก็คือ "สีชมพู"
ในขณะเดียวกัน สีที่เป็นกาลกินี ก็คือ "สีแดง" ซึ่งเป็น สีของวันอาทิตย์ ซึ่งอยู่ทางซ้ายของวันจันทร์ นั่นเอง

โอเค มาเข้าการตั้งชื่อ (เขียนมาโคตรยาวแล้วนะเนี่ยยังไม่จบอีก)
ในแปดช่อง ตัวอักษรภาษาไทย รวมทั้งสระ นั้นถูกแยกออกเป็นกลุ่มต่างๆ 8 กลุ่ม ดังนี้
- สระทั้งหมด
- ก ข ค ฆ ง
- จ ฉ ช ฌ ญ
- ฏ ฐ ฑ ฒ ณ
- ต ถ ท ธ น
- ป ผ พ ภ ม 
- ย ร ล ว 
- ส ห ฬ อ 
คราวนี้ก็เริ่มเอาแต่ละชุด ใส่ในช่องต่างๆ นับตั้งแต่วันอาทิตย์ เรียงไปเรื่อยๆ

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

โดยให้นับเรียงไปเริ่มตั้งแต่วันเกิดตัวเอง (นับวันเกิดด้วย) กับ8กลุ่มนี้
คือ บริวาร, อายุ, เดช, ศรี, มูละ, อุตสาหะ, มนตรี, และ กาลกิณี

คราวนี้ ก็เป็นว่า ใช้ตัวอักษร ที่ตกในช่องไหน ก็ได้ ก็จะได้ผลตามชื่อกลุ่มดังที่กล่าวไว้ข้างต้น

เช่น.. คนที่เกิดวันจันทร์ ก็จะได้ว่า
- จันทร์ ก ข ค ฆ ง --> บริวาร
- อังคาร จ ฉ ช ฌ ญ --> อายุ
- พุธ ฏ ฐ ฑ ฒ ณ --> เดช
- เสาร์ ต ถ ท ธ น --> ศรี
- พฤหัสฯ ป ผ พ ภ ม --> มูละ
- พุธกลางคืน ย ร ล ว --> อุตสาหะ
- ศุกร์ ส ห ฬ อ --> มนตรี
- อาทิตย์ สระทั้งหมด --> กาลกิณี

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


ส่วนคำอธิบายของกลุ่มต่างๆคือดังนี้
1 "บริวาร" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ บุตร ภรรยา สามี ญาติ เพื่อนสนิทมิตรสหาย ลูกจ้าง อุดมสมบูรณ์
2 "อายุ" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ เจ้าของชื่อมีสุขภาพกายและจิตดี อายุยืนยาว
3 "เดช" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ เจ้าของชื่อมีชื่อเสียงเกียรติยศ คนนับหน้าถือตา มีอำนาจวาสนา หน้าที่การงานมั่งคง เป็นที่เคารพยำเกรง
4 "ศรี" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ เจ้าของชื่อ เป็นที่รักใคร่ ชอบพอ เอ็นดู ของคนทั่วไป
5 "มูละ" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ เจ้าของชื่อ มีทรัพย์สินเงินทอง มีฐานะมั่นคง
6 ""อุตสาหะ" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ เจ้าของชื่อ มีความมานะ พากเพียรพยายาม ทำให้ประสบความสำเร็จในหน้าที่การงาน
7 "มนตรี" ถ้ามีอักษรเหล่านี้อยู่ในชื่อ ส่งผลให้ เจ้าของชื่อ ได้รับการสนับสนุน ความรัก ความเมตตาจากผู้ใหญ่ และจะได้เป็นใหญ่เป็นโต
8 "กาลกิณี" ควรหลีกเลี่ยงอักษร/สระเหล่านี้ เพราะจะทำให้เกิดอุปสรรคในการดำเนินชีวิต

ยาวละ พอ จบ

พิชญพงษ์ ตันติกุล

ชื่อ ...คนไทย? (ภาค 2)

ชื่อสกุล และ ชื่อเล่น

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

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

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

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

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

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

คนไทย เลยแก้ปัญหานี้ ด้วยการใช้ชื่อเล่น ซึ่งส่วนใหญ่ 
ซึ่งเป็นมักจะคำพยางค์เดียว และเดี๋ยวนี้ด้วยอิทธิพลจากภาษาอังกฤษ ชื่อเล่นส่วนใหญ่ ก็มักจะเป็นคำอังกฤษด้วย เช่น แอน พีท กอล์ฟ (แอ๊ป)เปิ้ล 
ทำให้คนไทยเรียกกันด้วยชื่อเล่นกัน เหมือนกับฝรั่งที่เรียกกันด้วยชื่อต้น

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

(จบ ภาค 2)

ปล. รู้สึกว่าเริ่มเขียนแล้วก็ยาวจริงๆ 
บางส่วนก็ใส่ความคิดตัวเองเข้าไปด้วย

พิชญพงษ์ ตันติกุล