ผมนึกถึงตอนที่ผมหัดเขียน CSS เมื่อสองสามปีที่ผ่านมา ตอนนั้นคิดอยู่อย่างเดียวว่า ต้องเขียนให้มันแสดงผลได้ใน IE ก่อน แต่พอศึกษาไป เรื่อยๆ กลับกลายเป็น ต้องเขียนให้ดูได้บน Modern Browsers ก่อน IE ค่อยตามมา ผ่านไปเกือบปี ถึงรู้ว่า ก่อนจะเขียน CSS ให้ไปหัดเขียน XHTML ใหม่เสียก่อน
เพราะถ้าเขียน XHTML ไม่ถูกหรือไม่ดี เขียน CSS ให้ตายก็ยากอยู่วันยังค่ำ
XHTML การเขียนก็แตกต่างกันออกไปอีก เขียน XHTML ให้ผ่าน W3C หรือ Markup ให้ถูกต้องนั้นก็ไม่ได้ยากเย็น แต่สิ่งที่ยากเย็นกว่าคือ เขียนยังไงให้ถูกตามหลักโครงสร้าง และหลัก Web Accessibility
XHTML และ CSS มีหลักการใช้งานแยกออกเป็นหมวดหมู่เหมือนกัน เช่น แต่ละ Element เอาไว้ใช้กับข้อมูลประเภทไหน ส่วน CSS บาง Property ที่เอาไว้ใช้กับ เสียง ภาพ หรือ page ก็จะมีคำสั่งแตกต่างกันออกไป แต่ตอนนี้ส่วนใหญ่เรายังสับสนอยู่แค่ อันไหนมันอินไลน์ อันไหนมัน บล๊อก อันไหนมัน ลิสต์ อันไหนมันตารางวะ
ผมเคยเจอกับตัวเอง ครั้งหนึ่งมีคนมาถามว่า ของบางอย่างมันใช้ยังไงหรือครับ ผมก็ตอบไปตามหลักการและทฤษฎี ที่มันต้องเป็น เขาถามต่อว่าทำไมมันต้องเป็นแบบนั้น เพราะที่เคยทำมาไม่เคยเห็นต้องเขียนแบบนั้นเลย ผมก็ตอบไปว่า ก็มันผิดไงหละครับ ก็ต้องปรับให้มันถูก แล้วมันก็จะสามารถเขียน CSS จัดการได้ง่ายและถูกต้อง ในเมื่ออธิบายเข้าใจยาก ผมก็ส่งลิงค์ W3C ให้อ่าน คำตอบที่ได้มาก็คือ ขี้เกียจอ่าน แต่อยากรู้ว่ามันต้องทำยังไง เล่าให้ฟังได้ไหม ผมก็ขอยอมแพ้หละครับ
ไม่เชื่อก็ต้องเชื่อ ว่าวันหนึ่งผมจะยอมแพ้
ผมรู้สึกว่าทุกวันนี้ผมเริ่มเห็นแก่ตัวมากยิ่งขึ้น ผมเริ่มจะไม่ค่อยใส่ใจสังคม ทั้งๆที่มันไม่ควรจะเป็น
เคยมีคนบอกผมว่า ผมมันพวกบ้ามาตรฐาน ไม่มีทางหรอก ที่จะทำให้หน้าเว็บทุกหน้า เขียนได้ถูกต้องตามหลักมาตรฐานทั้งหมด จนสุดท้าย CSS และ XHTML กับผม มันกลายเป็นเรื่องธรรมดา วันนี้ในงาน ออฟฟิศ ถ้าหากจะเขียน <br /> สักตัวลงไปในงาน ต้องยกมือปรึกษากันว่ามันควรหรือไม่ เพราะสุดท้ายแล้ว ความอยากที่จะเขียนให้มันถูกต้อง กลายเป็นประเด็น กลับหัวกลับหางกันกับเมื่อก่อน ตอนนี้ จะเขียนอะไรให้มันผิด กลายเป็นความยากลำบากใจที่จะทำไปเสียฉิบ
จนผม เลิกเขียน CSS XHTML เพราะไม่มีอะไรท้าทาย ตอนนี้สำหรับ User Agent ที่เป็น Screen คอมพิวเตอร์ผมขอพักไปโดยปริยาย จนกว่า XHTML 2.0 และ CSS 3 จะมา หรือจนกว่า IE6 จะตายไป
Semantic Web คือสิ่งที่ผมสนใจมานานอีกเรื่อง ค่อยๆ ศึกษาค่อยๆ ลอง เพราะไม่มีที่ไหนให้ลงเล่นของ ตอนนี้มันเริ่มเป็นรูปเป็นร่างสำหรับผมเอง และได้ทยอยลองเล่นของไปบ้างแล้ว
RDF, XML, XSL, XSLT, XSL-FO คือสิ่งจำเป็นสำหรับชีวิตในอนาคต เพราะนับวัน ODF กำลังจะได้รับความนิยมมากยิ่งขึ้น จนไม่นานมานี้ แว่วๆ ว่า MS Office ก็จะเปิดให้สามารถใช้สอยได้ นั่นแสดงว่า นอกจากบนเว็บ เราจะมี XHTML สำหรับ Browsers แล้ว เรามี PDF อยู่แล้ว ต่อไปเราจะสามารถ Transform หน้าเว็บเป็น .doc ได้เมื่อต้องการ
เมื่อเดือนก่อนผมได้ลอง Transform ข้อมูลบางส่วนของ ThaiCSS ให้ออกมาในรูป PDF ด้วย Apache FOP ยังติดปัญหาในเรื่องของภาษาไทย แต่ก่อนที่จะมาถึงกระบวนการนี้ ข้อมูลต้องอยู่ในรูปแบบ XML พร้อมขึ้นโครงเตรียม กลายร่างด้วย XSLT จึงเป็นที่มาของความน่าสนใจที่ไม่สิ้นสุดของผม
เพราะฉะนั้นจึงต้องลืมเรื่องการเขียน xhtml แบบผิด Markup ไปโดยปริยาย เพราะถ้าใครที่เขียน XML อยู่แล้วจะรู้ว่า ถ้าเขียนผิด แล้วมันจะไม่แสดงผล
ที่หนักกว่านั้น เมื่อหน้าเว็บถูกวางโครงสร้างมาผิดรูปแบบ สำหรับคนที่ไม่ได้ใช้ บราวเซอร์เข้าเว็บจะรู้ความทรมานในข้อนี้ดี เพราะมันไม่รู้เลยว่าอะไรเป็นอะไร สับสนวุ่นวายไปหมด ไม่รู้ว่าอะไรคือ header อะไรคือ paragraph หรืออะไรคือ list อะไรคือ table ที่แท้จริง
หลายวันก่อน ผมลองปล่อย Crawler หรือ Robot ลงเก็บข้อมูลเว็บ ThaiCSS ดู ผมจึงเกิดประกายวาบบางอย่างขึ้นมาสู่กองขี้เลื่อยที่มี Robot ของผม เก็บข้อมูลมาได้ประมาณนี้ กับเว็บที่ Markup ได้ดีในระดับหนึ่ง แล้วกับ Google Bot หละ มันทำงานกับเว็บทั่วโลก มันต้องมีอัลกอริทึ่มไว้รับมือเว็บกี่แบบกัน
ท่านที่สงสัยว่าผมปล่อย Robot ยังไง เดี๋ยวผมอธิบายนิดนึงครับ ผมไปหา Crawler ฟรี มาหนึ่งตัว แล้วผมก็มาเขียน อัลกอริทึ่ม หรือสมการคณิตศาสตร์เพิ่มเข้าไป หรือเรียกว่า อยากได้อะไรก็เขียนเพิ่ม เช่น เก็บ <h1>,<h2> มาด้วย แล้วเอาไปใส่ไว้ในฐานข้อมูลตาราง header เพื่อเอาไว้มา บวก ลบ คูณหาร หาค่าอื่นๆ ในอนาคต หรือวิ่งไปเก็บเฉพาะจุด เสร็จแล้วก็เอามาหาค่า Density ว่าหน้าเว็บนั้นมีคำหลักอะไรบ้าง เป็นเนื้อหาเกี่ยวกับอะไร คล้ายๆ กับพวกที่ชอบปล่อยของไปดูดเว็บชาวบ้านมา
หรือพูดง่ายๆ คล้ายๆ Google Bot นั่นแหละครับ แต่ของผมโง่ในระดับลึกลงไปใต้ดินสองสามเมตร ไม่ได้ฉลาดเหมือนใครเขาดอก
ทีนี้ผมก็ถึงบางอ้อ ว่าถ้าเขียน xhml ป่วยๆ แล้ว Robot จะทำงานหนักประมาณไหน ผมไม่รู้ว่า Robot ฉลาดๆ เขาเขียนกันยังไง แต่ต้องลอง เพราะตอนนี้ผมรู้แล้วว่า ผมเอาข้อมูลมาทำอะไรต่อไป สำหรับคนที่เคยทำเฉพาะเว็บเล็กๆ หรือทำเว็บขาย คงยังนึกภาพไม่ออก แต่สำหรับคนที่ทำเว็บสำหรับให้บริการอะไรสักอย่างคงเห็นภาพมากกยิ่งขึ้น เพราะเมื่อข้อมูลไม่ได้ถูก Markup ไว้อย่างถูกต้อง ก็ยากที่จะสามารถเอาไปทำงานอย่างอื่นได้ต่อ ต้องจับออกมาล้างก่อน แล้วค่อยจัดการฟอร์แมทกันใหม่
จึงไม่ใช่สักแต่ว่าเขียน Code อีกต่อไป อย่าให้ xhtml ป่วยๆ เป็นตัวไล่ Robot ผมกลับบ้านมือเปล่าเลย
9 Responses to เมื่อ Crawler ต้องเจอ XHTML ป่วยๆ