thai wikipedia

การทับศัพท์เป็นหนึ่งในปัญหาใหญ่บนวิกิพีเดียภาษาไทย ซึ่งแม้ว่าหากมองเผินๆหลายคนคิดว่าเพียงแค่ตามราชฯ ก็พอ แต่ยิ่งเข้ามาในเรื่องนี้เท่าไรก็พบได้ว่ามีปัญหาที่ซ่อนเอาไว้อยู่อย่างมากมาย

ซึ่งผมเองขอแบ่งเป็น 3 ส่วนหลักที่วิกิพีเดียพบเจอคือจะมีการทับศัพท์ ศัพท์บัญญัติ และชื่อเฉพาะ

วิกิพีเดียภาษาไทยแม้พยายามจะอ้างอิงจากราชฯให้มากที่สุด แต่สุดท้ายเราตัดสินใจพิจารณาเองเพื่อเลือกใช้หลักการที่คิดว่าเหมาะสมที่สุดสำหรับเวลานั้น 

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

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

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

สังเกตว่าหลักการทับศัพท์นั้นยังให้ใช้ ต ทับเสียง t, ป ทับเสียง p, ก ทับเสียง k ซึ่งหากตามนิยมจะใช้ ท ทับเสียง t, พ ทับเสียง p, และ ค ทับเสียง k เพราะว่าอย่างการออกเสียงคำว่า up จะมีเสียงคล้าย เพอะ ตามท้ายไม่ใช่ เปอะ อย่างไรก็ตาม ทำให้คำอย่าง application วิกิพีเดียก็จะใช้ แอปพลิเคชัน หรือ update ก็จะเป็น อัปเดต software เป็น ซอฟต์แวร์ เป็นต้น ขณะนี้จริงอยู่ที่วิกิพี่เดียใช้หลักการทับศัพท์ตามราชฯ ซึ่งบางคนอาจมองเป็นเรื่องที่ดี แต่ที่แท้จริงแล้ว ราชฯเองอาจควรอัปเดตหลักการใหม่ไหม เพราะยังช่วยให้ตรงกับการออกเสียงมากขึ้นอีกด้วย ส่วนบางคนอาจมองว่า วิกิพีเดีย ถอยหลังเข้าคลองก็เป็นไปได้

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

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

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

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

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

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

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

อัปเดต 2: สำหรับขำๆ อ่านเพิ่มได้ที่นี่

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

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

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

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

คำที่ตรวจสอบ คำที่แทนที่
คริสตศตวรรษ คริสต์ศตวรรษ
คริสตศักราช คริสต์ศักราช
คริสตศาสนา คริสต์ศาสนา
คริสต์กาล คริสตกาล
คริสต์เตียน คริสเตียน
คริสมาส คริสมาสต์ คริสต์มาส

 

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

คำที่ตรวจสอบ คำที่แทนที่
อัพเด็ต, อัพเดต, อัพเดท, อัปเด็ต อัปเดต
อัพโหลด อัปโหลด
อินเตอเน็ต, อินเตอร์เน็ต, อินเตอร์เนต อินเทอร์เน็ต
ลิ้งค์ ลิ๊งค์ ลิ้งก์ ลิ๊งก์ ลิงก์

 

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

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

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

ขอยกข้อความส่วนหนึ่งของบทความไร้สาระนุกรมบนวิกิพีเดียไทย:

เนื้อหาส่วนใหญ่ในไร้สาระนุกรม มีลักษณะเป็นเรื่องแต่งขึ้น เรื่องล้อเลียน และเรื่องขำขัน ตัวอย่างของข้อความที่ปรากฏในเว็บไร้สาระนุกรม ในหน้าบทความประเทศไทย เช่น

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

วิเกรียนพีเดียคือที่ๆคุณสามารถแสดงความเป็นเกรียนมีการศึกษาได้อย่างภาคภูมิ

 

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

อย่างบทความที่ผมชอบปัจจุบันก็มี:

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

SQL: สุดยอด SELECT statement

posted on 23 Mar 2008 17:30 by icedtea in Programming

จะบอกว่าหลังจากโพสเรื่อง "งงๆ" ไปแล้ว 2 เรื่องก็กะว่าจะเปลี่ยนไปโพสเรื่องอื่นๆบ้าง แต่นี่เพิ่งเจอพอดี เลยอดไม่ได้ ไหนๆ ก็ 2 เรื่องไปแล้ว ก็ขออีกโพสก่อนละกัน

คือว่าไปพบเจออีกแล้วครับ ก็คือมีเว็บบอร์ดที่หนึ่งมีคนมาถามขอให้ช่วยลดความซ้ำซ้อนของ update query นี่หน่อย (ซึ่งความจริงแล้วเป็น SELECT statement สงสัยจะงงจัด) ซึ่งมีความยาวเกือบ 700 บรรทัดได้ ผมเองดูแล้วก็เรียกว่าเลิกพยายามจะทำความเข้าใจ

ไปดู query ดังกล่าวกันเอาเองนะครับที่นี่เลย ต้องเรียกว่าสุดยอดจริงๆ

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

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

Tags: sql 2 Comments

SQL: If EXISTS Then UPDATE Else INSERT

posted on 21 Mar 2008 10:12 by icedtea in Programming

ในหลายกรณีที่คุณอาจจะต้องเขียน Stored Procedure เพื่อทำหน้าที่ง่ายๆ อย่างตรวจสอบว่ามี record นี้หรือยัง หากมีแล้วให้ทำการ UPDATE หากยังไม่มีให้ทำการ INSERT อย่างกรณีที่ใช้กันไม่ว่าจะสำหรับอัปเดต/เพิ่มสินค้า หรือสถิติก็ตาม

โดยปกติแล้ว ผมเองก็จะเขียนใช้ IF statement อะไรแบบนี้

IF EXISTS (SELECT * FROM Table1 WHERE Column1='something')

    UPDATE Table1 SET (something = something) WHERE Column1='something'

ELSE

    INSERT INTO Table1 VALUES (something, something)

 

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

ซึ่งเข้าใจก่อนว่าวิธีเดิมนั้น SQL ต้องเสียเวลาไปค้นหาเพื่อตรวจสอบว่ามี record อยู่หรือเปล่า แต่ถ้าใช้วิธีใหม่แบบนี้:

UPDATE Table1 SET (something = something) WHERE Column1='something'

IF @@ROWCOUNT=0

    INSERT INTO Table1 VALUES (something, something)

 

จะพบว่า SQL ไม่ต้องเสียเวลาค้นหาเลย โดยจะพยายามอัปเดตทันที จากนั้นตรวจสอบว่าอัปเดตได้หรือไม่ด้วยเพียงตรวจค่า ROWCOUNT ไม่ต้องค้นหา จากนั้นหากไม่ได้อัปเดต จึงค่อย INSERT พอผมอ่านจบ บอกว่าค่อนข้างประทับใจเลย เวลารู้สึกได้รู้วิธีอะไรใหม่ๆ ดีกว่าเดิม

ป.ล. ผมเคยมีประสบการณ์จริงที่เคยเขียนแล้วใช้งานจริง โดยเขียนใช้วิธีแรก แต่แล้วคำสั่งอัปเดตผิดพลาดอย่างเป็น .... WHERE DepartmentCode = DepartmentCode แทนที่จะเป็น DepartmentCode = @DepartmentCode เพียงโค้ดผิดเล็กน้อย ทำให้คำสั่งไปอัปเดตซ้ำกัน โดยหลายกรณีควร INSERT ใหม่ พอเห็นแล้วรู้สึกได้โง่เลย จากนั้นต้องมานั่งแก้ไม่ใช่แค่โค้ด แต่รันคำนวณประมวลข้อมูลใหม่อีกด้วย เหอะๆ

Tags: sql 4 Comments